summaryrefslogtreecommitdiff
path: root/package/gettext-tiny/src/src/StringEscape.c
diff options
context:
space:
mode:
Diffstat (limited to 'package/gettext-tiny/src/src/StringEscape.c')
-rw-r--r--package/gettext-tiny/src/src/StringEscape.c111
1 files changed, 0 insertions, 111 deletions
diff --git a/package/gettext-tiny/src/src/StringEscape.c b/package/gettext-tiny/src/src/StringEscape.c
deleted file mode 100644
index 3a9ddd6cb..000000000
--- a/package/gettext-tiny/src/src/StringEscape.c
+++ /dev/null
@@ -1,111 +0,0 @@
-#include <stddef.h>
-
-//FIXME out gets silently truncated if outsize is too small
-
-size_t escape(char* in, char* out, size_t outsize) {
- size_t l = 0;
- while(*in && l + 3 < outsize) {
- switch(*in) {
- case '\n':
- *out++ = '\\';
- l++;
- *out = 'n';
- break;
- case '\r':
- *out++ = '\\';
- l++;
- *out = 'r';
- break;
- case '\t':
- *out++ = '\\';
- l++;
- *out = 't';
- break;
- case '\\':
- *out++ = '\\';
- l++;
- *out = '\\';
- break;
- case '"':
- *out++ = '\\';
- l++;
- *out = '"';
- break;
- case '\v':
- *out++ = '\\';
- l++;
- *out = '\v';
- break;
- case '\?':
- *out++ = '\\';
- l++;
- *out = '\?';
- break;
- case '\f':
- *out++ = '\\';
- l++;
- *out = '\f';
- break;
- default:
- *out = *in;
- }
- in++;
- out++;
- l++;
- }
- *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) {
- switch (*in) {
- case '\\':
- ++in;
- assert(*in);
- switch(*in) {
- case 'n':
- *out='\n';
- break;
- case 'r':
- *out='\r';
- break;
- case 't':
- *out='\t';
- break;
- case '\\':
- *out='\\';
- break;
- case '"':
- *out='"';
- break;
- case 'v':
- *out='\v';
- break;
- case '\?':
- *out = '\?';
- break;
- case 'f':
- *out = '\f';
- break;
- case '\'':
- *out = '\'';
- break;
- // FIXME add handling of hex and octal
- default:
- abort();
- }
- break;
- default:
- *out=*in;
- }
- in++;
- out++;
- l++;
- }
- *out = 0;
- return l;
-}
-