Mercurial > vim
comparison src/search.c @ 32856:06562c9307dd v9.0.1738
patch 9.0.1738: Duplicate code to reverse a string
Commit: https://github.com/vim/vim/commit/4dd266cb66d901cf5324f09405cfea3f004bd29f
Author: zeertzjq <zeertzjq@outlook.com>
Date: Sat Aug 19 11:35:03 2023 +0200
patch 9.0.1738: Duplicate code to reverse a string
Problem: Duplicate code to reverse a string
Solution: Move reverse_text() to strings.c and remove string_reverse().
closes: #12847
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 19 Aug 2023 11:45:04 +0200 |
parents | 695b50472e85 |
children | d7cfd8fb1d75 |
comparison
equal
deleted
inserted
replaced
32855:2bf128c65a66 | 32856:06562c9307dd |
---|---|
200 char_u * | 200 char_u * |
201 get_search_pat(void) | 201 get_search_pat(void) |
202 { | 202 { |
203 return mr_pattern; | 203 return mr_pattern; |
204 } | 204 } |
205 | |
206 #if defined(FEAT_RIGHTLEFT) || defined(PROTO) | |
207 /* | |
208 * Reverse text into allocated memory. | |
209 * Returns the allocated string, NULL when out of memory. | |
210 */ | |
211 char_u * | |
212 reverse_text(char_u *s) | |
213 { | |
214 unsigned len; | |
215 unsigned s_i, rev_i; | |
216 char_u *rev; | |
217 | |
218 /* | |
219 * Reverse the pattern. | |
220 */ | |
221 len = (unsigned)STRLEN(s); | |
222 rev = alloc(len + 1); | |
223 if (rev == NULL) | |
224 return NULL; | |
225 | |
226 rev_i = len; | |
227 for (s_i = 0; s_i < len; ++s_i) | |
228 { | |
229 if (has_mbyte) | |
230 { | |
231 int mb_len; | |
232 | |
233 mb_len = (*mb_ptr2len)(s + s_i); | |
234 rev_i -= mb_len; | |
235 mch_memmove(rev + rev_i, s + s_i, mb_len); | |
236 s_i += mb_len - 1; | |
237 } | |
238 else | |
239 rev[--rev_i] = s[s_i]; | |
240 | |
241 } | |
242 rev[len] = NUL; | |
243 return rev; | |
244 } | |
245 #endif | |
246 | 205 |
247 void | 206 void |
248 save_re_pat(int idx, char_u *pat, int magic) | 207 save_re_pat(int idx, char_u *pat, int magic) |
249 { | 208 { |
250 if (spats[idx].pat == pat) | 209 if (spats[idx].pat == pat) |