Mercurial > vim
comparison src/regexp_nfa.c @ 4688:371cc0c44097 v7.3.1091
updated for version 7.3.1091
Problem: New regexp engine: no error when using \z1 or \z( where it does
not work.
Solution: Give an error message.
author | Bram Moolenaar <bram@vim.org> |
---|---|
date | Sun, 02 Jun 2013 15:01:57 +0200 |
parents | 8db697ae406a |
children | 9d97a0c045ef |
comparison
equal
deleted
inserted
replaced
4687:79797c8534b5 | 4688:371cc0c44097 |
---|---|
863 case '6': | 863 case '6': |
864 case '7': | 864 case '7': |
865 case '8': | 865 case '8': |
866 case '9': | 866 case '9': |
867 /* \z1...\z9 */ | 867 /* \z1...\z9 */ |
868 if (reg_do_extmatch != REX_USE) | |
869 EMSG_RET_FAIL(_(e_z1_not_allowed)); | |
868 EMIT(NFA_ZREF1 + (no_Magic(c) - '1')); | 870 EMIT(NFA_ZREF1 + (no_Magic(c) - '1')); |
869 /* No need to set nfa_has_backref, the sub-matches don't | 871 /* No need to set nfa_has_backref, the sub-matches don't |
870 * change when \z1 .. \z9 maches or not. */ | 872 * change when \z1 .. \z9 maches or not. */ |
871 re_has_z = REX_USE; | 873 re_has_z = REX_USE; |
872 break; | 874 break; |
873 case '(': | 875 case '(': |
874 /* \z( */ | 876 /* \z( */ |
877 if (reg_do_extmatch != REX_SET) | |
878 EMSG_RET_FAIL(_(e_z_not_allowed)); | |
875 if (nfa_reg(REG_ZPAREN) == FAIL) | 879 if (nfa_reg(REG_ZPAREN) == FAIL) |
876 return FAIL; /* cascaded error */ | 880 return FAIL; /* cascaded error */ |
877 re_has_z = REX_SET; | 881 re_has_z = REX_SET; |
878 break; | 882 break; |
879 #endif | 883 #endif |