Fix bug in bos/eos handling.
CRE-SEARCH? (defined in scsh/rx/re-low.scm) calls REGEXP-MATCH with 4th and 5th arguments indicating whether this corresponds to begin/end of line. For matching a string, these must be #t. The reason it was working previously (with both parameters set to #f) was a bug in regexp1.c:116 (fixed now by placing the appropriate parenthesis), caused by | having higher precedence than ?: in C (as a result, the flags passed to the C regexp engine were not correctly computed).
This commit is contained in:
parent
b0d75bda86
commit
35e91dcfd2
|
@ -81,7 +81,7 @@
|
||||||
(let ((ret (regexp-match (cre:regexp cre) str #t #f #f start)))
|
(let ((ret (regexp-match (cre:regexp cre) str #t #f #f start)))
|
||||||
(if (not ret)
|
(if (not ret)
|
||||||
#f
|
#f
|
||||||
(make-regexp-match str
|
(make-regexp-match str
|
||||||
(translate-submatches ret
|
(translate-submatches ret
|
||||||
(cre:tvec cre)
|
(cre:tvec cre)
|
||||||
match-vec))))))))
|
match-vec))))))))
|
||||||
|
@ -114,4 +114,4 @@
|
||||||
(if (not (cre:regexp/nm cre))
|
(if (not (cre:regexp/nm cre))
|
||||||
(set-cre:regexp/nm cre (make-regexp re-str
|
(set-cre:regexp/nm cre (make-regexp re-str
|
||||||
(regexp-option extended))))
|
(regexp-option extended))))
|
||||||
(regexp-match (cre:regexp/nm cre) str #f #f #f start)))))
|
(regexp-match (cre:regexp/nm cre) str #f #t #t start)))))
|
||||||
|
|
Loading…
Reference in New Issue