summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--giscanner/scannerlexer.l29
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);
}
/*