-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
patch 8.0.0252: not properly recognizing word characters between 128 …
…and 255 Problem: Characters below 256 that are not one byte are not always recognized as word characters. Solution: Make vim_iswordc() and vim_iswordp() work the same way. Add a test for this. (Ozaki Kiichi)
- Loading branch information
Showing
7 changed files
with
143 additions
and
18 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -81,3 +81,4 @@ src/testdir/viminfo | |
src/memfile_test | ||
src/json_test | ||
src/message_test | ||
src/kword_test |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
/* vi:set ts=8 sts=4 sw=4 noet: | ||
* | ||
* VIM - Vi IMproved by Bram Moolenaar | ||
* | ||
* Do ":help uganda" in Vim to read copying and usage conditions. | ||
* Do ":help credits" in Vim to see a list of people who contributed. | ||
* See README.txt for an overview of the Vim source code. | ||
*/ | ||
|
||
/* | ||
* kword_test.c: Unittests for vim_iswordc() and vim_iswordp(). | ||
*/ | ||
|
||
#undef NDEBUG | ||
#include <assert.h> | ||
|
||
/* Must include main.c because it contains much more than just main() */ | ||
#define NO_VIM_MAIN | ||
#include "main.c" | ||
|
||
/* This file has to be included because the tested functions are static */ | ||
#include "charset.c" | ||
|
||
#ifdef FEAT_MBYTE | ||
/* | ||
* Test the results of vim_iswordc() and vim_iswordp() are matched. | ||
*/ | ||
static void | ||
test_isword_funcs_utf8(void) | ||
{ | ||
buf_T buf; | ||
int c; | ||
|
||
vim_memset(&buf, 0, sizeof(buf)); | ||
p_enc = (char_u *)"utf-8"; | ||
p_isi = (char_u *)""; | ||
p_isp = (char_u *)""; | ||
p_isf = (char_u *)""; | ||
buf.b_p_isk = (char_u *)"@,48-57,_,128-167,224-235"; | ||
|
||
curbuf = &buf; | ||
mb_init(); /* calls init_chartab() */ | ||
|
||
for (c = 0; c < 0x10000; ++c) | ||
{ | ||
char_u p[4] = {0}; | ||
int c1; | ||
int retc; | ||
int retp; | ||
|
||
utf_char2bytes(c, p); | ||
c1 = utf_ptr2char(p); | ||
if (c != c1) | ||
{ | ||
fprintf(stderr, "Failed: "); | ||
fprintf(stderr, | ||
"[c = %#04x, p = {%#02x, %#02x, %#02x}] ", | ||
c, p[0], p[1], p[2]); | ||
fprintf(stderr, "c != utf_ptr2char(p) (=%#04x)\n", c1); | ||
abort(); | ||
} | ||
retc = vim_iswordc_buf(c, &buf); | ||
retp = vim_iswordp_buf(p, &buf); | ||
if (retc != retp) | ||
{ | ||
fprintf(stderr, "Failed: "); | ||
fprintf(stderr, | ||
"[c = %#04x, p = {%#02x, %#02x, %#02x}] ", | ||
c, p[0], p[1], p[2]); | ||
fprintf(stderr, "vim_iswordc(c) (=%d) != vim_iswordp(p) (=%d)\n", | ||
retc, retp); | ||
abort(); | ||
} | ||
} | ||
} | ||
#endif | ||
|
||
int | ||
main(void) | ||
{ | ||
#ifdef FEAT_MBYTE | ||
test_isword_funcs_utf8(); | ||
#endif | ||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters