3 /* escape backslashes and double-quotes */
4 char *escape_c_string (char *str
, int len
)
9 for (i
= 0, slen
= 4; i
< len
; i
++, slen
++)
10 if (str
[i
] == '\n' || str
[i
] == '\t'
11 || str
[i
] == '"' || str
[i
] == '\\')
14 ret
= (char*) malloc (slen
);
17 for (i
= 0, slen
= 1; i
< len
; i
++)
19 case '\n': ret
[slen
++] = '\\';
21 ncase
'\t': ret
[slen
++] = '\\';
24 case '\\': ret
[slen
++] = '\\';
25 default: ret
[slen
++] = str
[i
];
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
);
45 text_processor TP
[128];
47 void init_processors ()
50 for (i
= 0; i
< 128; i
++)
52 TP
['r'] = r_processor
;