Momoko Shiraishi <[email protected]> writes: > Modified src/parse-gram.y to add null checks for values that allow empty > input. > > ```diff > --- src/parse-gram.y.old 2025-09-05 13:40:52.350286200 +0900 > +++ src/parse-gram.y 2025-09-05 13:40:56.292358851 +0900 > @@ -234,14 +234,14 @@ > %printer { fputs (char_name ($$), yyo); } <unsigned char> > > %type <char*> "{...}" "%?{...}" "%{...%}" EPILOGUE STRING TSTRING > -%printer { fputs ($$, yyo); } <char*> > +%printer { fputs ($$?$$:"<NULL>", yyo); } <char*> > > %type <uniqstr> > BRACKETED_ID ID ID_COLON > PERCENT_ERROR_VERBOSE PERCENT_FILE_PREFIX PERCENT_FLAG PERCENT_NAME_PREFIX > PERCENT_PURE_PARSER > TAG tag tag.opt variable > -%printer { fputs ($$, yyo); } <uniqstr> > +%printer { fputs ($$?$$:"<NULL>", yyo); } <uniqstr> > %printer { fprintf (yyo, "[%s]", $$); } BRACKETED_ID > %printer { fprintf (yyo, "%s:", $$); } ID_COLON > %printer { fprintf (yyo, "%%%s", $$); } PERCENT_FLAG > ```
This patch works fine, with some formatting adjustments. But maybe it is just better to use fprintf, which can handle NULL pointers. WDYT Paul? Collin
