Comment on comment.
[p5sagit/p5-mst-13.2.git] / regcomp.c
index c906790..46a0bb6 100644 (file)
--- a/regcomp.c
+++ b/regcomp.c
@@ -3876,6 +3876,9 @@ S_regclassutf8(pTHX_ RExC_state_t *pRExC_state)
                case ANYOF_SPACE:
                case ANYOF_PSXSPC:
                case ANYOF_BLANK:
+                   /* Not very true for PSXSPC and BLANK
+                    * but not feeling like creating IsPOSIXSpace and
+                    * IsBlank right now. --jhi */
                    Perl_sv_catpvf(aTHX_ listsv, "+utf8::IsSpace\n");   break;
                case ANYOF_NSPACE:
                case ANYOF_NPSXSPC:
@@ -3895,7 +3898,7 @@ S_regclassutf8(pTHX_ RExC_state_t *pRExC_state)
        }
         if (range) {
            if (lastvalue > value) { /* b-a */
-               Simple_vFAIL4("invalid [] range \"%*.*s\"",
+               Simple_vFAIL4("Invalid [] range \"%*.*s\"",
                              RExC_parse - rangebegin,
                              RExC_parse - rangebegin,
                              rangebegin);
@@ -4374,26 +4377,31 @@ Perl_regprop(pTHX_ SV *sv, regnode *o)
        Perl_sv_catpvf(aTHX_ sv, "[%s", PL_colors[0]);
        if (o->flags & ANYOF_INVERT)
            sv_catpv(sv, "^");
-       for (i = 0; i <= 256; i++) {
-           if (i < 256 && ANYOF_BITMAP_TEST(o,i)) {
-               if (rangestart == -1)
-                   rangestart = i;
-           } else if (rangestart != -1) {
-               if (i <= rangestart + 3)
-                   for (; rangestart < i; rangestart++)
+       if (OP(o) == ANYOF) {
+           for (i = 0; i <= 256; i++) {
+               if (i < 256 && ANYOF_BITMAP_TEST(o,i)) {
+                   if (rangestart == -1)
+                       rangestart = i;
+               } else if (rangestart != -1) {
+                   if (i <= rangestart + 3)
+                       for (; rangestart < i; rangestart++)
+                           put_byte(sv, rangestart);
+                   else {
                        put_byte(sv, rangestart);
-               else {
-                   put_byte(sv, rangestart);
-                   sv_catpv(sv, "-");
-                   put_byte(sv, i - 1);
+                       sv_catpv(sv, "-");
+                       put_byte(sv, i - 1);
+                   }
+                   rangestart = -1;
                }
-               rangestart = -1;
            }
+           if (o->flags & ANYOF_CLASS)
+               for (i = 0; i < sizeof(out)/sizeof(char*); i++)
+                   if (ANYOF_CLASS_TEST(o,i))
+                       sv_catpv(sv, out[i]);
+       }
+       else {
+           sv_catpv(sv, "{ANYOFUTF8}"); /* TODO: full decode */
        }
-       if (o->flags & ANYOF_CLASS)
-           for (i = 0; i < sizeof(out)/sizeof(char*); i++)
-               if (ANYOF_CLASS_TEST(o,i))
-                   sv_catpv(sv, out[i]);
        Perl_sv_catpvf(aTHX_ sv, "%s]", PL_colors[1]);
     }
     else if (k == BRANCHJ && (OP(o) == UNLESSM || OP(o) == IFMATCH))