From 28fb6a24b143bbbe70b497dedcbcb5688aac9f8e Mon Sep 17 00:00:00 2001 From: Matteo Bruni Date: Tue, 29 Sep 2009 12:06:24 +0200 Subject: [PATCH] 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 062ac22ef18..48a6959689d 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 ba883206073..b525e2fedca 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); }