On Wed Jan 02 11:19:02 2008, szbalint wrote:
> On Thu Oct 25 08:45:09 2007, ptc wrote:
> >  In tools/build/c2str.pl there is the todo item:
> > 
> > # TODO maybe cope with escaped \"
> > 
> > Do this.
> 
> I've attached a patch that should complete this TODO.
> 
> The previous attempt failed because it didn't account for the case when
> someone wrote \\" (that is, \ can also be the argument for an escape
> sequence).

I have a counter-patch:

Index: tools/build/c2str.pl
=========================================================
==========
--- tools/build/c2str.pl        (revision 28124)
+++ tools/build/c2str.pl        (working copy)
@@ -142,10 +142,6 @@
             die "Seen line $line before in $infile - can't continue";
         }

-        # RT#46909 maybe cope with escaped \"
-        my $cnt = tr/"/"/;
-        die "bogus CONST_STRING at line $line" if $cnt % 2;
-
         my $str = extract_delimited;    # $_, '"';
         $str = substr $str, 1, -1;
         ## print STDERR "** '$str' $line\n";


With this, if a bogus CONST_STRING is constructed, ala:

    STRING *bogus       = CONST_STRING(INTERP, "\\"");

The the build errors out with:

/home/coke/bin/perl tools/build/pmc2c.pl --dump src/pmc/codestring.pmc
Badly balanced PMC source

No need to duplicate this logic in this build tool when we're already checking 
for it elsewhere.

Comments?


Reply via email to