# HG changeset patch # User Richard M. Stallman # Date 893475456 0 # Node ID f97c01dfd603fb22c6b96692b2f40ccfa1d72439 # Parent 53f1e474e639ba2c5b0c7fd90a3109f02885afb9 (re_search_2): Fix handling of at_dot. Fix the way RANGE is set when handling begbuf. diff -r 53f1e474e639 -r f97c01dfd603 src/regex.c --- a/src/regex.c Fri Apr 24 21:25:31 1998 +0000 +++ b/src/regex.c Sat Apr 25 03:37:36 1998 +0000 @@ -3710,13 +3710,13 @@ range = total_size - startpos; /* If the search isn't to be a backwards one, don't waste time in a - search for a pattern that must be anchored. */ + search for a pattern anchored at beginning of buffer. */ if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == begbuf && range > 0) { if (startpos > 0) return -1; else - range = 1; + range = 0; } #ifdef emacs @@ -3724,8 +3724,8 @@ don't keep searching past point. */ if (bufp->used > 0 && (re_opcode_t) bufp->buffer[0] == at_dot && range > 0) { - range = PT - startpos; - if (range <= 0) + range = PT_BYTE - BEGV_BYTE - startpos; + if (range < 0) return -1; } #endif /* emacs */