Mercurial > vim
comparison src/regexp_nfa.c @ 34671:df52075b12cd v9.1.0217
patch 9.1.0217: regexp: verymagic cannot match before/after a mark
Commit: https://github.com/vim/vim/commit/46fa3c7e271eb2abb05a0d9e6dbc9c36c2b2da02
Author: Julio B <julio.bacel@gmail.com>
Date: Thu Mar 28 10:23:37 2024 +0100
patch 9.1.0217: regexp: verymagic cannot match before/after a mark
Problem: regexp: verymagic cannot match before/after a mark
Solution: Correctly check for the very magic check (Julio B)
Fix regexp parser for \v%>'m and \v%<'m
Currently \v%'m works fine, but it is unable to match before or after
the position of mark m.
closes: #14309
Signed-off-by: Julio B <julio.bacel@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Thu, 28 Mar 2024 10:30:04 +0100 |
parents | 90063f44c99a |
children | e5d2d9024ad6 |
comparison
equal
deleted
inserted
replaced
34670:879a61a9aa07 | 34671:df52075b12cd |
---|---|
1731 return FAIL; | 1731 return FAIL; |
1732 } | 1732 } |
1733 EMIT((int)n); | 1733 EMIT((int)n); |
1734 break; | 1734 break; |
1735 } | 1735 } |
1736 else if (c == '\'' && n == 0) | 1736 else if (no_Magic(c) == '\'' && n == 0) |
1737 { | 1737 { |
1738 // \%'m \%<'m \%>'m | 1738 // \%'m \%<'m \%>'m |
1739 EMIT(cmp == '<' ? NFA_MARK_LT : | 1739 EMIT(cmp == '<' ? NFA_MARK_LT : |
1740 cmp == '>' ? NFA_MARK_GT : NFA_MARK); | 1740 cmp == '>' ? NFA_MARK_GT : NFA_MARK); |
1741 EMIT(getchr()); | 1741 EMIT(getchr()); |