src/c2html.c

changeset 48
b2724c711203
parent 47
c39ecbbca7c0
child 49
f86f0b054464
     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");

mercurial