55 } |
55 } |
56 |
56 |
57 memset(hltr->word, 0, WORDBUF_SIZE); |
57 memset(hltr->word, 0, WORDBUF_SIZE); |
58 size_t wp = 0, ifp = 0; |
58 size_t wp = 0, ifp = 0; |
59 int isstring = 0, iscomment = 0, isinclude = 0, parseinclude = 0; |
59 int isstring = 0, iscomment = 0, isinclude = 0, parseinclude = 0; |
|
60 char quote = '\0'; |
60 int isescaping = 0; |
61 int isescaping = 0; |
61 |
62 |
62 if (hltr->iscommentml) { |
63 if (hltr->iscommentml) { |
63 iscomment = 1; |
64 iscomment = 1; |
64 memcpy(&(dest[dp]), "<span class=\"c2html-comment\">", 29); |
65 memcpy(&(dest[dp]), "<span class=\"c2html-comment\">", 29); |
124 dp = writeescapedchar(dest, dp, c); |
125 dp = writeescapedchar(dest, dp, c); |
125 } |
126 } |
126 } else { |
127 } else { |
127 /* strings */ |
128 /* strings */ |
128 if (!isescaping && (c == '\'' || c == '\"')) { |
129 if (!isescaping && (c == '\'' || c == '\"')) { |
129 isstring ^= 1; |
|
130 if (isstring) { |
130 if (isstring) { |
131 memcpy(&(dest[dp]), "<span class=\"c2html-string\">", 28); |
131 if (c == quote) { |
132 dp += 28; |
132 isstring = 0; |
133 dp = writeescapedchar(dest, dp, c); |
133 memcpy(&(dest[dp]), "<span class=\"c2html-string\">", 28); |
|
134 dp += 28; |
|
135 dp = writeescapedchar(dest, dp, c); |
|
136 } else { |
|
137 dp = writeescapedchar(dest, dp, c); |
|
138 } |
134 } else { |
139 } else { |
|
140 isstring = 1; |
|
141 quote = c; |
135 dp = writeescapedchar(dest, dp, c); |
142 dp = writeescapedchar(dest, dp, c); |
136 memcpy(&(dest[dp]), "</span>", 7); |
143 memcpy(&(dest[dp]), "</span>", 7); |
137 dp += 7; |
144 dp += 7; |
138 } |
145 } |
139 } else { |
146 } else { |