summaryrefslogtreecommitdiffstats
path: root/bstr.c
diff options
context:
space:
mode:
authorUoti Urpala <uau@mplayer2.org>2011-07-20 04:41:51 +0300
committerUoti Urpala <uau@mplayer2.org>2011-07-20 04:41:51 +0300
commitd6890a7b5390f1f227132be96c0c1ba998b1cdf3 (patch)
tree3d344933cb1d8a4f203ea5d768077fdd9221417c /bstr.c
parentc2f5465bcc7af2f5caa88dea2c9aa2861e0311a6 (diff)
downloadmpv-d6890a7b5390f1f227132be96c0c1ba998b1cdf3.tar.bz2
mpv-d6890a7b5390f1f227132be96c0c1ba998b1cdf3.tar.xz
input: fix input.conf parse errors
Commit df899f59be removing a write outside a buffer triggered another problem, as for some reason the code did not 0-terminate its read buffer in the specific case that it had encountered an EOF, and as a result could parse contents left in the buffer for a second time. Usually this resulted in parsing error messages. Fix the problem by rewriting the offending code in a less hacky form.
Diffstat (limited to 'bstr.c')
-rw-r--r--bstr.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/bstr.c b/bstr.c
index 68342fabfe..2b40be399c 100644
--- a/bstr.c
+++ b/bstr.c
@@ -79,12 +79,18 @@ int bstr_find(struct bstr haystack, struct bstr needle)
return -1;
}
-struct bstr bstr_strip(struct bstr str)
+struct bstr bstr_lstrip(struct bstr str)
{
while (str.len && isspace(*str.start)) {
str.start++;
str.len--;
}
+ return str;
+}
+
+struct bstr bstr_strip(struct bstr str)
+{
+ str = bstr_lstrip(str);
while (str.len && isspace(str.start[str.len - 1]))
str.len--;
return str;