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

Reply via email to