[2/4] wpp: get_string() now can return NULL, handle it.

Matteo Bruni matteo.mystral at gmail.com
Mon Oct 5 11:33:42 CDT 2009


-------------- next part --------------
From ee929cbad6edc2eef8193300a467fc1b98f6fae0 Mon Sep 17 00:00:00 2001
From: Matteo Bruni <matteo.mystral at gmail.com>
Date: Tue, 29 Sep 2009 12:06:24 +0200
Subject: wpp: get_string() now can return NULL, handle it.

---
 libs/wpp/ppl.l |    3 +++
 libs/wpp/ppy.y |   12 ++++++------
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/libs/wpp/ppl.l b/libs/wpp/ppl.l
index 062ac22..48a6959 100644
--- a/libs/wpp/ppl.l
+++ b/libs/wpp/ppl.l
@@ -1514,6 +1514,9 @@ void pp_do_include(char *fname, int type)
 	int n;
 	includelogicentry_t *iep;
 
+	if(!fname)
+		return;
+
 	for(iep = pp_includelogiclist; iep; iep = iep->next)
 	{
 		if(!strcmp(iep->filename, fname))
diff --git a/libs/wpp/ppy.y b/libs/wpp/ppy.y
index ba88320..b525e2f 100644
--- a/libs/wpp/ppy.y
+++ b/libs/wpp/ppy.y
@@ -279,16 +279,16 @@ preprocessor
 	| tMACRO res_arg allmargs tMACROEND opt_mtexts tNL	{
 		pp_add_macro($1, macro_args, nmacro_args, $5);
 		}
-	| tLINE tSINT tDQSTRING	tNL	{ fprintf(ppy_out, "# %d %s\n", $2 , $3); free($3); }
-	| tGCCLINE tSINT tDQSTRING tNL	{ fprintf(ppy_out, "# %d %s\n", $2 , $3); free($3); }
+	| tLINE tSINT tDQSTRING	tNL	{ if($3) fprintf(ppy_out, "# %d %s\n", $2 , $3); free($3); }
+	| tGCCLINE tSINT tDQSTRING tNL	{ if($3) fprintf(ppy_out, "# %d %s\n", $2 , $3); free($3); }
 	| tGCCLINE tSINT tDQSTRING tSINT tNL
-		{ fprintf(ppy_out, "# %d %s %d\n", $2, $3, $4); free($3); }
+		{ if($3) fprintf(ppy_out, "# %d %s %d\n", $2, $3, $4); free($3); }
 	| tGCCLINE tSINT tDQSTRING tSINT tSINT tNL
-		{ fprintf(ppy_out, "# %d %s %d %d\n", $2 ,$3, $4, $5); free($3); }
+		{ if($3) fprintf(ppy_out, "# %d %s %d %d\n", $2 ,$3, $4, $5); free($3); }
 	| tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT  tNL
-		{ fprintf(ppy_out, "# %d %s %d %d %d\n", $2 ,$3 ,$4 ,$5, $6); free($3); }
+		{ if($3) fprintf(ppy_out, "# %d %s %d %d %d\n", $2 ,$3 ,$4 ,$5, $6); free($3); }
 	| tGCCLINE tSINT tDQSTRING tSINT tSINT tSINT tSINT tNL
-		{ fprintf(ppy_out, "# %d %s %d %d %d %d\n", $2 ,$3 ,$4 ,$5, $6, $7); free($3); }
+		{ if($3) fprintf(ppy_out, "# %d %s %d %d %d %d\n", $2 ,$3 ,$4 ,$5, $6, $7); free($3); }
 	| tGCCLINE tNL		/* The null-token */
 	| tERROR opt_text tNL	{ ppy_error("#error directive: '%s'", $2); free($2); }
 	| tWARNING opt_text tNL	{ ppy_warning("#warning directive: '%s'", $2); free($2); }
-- 
1.6.3.3


More information about the wine-patches mailing list