diff -r 53fd8595378c -r 1be8ea902ef4 src/javacodegen.c --- a/src/javacodegen.c Tue Apr 21 10:11:37 2015 +0200 +++ b/src/javacodegen.c Sat Apr 25 19:01:16 2015 +0200 @@ -59,6 +59,7 @@ memset(hltr->word, 0, WORDBUF_SIZE); size_t wp = 0; int isstring = 0, iscomment = 0, isimport = 0; + char quote = '\0'; int isescaping = 0; if (hltr->iscommentml) { @@ -95,12 +96,18 @@ } else { /* strings */ if (!isescaping && (c == '\'' || c == '\"')) { - isstring ^= 1; if (isstring) { - memcpy(&(dest[dp]), "", 28); - dp += 28; - dp = writeescapedchar(dest, dp, c); + if (c == quote) { + isstring = 0; + memcpy(&(dest[dp]), "", 28); + dp += 28; + dp = writeescapedchar(dest, dp, c); + } else { + dp = writeescapedchar(dest, dp, c); + } } else { + isstring = 1; + quote = c; dp = writeescapedchar(dest, dp, c); memcpy(&(dest[dp]), "", 7); dp += 7;