Mercurial > vim
view src/proto/mark.pro @ 34336:d2ad8733db75 v9.1.0101
patch 9.1.0101: upper-case of German sharp s should be U+1E9E
Commit: https://github.com/vim/vim/commit/bd1232a1faf56b614a1e74c4ce51bc6e0650ae00
Author: glepnir <glephunter@gmail.com>
Date: Mon Feb 12 22:14:53 2024 +0100
patch 9.1.0101: upper-case of German sharp s should be U+1E9E
Problem: upper-case of ? should be U+1E9E (CAPITAL LETTER SHARP S)
(fenuks)
Solution: Make gU, ~ and g~ convert the U+00DF LATIN SMALL LETTER SHARP S (?)
to U+1E9E LATIN CAPITAL LETTER SHARP S (?), update tests
(glepnir)
This is part of Unicode 5.1.0 from April 2008, so should be fairly safe
to use now and since 2017 is part of the German standard orthography,
according to Wikipedia:
https://en.wikipedia.org/wiki/Capital_%E1%BA%9E#cite_note-auto-12
There is however one exception: UnicodeData.txt for U+00DF
LATIN SMALL LETTER SHARP S does NOT define U+1E9E LATIN CAPITAL LETTER
SHARP S as its upper case version. Therefore, toupper() won't be able
to convert from lower sharp s to upper case sharp s (the other way
around however works, since U+00DF is considered the lower case
character of U+1E9E and therefore tolower() works correctly for the
upper case version).
fixes: #5573
closes: #14018
Signed-off-by: glepnir <glephunter@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 12 Feb 2024 22:45:02 +0100 |
parents | 8eed1e9389bb |
children | 814fcbca4d8d |
line wrap: on
line source
/* mark.c */ int setmark(int c); int setmark_pos(int c, pos_T *pos, int fnum); void setpcmark(void); void checkpcmark(void); pos_T *movemark(int count); pos_T *movechangelist(int count); pos_T *getmark_buf(buf_T *buf, int c, int changefile); pos_T *getmark(int c, int changefile); pos_T *getmark_buf_fnum(buf_T *buf, int c, int changefile, int *fnum); pos_T *getnextmark(pos_T *startpos, int dir, int begin_line); void fmarks_check_names(buf_T *buf); int check_mark(pos_T *pos); void clrallmarks(buf_T *buf); char_u *fm_getname(fmark_T *fmark, int lead_len); void ex_marks(exarg_T *eap); void ex_delmarks(exarg_T *eap); void ex_jumps(exarg_T *eap); void ex_clearjumps(exarg_T *eap); void ex_changes(exarg_T *eap); void mark_adjust(linenr_T line1, linenr_T line2, long amount, long amount_after); void mark_adjust_nofold(linenr_T line1, linenr_T line2, long amount, long amount_after); void mark_col_adjust(linenr_T lnum, colnr_T mincol, long lnum_amount, long col_amount, int spaces_removed); void cleanup_jumplist(win_T *wp, int loadfiles); void copy_jumplist(win_T *from, win_T *to); void free_jumplist(win_T *wp); void set_last_cursor(win_T *win); void free_all_marks(void); xfmark_T *get_namedfm(void); void f_getmarklist(typval_T *argvars, typval_T *rettv); /* vim: set ft=c : */