1.1 --- a/src/c2html.c Tue Aug 23 16:34:02 2016 +0200 1.2 +++ b/src/c2html.c Tue Aug 23 17:24:58 2016 +0200 1.3 @@ -47,18 +47,12 @@ 1.4 "\n"); 1.5 } 1.6 1.7 -/* TODO: remove this workaround after refactoring highlighter structure */ 1.8 -static void plainparseline(char *src, UcxBuffer *dest, int* x) { 1.9 - size_t dp = 0; 1.10 - char *buf = dest->space + dest->pos; 1.11 +static void plain_highlighter(char *src, UcxBuffer *dest, int* x) { 1.12 while (*src && *src != '\n') { 1.13 - dp = writeescapedchar(buf, dp, *src); 1.14 + put_htmlescaped(dest, *src); 1.15 src++; 1.16 } 1.17 - buf[dp++] = '\n'; 1.18 - buf[dp] = '\0'; 1.19 - dest->pos += dp; 1.20 - dest->size += dp; 1.21 + ucx_buffer_putc(dest, '\n'); 1.22 } 1.23 1.24 int formatlines(highlighter_func highlighter, 1.25 @@ -101,7 +95,7 @@ 1.26 /* process code line */ 1.27 highlighter(sourceline->data, line, &multiline_comment); 1.28 1.29 - /* write code line */ 1.30 + /* write code line and reset buffer */ 1.31 out(line->space, 1, line->size, stream); 1.32 } 1.33 1.34 @@ -177,13 +171,13 @@ 1.35 highlighter_func hltr = NULL; 1.36 switch (sourcetype) { 1.37 case SOURCE_C: 1.38 - hltr = cparseline; 1.39 + hltr = c_highlighter; 1.40 break; 1.41 case SOURCE_JAVA: 1.42 - hltr = jparseline; 1.43 + hltr = java_highlighter; 1.44 break; 1.45 case SOURCE_PLAIN: 1.46 - hltr = plainparseline; 1.47 + hltr = plain_highlighter; 1.48 break; 1.49 default: /* should be unreachable */ 1.50 fprintf(stderr, "error in enum source_type\n");