From: Peter Eisentraut Date: Mon, 8 Dec 2025 14:53:52 +0000 (+0100) Subject: Make ecpg parse.pl more robust with braces X-Git-Url: http://git.postgresql.org/gitweb/static/gitweb.js?a=commitdiff_plain;h=7f88553ceaca4af0e5bd483ab77f9f442578c18a;p=postgresql.git Make ecpg parse.pl more robust with braces When parse.pl processes braces, it does not take into account that braces could also be their own token if single quoted ('{', '}'). This is not currently used but a future patch wants to make use of it. This fixes that by using lookaround assertions to detect the quotes. To make sure all Perl versions in play support this and to avoid surprises later on, let's give this a spin on the buildfarm now. It can exist independently of future work. Reviewed-by: Ashutosh Bapat Discussion: https://www.postgresql.org/message-id/flat/a855795d-e697-4fa5-8698-d20122126567@eisentraut.org --- diff --git a/src/interfaces/ecpg/preproc/parse.pl b/src/interfaces/ecpg/preproc/parse.pl index f22ca213c21..7e51339f3fc 100644 --- a/src/interfaces/ecpg/preproc/parse.pl +++ b/src/interfaces/ecpg/preproc/parse.pl @@ -256,9 +256,9 @@ sub main $has_if_command = 1 if /^\s*if/; } - # Make sure any braces are split into separate fields - s/{/ { /g; - s/}/ } /g; + # Make sure any (unquoted) braces are split into separate fields + s/(?