924 |
md->recursive = rec->prevrec; |
md->recursive = rec->prevrec; |
925 |
memmove(md->offset_vector, rec->offset_save, |
memmove(md->offset_vector, rec->offset_save, |
926 |
rec->saved_max * sizeof(int)); |
rec->saved_max * sizeof(int)); |
927 |
|
offset_top = rec->offset_top; |
928 |
mstart = rec->save_start; |
mstart = rec->save_start; |
929 |
ims = original_ims; |
ims = original_ims; |
930 |
ecode = rec->after_call; |
ecode = rec->after_call; |
1116 |
memcpy(new_recursive.offset_save, md->offset_vector, |
memcpy(new_recursive.offset_save, md->offset_vector, |
1117 |
new_recursive.saved_max * sizeof(int)); |
new_recursive.saved_max * sizeof(int)); |
1118 |
new_recursive.save_start = mstart; |
new_recursive.save_start = mstart; |
1119 |
|
new_recursive.offset_top = offset_top; |
1120 |
mstart = eptr; |
mstart = eptr; |
1121 |
|
|
1122 |
/* OK, now we can do the recursion. For each top-level alternative we |
/* OK, now we can do the recursion. For each top-level alternative we |
1315 |
{ |
{ |
1316 |
number = GET2(prev, 1+LINK_SIZE); |
number = GET2(prev, 1+LINK_SIZE); |
1317 |
offset = number << 1; |
offset = number << 1; |
1318 |
|
|
1319 |
#ifdef DEBUG |
#ifdef DEBUG |
1320 |
printf("end bracket %d", number); |
printf("end bracket %d", number); |
1321 |
printf("\n"); |
printf("\n"); |
1341 |
mstart = rec->save_start; |
mstart = rec->save_start; |
1342 |
memcpy(md->offset_vector, rec->offset_save, |
memcpy(md->offset_vector, rec->offset_save, |
1343 |
rec->saved_max * sizeof(int)); |
rec->saved_max * sizeof(int)); |
1344 |
|
offset_top = rec->offset_top; |
1345 |
ecode = rec->after_call; |
ecode = rec->after_call; |
1346 |
ims = original_ims; |
ims = original_ims; |
1347 |
break; |
break; |
5411 |
too many to fit into the vector. */ |
too many to fit into the vector. */ |
5412 |
|
|
5413 |
rc = md->offset_overflow? 0 : md->end_offset_top/2; |
rc = md->offset_overflow? 0 : md->end_offset_top/2; |
5414 |
|
|
5415 |
/* If there is space, set up the whole thing as substring 0. The value of |
/* If there is space, set up the whole thing as substring 0. The value of |
5416 |
md->start_match_ptr might be modified if \K was encountered on the success |
md->start_match_ptr might be modified if \K was encountered on the success |
5417 |
matching path. */ |
matching path. */ |