Added package with the documentation and the examples
[lwc.git] / textp.c
blobf4b6ac76aa7d1892fb64710039fbd3ed3a9f6e2e
1 #include "global.h"
3 /* escape backslashes and double-quotes */
4 char *escape_c_string (char *str, int len)
6 int i, slen;
7 char *ret;
9 for (i = 0, slen = 4; i < len; i++, slen++)
10 if (str [i] == '\n' || str [i] == '\t'
11 || str [i] == '"' || str [i] == '\\')
12 ++slen;
14 ret = (char*) malloc (slen);
16 ret [0] = '"';
17 for (i = 0, slen = 1; i < len; i++)
18 switch (str [i]) {
19 case '\n': ret [slen++] = '\\';
20 ret [slen++] = 'n';
21 ncase '\t': ret [slen++] = '\\';
22 ret [slen++] = 't';
23 ncase '"':
24 case '\\': ret [slen++] = '\\';
25 default: ret [slen++] = str [i];
27 ret [slen++] = '"';
28 ret [slen] = 0;
30 return ret;
33 static char *r_processor (char *str, int len)
35 return escape_c_string (str, len);
38 static char *invalid (char *str, int len)
40 fprintf (stderr, "No processor defined for %c(%i)\n", processor, processor);
41 parse_error_ll ("");
42 return 0;
45 text_processor TP [128];
47 void init_processors ()
49 int i;
50 for (i = 0; i < 128; i++)
51 TP [i] = invalid;
52 TP ['r'] = r_processor;