This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
regexec.c: Use a macro for clarity
authorKarl Williamson <khw@cpan.org>
Thu, 16 Aug 2018 21:08:27 +0000 (15:08 -0600)
committerKarl Williamson <khw@cpan.org>
Thu, 16 Aug 2018 22:20:12 +0000 (16:20 -0600)
This commit #defines a macro and uses it, which makes the code easier to
understand.

regexec.c

index 8410813..6f39670 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -10309,6 +10309,8 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
 
     /* What code point is the digit '0' of the script run? */
     UV zero_of_run = 0;
+#define SEEN_A_DIGIT (zero_of_run != 0)
+
     SCX_enum script_of_run  = SCX_INVALID;   /* Illegal value */
     SCX_enum script_of_char = SCX_INVALID;
 
@@ -10360,7 +10362,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
                 retval = FALSE;
                 break;
             }
-            if (zero_of_run > 0) {
+            if (SEEN_A_DIGIT) {
                 if (zero_of_run != '0') {
                     retval = FALSE;
                     break;
@@ -10386,7 +10388,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
         /* If is within the range [+0 .. +9] of the script's zero, it also is a
          * digit in that script.  We can skip the rest of this code for this
          * character. */
-        if (UNLIKELY(   zero_of_run > 0
+        if (UNLIKELY(   SEEN_A_DIGIT
                      && cp >= zero_of_run
                      && cp - zero_of_run <= 9))
         {
@@ -10451,7 +10453,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
 
             /* But Common contains several sets of digits.  Only the '0' set
              * can be part of another script. */
-            if (zero_of_run > 0 && zero_of_run != '0') {
+            if (SEEN_A_DIGIT && zero_of_run != '0') {
                 retval = FALSE;
                 break;
             }
@@ -10637,7 +10639,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
          *
          * Here we check if it is a digit. */
         if (    cp >= FIRST_NON_ASCII_DECIMAL_DIGIT
-            && (   (          zero_of_run == 0
+            && (   (          ! SEEN_A_DIGIT
                     || (  (   script_of_char >= 0
                            && script_zeros[script_of_char] == 0)
                         ||    intersection))))
@@ -10648,7 +10650,7 @@ Perl_isSCRIPT_RUN(pTHX_ const U8 * s, const U8 * send, const bool utf8_target)
                 && ELEMENT_RANGE_MATCHES_INVLIST(range_zero_index))
             {
                 UV range_zero = decimals_array[range_zero_index];
-                if (zero_of_run) {
+                if (SEEN_A_DIGIT) {
                     if (zero_of_run != range_zero) {
                         retval = FALSE;
                         break;