This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Add two more flags to grok_bin_oct_hex
authorKarl Williamson <khw@cpan.org>
Mon, 20 Jan 2020 03:08:42 +0000 (20:08 -0700)
committerKarl Williamson <khw@cpan.org>
Thu, 23 Jan 2020 22:46:55 +0000 (15:46 -0700)
commit99a25d6386ee5787dcd921ea183f9358709026ce
treebc384ed8e453e235d52f521657101b2ef6113df2
parent74a32ed2df4038377b621310e10e2cf3d7f9dcf5
Add two more flags to grok_bin_oct_hex

These add enough functionality so that other code that rolled its own
version of this can call it instead and get the desired functionality.

One flag silences warnings about overflow.  It would be more consistent
to use the existing flag that gets set when overflow is detected to
silence the warnings if set on input.  But that would be a change in
(undocumented) behavior, and I thought it better to not chance breaking
something.

The other flag forbids an initial underscore when medial underscores are
allowed.  I wasn't aware until I examined the code and documentation
carefully that the flag that I thought allowed  single underscores
between digits, actually also allows for an initial underscore.  I can't
imagine why that was the case, but \N{U+...} never allowed initial
underscores, and adding a flag to grok_hex to allow just medial
underscores allows \N{} in a future commit  to change to use grok_hex()
without changing behavior.

Neither flag is currently exposed outside of the core or extensions
numeric.c
perl.h