mirror of
https://github.com/vim/vim.git
synced 2025-08-26 20:03:41 -04:00
And anticipate occasional multibyte line wrapping owing to:
> A poorly rendered line may otherwise become wrapped when enough of
> spurious U+FFFD (0xEF 0xBF 0xBD) characters claim more columns than
> are available (75) and then invalidate line correspondence under test.
Observe that for "vim_ex_command.vim" another workaround is
chosen: the long line containing an only multibyte character
near its EOL is conversely made longer by padding and moving
the character to a separate _tail_ part of the wrapped line.
That is, the _head_ part of the line is all ASCII characters
and the wrapped _tail_ part is a mix of various characters
whose total byte count is within bounds.
Other unmodified tracked files of interest:
java_lambda_expressions.java,
java_lambda_expressions_signature.java,
java_numbers.java,
markdown_conceal.markdown,
vim9_generic_function_example_set.vim
Also, remove stray U+FFFC (0xEF 0xBF 0xBC) characters.
Related to #16559 and #17704.
Reference:
0fde6aebdd/runtime/syntax/testdir/README.txt (L120-L123)
closes: #17868
Signed-off-by: Aliaksei Budavei <0x000c70@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
42 lines
1.5 KiB
C
42 lines
1.5 KiB
C
// C character constants
|
|
|
|
// Source: https://en.cppreference.com/w/c/language/character_constant
|
|
|
|
#include <stddef.h>
|
|
#include <stdio.h>
|
|
#include <uchar.h>
|
|
|
|
int main (void)
|
|
{
|
|
printf("constant value \n");
|
|
printf("-------- ----------\n");
|
|
|
|
// integer character constants,
|
|
int c1='a'; printf("'a':\t %#010x\n", c1);
|
|
// implementation-defined
|
|
int c2='🍌'; printf("'🍌':\t %#010x\n\n", c2);
|
|
|
|
// multicharacter constant
|
|
int c3='ab'; printf("'ab':\t %#010x\n\n", c3); // implementation-defined
|
|
|
|
// 16-bit wide character constants
|
|
char16_t uc1 = u'a'; printf("'a':\t %#010x\n", (int)uc1);
|
|
char16_t uc2 = u'¢'; printf("'¢':\t %#010x\n", (int)uc2);
|
|
char16_t uc3 = u'猫'; printf("'猫':\t %#010x\n", (int)uc3);
|
|
// implementation-defined (🍌 maps to two 16-bit characters)
|
|
char16_t uc4 = u'🍌'; printf("'🍌':\t %#010x\n\n", (int)uc4);
|
|
|
|
// 32-bit wide character constants
|
|
char32_t Uc1 = U'a'; printf("'a':\t %#010x\n", (int)Uc1);
|
|
char32_t Uc2 = U'¢'; printf("'¢':\t %#010x\n", (int)Uc2);
|
|
char32_t Uc3 = U'猫'; printf("'猫':\t %#010x\n", (int)Uc3);
|
|
char32_t Uc4 = U'🍌'; printf("'🍌':\t %#010x\n\n", (int)Uc4);
|
|
|
|
// wide character constants
|
|
wchar_t wc1 = L'a'; printf("'a':\t %#010x\n", (int)wc1);
|
|
wchar_t wc2 = L'¢'; printf("'¢':\t %#010x\n", (int)wc2);
|
|
wchar_t wc3 = L'猫'; printf("'猫':\t %#010x\n", (int)wc3);
|
|
wchar_t wc4 = L'🍌'; printf("'🍌':\t %#010x\n\n", (int)wc4);
|
|
}
|
|
|