Mercurial > vim
comparison src/textobject.c @ 25437:d4a710f06f02 v8.2.3255
patch 8.2.3255: ci" finds following string but ci< and others don't
Commit: https://github.com/vim/vim/commit/b9115da4bec5e6cfff69da85cc47c42dd67e42e4
Author: Connor Lane Smith <cls@lubutu.com>
Date: Sat Jul 31 13:31:42 2021 +0200
patch 8.2.3255: ci" finds following string but ci< and others don't
Problem: ci" finds following string but ci< and others don't.
Solution: When not inside an object find the start. (Connor Lane Smit,
closes #8670)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 31 Jul 2021 13:45:03 +0200 |
parents | 3ac0ef0578ef |
children | 1ab5add6f4e8 |
comparison
equal
deleted
inserted
replaced
25436:1c4eb97d71a1 | 25437:d4a710f06f02 |
---|---|
1077 * Ignore quotes here. Keep the "M" flag in 'cpo', as that is what the | 1077 * Ignore quotes here. Keep the "M" flag in 'cpo', as that is what the |
1078 * user wants. | 1078 * user wants. |
1079 */ | 1079 */ |
1080 save_cpo = p_cpo; | 1080 save_cpo = p_cpo; |
1081 p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%"); | 1081 p_cpo = (char_u *)(vim_strchr(p_cpo, CPO_MATCHBSL) != NULL ? "%M" : "%"); |
1082 while (count-- > 0) | 1082 if ((pos = findmatch(NULL, what)) != NULL) |
1083 { | 1083 { |
1084 if ((pos = findmatch(NULL, what)) == NULL) | 1084 while (count-- > 0) |
1085 break; | 1085 { |
1086 curwin->w_cursor = *pos; | 1086 if ((pos = findmatch(NULL, what)) == NULL) |
1087 start_pos = *pos; // the findmatch for end_pos will overwrite *pos | 1087 break; |
1088 curwin->w_cursor = *pos; | |
1089 start_pos = *pos; // the findmatch for end_pos will overwrite *pos | |
1090 } | |
1091 } | |
1092 else | |
1093 { | |
1094 while (count-- > 0) | |
1095 { | |
1096 if ((pos = findmatchlimit(NULL, what, FM_FORWARD, 0)) == NULL) | |
1097 break; | |
1098 curwin->w_cursor = *pos; | |
1099 start_pos = *pos; // the findmatch for end_pos will overwrite *pos | |
1100 } | |
1088 } | 1101 } |
1089 p_cpo = save_cpo; | 1102 p_cpo = save_cpo; |
1090 | 1103 |
1091 /* | 1104 /* |
1092 * Search for matching ')', '}', etc. | 1105 * Search for matching ')', '}', etc. |