diff options
-rw-r--r-- | giscanner/scannerlexer.l | 29 |
1 files changed, 14 insertions, 15 deletions
diff --git a/giscanner/scannerlexer.l b/giscanner/scannerlexer.l index f7199ff4..2e3d0ab7 100644 --- a/giscanner/scannerlexer.l +++ b/giscanner/scannerlexer.l @@ -316,21 +316,20 @@ check_identifier (GISourceScanner *scanner, static void process_linemarks (GISourceScanner *scanner) { - char filename[1025]; - char *compress; - char *real; - - sscanf(yytext, "# %d \"%1024[^\"]\"", &lineno, filename); - - compress = g_strcompress (filename); - real = g_realpath (filename); - if (real) { - g_free (scanner->current_filename); - scanner->current_filename = real; - } else { - g_free (real); - } - g_free (compress); + char escaped_filename[1025]; + char *filename; + char *real; + + sscanf(yytext, "# %d \"%1024[^\"]\"", &lineno, escaped_filename); + filename = g_strcompress (escaped_filename); + real = g_realpath (filename); + if (real) { + g_free (scanner->current_filename); + scanner->current_filename = real; + } else { + g_free (real); + } + g_free (filename); } /* |