summaryrefslogtreecommitdiff
path: root/pcre_printint.c
diff options
context:
space:
mode:
authorph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2013-10-06 18:33:56 +0000
committerph10 <ph10@2f5784b3-3f2a-0410-8824-cb99058d5e15>2013-10-06 18:33:56 +0000
commite0f44ec0903da7ad9c56eec0a0e5c8b02ce6ccb3 (patch)
treed7e548f203b80d44a5c7d9e07b19a1b04bafa328 /pcre_printint.c
parentc728cbfd976748abdf0511801e805ff0c846cdf2 (diff)
downloadpcre-e0f44ec0903da7ad9c56eec0a0e5c8b02ce6ccb3.tar.gz
Refactor named group handling for conditional tests.
git-svn-id: svn://vcs.exim.org/pcre/code/trunk@1365 2f5784b3-3f2a-0410-8824-cb99058d5e15
Diffstat (limited to 'pcre_printint.c')
-rw-r--r--pcre_printint.c25
1 files changed, 18 insertions, 7 deletions
diff --git a/pcre_printint.c b/pcre_printint.c
index 437fe31..5e6a1ae 100644
--- a/pcre_printint.c
+++ b/pcre_printint.c
@@ -425,10 +425,19 @@ for(;;)
break;
case OP_CREF:
- case OP_NCREF:
fprintf(f, "%3d %s", GET2(code,1), priv_OP_names[*code]);
break;
+ case OP_DNCREF:
+ {
+ pcre_uchar *entry = (pcre_uchar *)re + offset + (GET2(code, 1) * size) +
+ IMM2_SIZE;
+ fprintf(f, " %s Cond ref <", flag);
+ print_puchar(f, entry);
+ fprintf(f, ">%d", GET2(code, 1 + IMM2_SIZE));
+ }
+ break;
+
case OP_RREF:
c = GET2(code, 1);
if (c == RREF_ANY)
@@ -437,12 +446,14 @@ for(;;)
fprintf(f, " Cond recurse %d", c);
break;
- case OP_NRREF:
- c = GET2(code, 1);
- if (c == RREF_ANY)
- fprintf(f, " Cond nrecurse any");
- else
- fprintf(f, " Cond nrecurse %d", c);
+ case OP_DNRREF:
+ {
+ pcre_uchar *entry = (pcre_uchar *)re + offset + (GET2(code, 1) * size) +
+ IMM2_SIZE;
+ fprintf(f, " %s Cond recurse <", flag);
+ print_puchar(f, entry);
+ fprintf(f, ">%d", GET2(code, 1 + IMM2_SIZE));
+ }
break;
case OP_DEF: