--- code/trunk/pcretest.c 2007/02/24 21:38:09 7 +++ code/trunk/pcretest.c 2007/02/24 21:38:13 9 @@ -157,7 +157,8 @@ case OP_REF: printf(" \\%d", *(++code)); - break; + code++; + goto CLASS_REF_REPEAT; case OP_CLASS: { @@ -187,6 +188,8 @@ printf("]"); code += 32; + CLASS_REF_REPEAT: + switch(*code) { case OP_CRSTAR: @@ -581,7 +584,7 @@ for (;;) { - unsigned char *pp; + unsigned char *q; int count, c; int offsets[30]; int size_offsets = sizeof(offsets)/sizeof(int); @@ -600,7 +603,7 @@ p = buffer; while (isspace(*p)) p++; - pp = dbuffer; + q = dbuffer; while ((c = *p++) != 0) { int i = 0; @@ -662,17 +665,17 @@ case 'O': while(isdigit(*p)) n = n * 10 + *p++ - '0'; - if (n <= (int)sizeof(offsets)/sizeof(int)) size_offsets = n; + if (n <= (int)(sizeof(offsets)/sizeof(int))) size_offsets = n; continue; case 'Z': options |= PCRE_NOTEOL; continue; } - *pp++ = c; + *q++ = c; } - *pp = 0; - len = pp - dbuffer; + *q = 0; + len = q - dbuffer; /* Handle matching via the POSIX interface, which does not support timing. */