Hello,

if all you did to change the existing to this form was removing spaces and 
comments, then yes, that's almost the same regex.

You also need to remove the x modifier, at the very end, that says "extended 
regex", ie, regex where spaces and comments are allowed (and ignored).
I think that it's a good idea to have such complex regex to be extended. 
Comments are more than welcome here. Don't you think?

If you did another edit during the transformation, I did not spot it...

Mt

----- Le 18 Juil 21, à 18:28, Jean-Christophe Helary [email protected] 
a écrit :

> Hello Martin,
> 
> Thank you for the reference...
> Well, I'd love to provide a patch but for that I'd need to understand that
> regex... :(
> 
> Basically, the regex is this, right ?
> 
> $buffer =~
> /^((?:.*?\n)?(?:[^%]|(?<!\\)(?:\\\\)*\\%)*?)(${RE_ESCAPE}(?:begin|end)\{.*)$/sx
> 
> JC
> 
>> On Jul 19, 2021, at 0:39, Martin Quinson <[email protected]> 
>> wrote:
>> 
>> Hello Jean-Christophe,
>> 
>> this is https://github.com/mquinson/po4a/issues/37 that was "fixed" in the 
>> past
>> by adding a new line to org.texi.
>> I still fail to understand how to fix it properly, and a patch would be more
>> than welcome here.
>> 
>> Thanks, Mt
>> 
>> ----- Le 18 Juil 21, à 17:11, Jean-Christophe Helary 
>> [email protected]
>> a écrit :
>> 
>>> When trying to convert org.texi to PO I get the following error:
>>> 
>>> Complex regular subexpression recursion limit (32766) exceeded at
>>> /opt/local/lib/perl5/5.26/Locale/Po4a/TeX.pm line 697.
>>> 
>>> That happens between line 11180 and 11200 of the file and it does not seem 
>>> to be
>>> triggered by any weird code.
>>> 
>>> Checking the error on the web, I found that it is possibly related to using 
>>> * in
>>> a regex:
>>> 
>>> https://metacpan.org/pod/XML::Easy::Syntax
>>> 
>>>> BUGS
>>>> 
>>>> Many of these regular expressions are liable to tickle a serious bug in 
>>>> perl's
>>>> regexp engine. The bug is that the * and + repeat operators don't always 
>>>> match
>>>> an unlimited number of repeats: in some cases they are limited to 32767
>>>> iterations. Whether this bogus limit applies depends on the complexity of 
>>>> the
>>>> expression being repeated, whether the string being examined is internally
>>>> encoded in UTF-8, and the version of perl. In some cases, but not all, a 
>>>> false
>>>> match failure is preceded by a warning "Complex regular subexpression 
>>>> recursion
>>>> limit (32766) exceeded".
>>>> 
>>>> This bug is present, in various forms, in all perl versions up to at least 
>>>> 5.8.9
>>>> and 5.10.0. Pre-5.10 perls may also overflow their stack space, in similar
>>>> circumstances, if a resource limit is imposed.
>>>> 
>>>> There is no known feasible workaround for this perl bug. The regular 
>>>> expressions
>>>> supplied by this module will therefore, unavoidably, fail to accept some
>>>> lengthy valid inputs. Where this occurs, though, it is likely that other
>>>> regular expressions being applied to the same or related input will also 
>>>> suffer
>>>> the same problem. It is pervasive. Do not rely on this module (or perl) to
>>>> process long inputs on affected perl versions.
>>> 
>>> Line 697 of TeX.pm is:
>>> 
>>> # detect \begin and \end (if they are not commented)
>>> →    if ($buffer =~ /^((?:.*?\n)?                # $1 is
>>>                  (?:[^%]                   # either not a %
>>>                    |                       # or
>>>                     (?<!\\)(?:\\\\)*\\%)*? # a % preceded by an odd nb of \
>>>                 )                          # $2 is a \begin{ with the end 
>>> of the line
>>>                  (${RE_ESCAPE}(?:begin|end)\{.*)$/sx
>>> 
>>> 
>>> If there could be a way to simplify this regex, maybe the issue would go 
>>> away...
>>> 
>>> org.texi is the only file in the emacs distribution that chokes on this 
>>> regex.
>>> 
>>> --
>>> Jean-Christophe Helary @brandelune
>>> https://mac4translators.blogspot.com
>>> https://sr.ht/~brandelune/omegat-as-a-book/
>>> _______________________________________________
>>> Devel mailing list -- [email protected]
>>> To unsubscribe send an email to [email protected]
>> _______________________________________________
>> Devel mailing list -- [email protected]
>> To unsubscribe send an email to [email protected]
> 
> --
> Jean-Christophe Helary @brandelune
> https://mac4translators.blogspot.com
> https://sr.ht/~brandelune/omegat-as-a-book/
_______________________________________________
Devel mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to