This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regen/regcharclass.pl: Simplify generated safe macros
authorKarl Williamson <public@khwilliamson.com>
Fri, 28 Feb 2014 18:24:01 +0000 (11:24 -0700)
committerKarl Williamson <public@khwilliamson.com>
Sun, 2 Mar 2014 03:12:16 +0000 (20:12 -0700)
commit5ab0c3af168e42fe8e9650f621eecaddc87ed441
tree2b5c29ce26d333099964a5b2ca292e2a7b8b0cc4
parent014627eb95f9f2400c533d9fa9086a73f8fe0800
regen/regcharclass.pl: Simplify generated safe macros

This simplifies the macros generated which make sure there are no read
errors.  Prior to this commit, the code generated looked like

      (e - s) > 3
      ? see if things of at most length 4 match
      : (e - s) > 2
        ? see if things of at most length 3 match
        : (e - s) > 1
          ? see if things of at most length 2 match
          : (e - s) > 0
            ? see if things of at most length 1 match

For things that are a single character, the ones greater than length 2
must be in UTF8, and their needed length can be determined by UTF8SKIP,
so we can get rid of most of the (e-s) tests.

This doesn't change the macros which can match multiple characters; that
is a harder to do.
regcharclass.h
regen/regcharclass.pl