From: Eric Promislow Date: Wed, 8 Oct 2003 17:42:42 +0000 (-0700) Subject: Internal fixes to source-code coordinate X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=459483364bd8ae7bd68c1206c3548757357dcc00;p=p5sagit%2Fp5-mst-13.2.git Internal fixes to source-code coordinate calculations in regcomp.c Message-Id: <20031008174242.A17544@ActiveState.com> p4raw-id: //depot/perl@21430 --- diff --git a/regcomp.c b/regcomp.c index 9a6df98..1b3805b 100644 --- a/regcomp.c +++ b/regcomp.c @@ -2511,8 +2511,8 @@ S_reg(pTHX_ RExC_state_t *pRExC_state, I32 paren, I32 *flagp) if (paren == '>') node = SUSPEND, flag = 0; reginsert(pRExC_state, node,ret); - Set_Node_Offset(ret, oregcomp_parse); - Set_Node_Length(ret, RExC_parse - oregcomp_parse + 2); + Set_Node_Cur_Length(ret); + Set_Node_Offset(ret, parse_start + 1); ret->flags = flag; regtail(pRExC_state, ret, reg_node(pRExC_state, TAIL)); } @@ -2793,7 +2793,7 @@ S_regatom(pTHX_ RExC_state_t *pRExC_state, I32 *flagp) { register regnode *ret = 0; I32 flags; - char *parse_start = 0; + char *parse_start = RExC_parse; *flagp = WORST; /* Tentatively. */ @@ -3056,6 +3056,7 @@ tryagain: default: /* Do not generate `unrecognized' warnings here, we fall back into the quick-grab loop below */ + parse_start--; goto defchar; } break; @@ -4425,6 +4426,7 @@ S_reginsert(pTHX_ RExC_state_t *pRExC_state, U8 op, regnode *opnd) RExC_parse - RExC_start, RExC_offsets[0])); Set_Node_Offset(place, RExC_parse); + Set_Node_Length(place, 1); } src = NEXTOPER(place); FILL_ADVANCE_NODE(place, op);