On Tue, Jun 25, 2013 at 3:38 PM, demerphq <demerphq@gmail.com> wrote: > > >> > >> (The change breaks the latex2html package, btw.) > > > > Thanks for the report. I agree this is a bug. I am looking into a fix. > > I ended up pushing the following: > > f1e1b256c5c1773d90e828cca6323c53fa23391b > > which makes multidigit backslash escapes illegal when they start with > 8 or 9 and are larger than the number of capture buffers in the > string. > > IOW, /\87/ is a fatal error and not /\x{00}87/ nor /87/ with a > warning. My rationale for this is we have two precedents to consider: > > a) a case like /\9/ where we would die with an error about a > backreference to a non-existent buffer. > b) a case like "\9" where we would warn, and then treat the escape as "9". > > IMO the precedent for the regex wins over the precedent of the double > quoted string. > > The rules for handling backreferences are pretty arcane. \118 could > mean the 118th capture buffer, if it exists, or it could mean > "\x{09}8". In other words not only do we change the base we interpret > it in, we also change the number of digits we consider part of the > escape! > > This patch does not change this behavior, and affects only escapes > starting with an 8 or 9 as they have no reasonable interpretation as > octal, but do have reasonable interpretations as back references. > > I personally think maybe we should warn on something like \118, but i > leave that debate for another day. > > I've just come across this bug and it's a bit of disaster for people that use latex2html. Is there a reason why the fix didn't make it in to v5.18.1? This works fine in 5.16.x and is clear breakage in v5.18.x. I can't upgrade my perl until latex2html works again. See also https://bugzilla.redhat.com/show_bug.cgi?id=978233 and it seems that RedHat are considering applying the patch themselves. -- Tim JennessThread Previous | Thread Next