| 909 |
ecode += 1 + LINK_SIZE; |
ecode += 1 + LINK_SIZE; |
| 910 |
} |
} |
| 911 |
break; |
break; |
| 912 |
|
|
| 913 |
|
|
| 914 |
|
/* Before OP_ACCEPT there may be any number of OP_CLOSE opcodes, |
| 915 |
|
to close any currently open capturing brackets. */ |
| 916 |
|
|
| 917 |
|
case OP_CLOSE: |
| 918 |
|
number = GET2(ecode, 1); |
| 919 |
|
offset = number << 1; |
| 920 |
|
|
| 921 |
|
#ifdef DEBUG |
| 922 |
|
printf("end bracket %d at *ACCEPT", number); |
| 923 |
|
printf("\n"); |
| 924 |
|
#endif |
| 925 |
|
|
| 926 |
|
md->capture_last = number; |
| 927 |
|
if (offset >= md->offset_max) md->offset_overflow = TRUE; else |
| 928 |
|
{ |
| 929 |
|
md->offset_vector[offset] = |
| 930 |
|
md->offset_vector[md->offset_end - number]; |
| 931 |
|
md->offset_vector[offset+1] = eptr - md->start_subject; |
| 932 |
|
if (offset_top <= offset) offset_top = offset + 2; |
| 933 |
|
} |
| 934 |
|
ecode += 3; |
| 935 |
|
break; |
| 936 |
|
|
| 937 |
|
|
| 938 |
/* End of the pattern, either real or forced. If we are in a top-level |
/* End of the pattern, either real or forced. If we are in a top-level |