diff options
-rw-r--r-- | src/StringEscape.c | 8 | ||||
-rw-r--r-- | src/StringEscape.h | 4 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/StringEscape.c b/src/StringEscape.c index 233664a..70d8040 100644 --- a/src/StringEscape.c +++ b/src/StringEscape.c @@ -1,4 +1,6 @@ #include <stddef.h> +#include <assert.h> +#include <stdlib.h> //FIXME out gets silently truncated if outsize is too small @@ -56,11 +58,10 @@ size_t escape(char* in, char* out, size_t outsize) { *out = 0; return l; } -#include <assert.h> -#include <stdlib.h> + size_t unescape(char* in, char *out, size_t outsize) { size_t l = 0; - while(*in && l + 2 < outsize) { + while(*in && l + 1 < outsize) { switch (*in) { case '\\': ++in; @@ -114,4 +115,3 @@ size_t unescape(char* in, char *out, size_t outsize) { *out = 0; return l; } - diff --git a/src/StringEscape.h b/src/StringEscape.h index fc76482..296b48a 100644 --- a/src/StringEscape.h +++ b/src/StringEscape.h @@ -1,7 +1,9 @@ #ifndef STRINGESCAPE_H #define STRINGESCAPE_H + #include <stddef.h> + size_t escape(char* in, char *out, size_t outsize); size_t unescape(char* in, char *out, size_t outsize); -//RcB: DEP "StringEscape.c" + #endif |