Mercurial > vim
comparison src/diff.c @ 20772:097f5b5c907b v8.2.0938
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Commit: https://github.com/vim/vim/commit/59de417b904bbd204e313f015839317b577bd124
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Jun 9 19:34:54 2020 +0200
patch 8.2.0938: NFA regexp uses tolower ()to compare ignore-case
Problem: NFA regexp uses tolower() to compare ignore-case. (Thayne McCombs)
Solution: Use utf_fold() when possible. (ref. neovim https://github.com/vim/vim/issues/12456)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 09 Jun 2020 19:45:03 +0200 |
parents | d9a2e5dcfd9f |
children | e82579016863 |
comparison
equal
deleted
inserted
replaced
20771:8aa004f7e48f | 20772:097f5b5c907b |
---|---|
745 int orig_len; | 745 int orig_len; |
746 char_u cbuf[MB_MAXBYTES + 1]; | 746 char_u cbuf[MB_MAXBYTES + 1]; |
747 | 747 |
748 // xdiff doesn't support ignoring case, fold-case the text. | 748 // xdiff doesn't support ignoring case, fold-case the text. |
749 c = PTR2CHAR(s); | 749 c = PTR2CHAR(s); |
750 c = enc_utf8 ? utf_fold(c) : MB_TOLOWER(c); | 750 c = MB_CASEFOLD(c); |
751 orig_len = mb_ptr2len(s); | 751 orig_len = mb_ptr2len(s); |
752 if (mb_char2bytes(c, cbuf) != orig_len) | 752 if (mb_char2bytes(c, cbuf) != orig_len) |
753 // TODO: handle byte length difference | 753 // TODO: handle byte length difference |
754 mch_memmove(ptr + len, s, orig_len); | 754 mch_memmove(ptr + len, s, orig_len); |
755 else | 755 else |