This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Restructure grok_bslash_c
authorKarl Williamson <khw@cpan.org>
Wed, 15 Jan 2020 17:48:05 +0000 (10:48 -0700)
committerKarl Williamson <khw@cpan.org>
Thu, 23 Jan 2020 22:46:56 +0000 (15:46 -0700)
commit73351a7160e044aa54e64f7da1c78c3401a64c7b
tree7496d9bec007d36ff53fe40e5a07e8c2527b2498
parent58ad81600e45597437bafd2a7e22e6182b164104
Restructure grok_bslash_c

This commit causes this function to allow a caller to request any
messages generated to be returned to the caller, instead of always being
handled within this function.

Like the previous commit for grok_bslash_c, here are two reasons to do
this, repeated here.

1) In pattern compilation this brings these messages into conformity
   with the other ones that get generated in pattern compilation, where
   there is a particular syntax, including marking the exact position in
   the parse where the problem occurred.

2) The messages could be truncated due to the (mostly) single-pass
   nature of pattern compilation that is now in effect.  It keeps track
   of where during a parse a message has been output, and won't output
   it again if a second parsing pass turns out to be necessary.  Prior
   to this commit, it had to assume that a message from one of these
   functions did get output, and this caused some out-of-bounds reads
   when a subparse (using a constructed pattern) was executed.  The
   possibility of those went away in commit 5d894ca5213, which
   guarantees it won't try to read outside bounds, but that may still
   mean it is outputting text from the wrong parse, giving meaningless
   results.  This commit should stop that possibility.
dquote.c
embed.fnc
embed.h
pod/perldelta.pod
proto.h
regcomp.c
t/lib/warnings/regcomp
t/lib/warnings/toke
t/re/reg_mesg.t
toke.c