]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.1640: Unicode has deprecated some code-points v9.1.1640
authorDavid Friant <friant@HPEnvyx360.friant.dev>
Sat, 16 Aug 2025 16:30:55 +0000 (18:30 +0200)
committerChristian Brabandt <cb@256bit.org>
Sat, 16 Aug 2025 16:33:05 +0000 (18:33 +0200)
Problem:  Unicode has deprecated some code-points
Solution: Update the digraph tables to align with the Unicode v16
          release (David Friant)

This commit updates the digraphs Left-Pointing Angle Bracket '</'
and Right-Pointing Angle Bracket '/>' to account for the fact that
the old Unicode codepoints for them (2329 and 232A, respectively)
have been deprecated. As per the Miscellaneous Technical code chart
(https://www.unicode.org/charts/PDF/U2300.pdf), the old digraphs
have been reassigned to the CJK Left Angle Bracket and Right Angle
Bracket (3008 and 3009) with their declaration moved to the
appropriate block.

This commit also introduces the new digraphs '<[' and ']>' to
represent the Mathematical Left Angle Bracket and Mathematical
Right Angle Bracket (27E8 and 27E9) to replace the deprecated code
points in the Technical block.

Tests have been added and, I believe, the documentation has been
updated accordingly.

closes: #17990

Signed-off-by: David Friant <friant@HPEnvyx360.friant.dev>
Signed-off-by: Christian Brabandt <cb@256bit.org>
runtime/doc/digraph.txt
runtime/doc/version9.txt
src/digraph.c
src/testdir/test_digraph.vim
src/version.c

index 2a96812bf9b436534bb210a57653411a763d8e76..313b58ed4e88f20eef4b483e1ceb5da2fa4303c6 100644 (file)
@@ -1,4 +1,4 @@
-*digraph.txt*   For Vim version 9.1.  Last change: 2025 Feb 02
+*digraph.txt*   For Vim version 9.1.  Last change: 2025 Aug 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1105,8 +1105,8 @@ char  digraph     hex     dec     official name ~
 ⌕    TR      2315    8981    TELEPHONE RECORDER
 ⌠    Iu      2320    8992    TOP HALF INTEGRAL
 ⌡    Il      2321    8993    BOTTOM HALF INTEGRAL
\8c©    </      2329    9001    LEFT-POINTING ANGLE BRACKET
\8cª    />      232A    9002    RIGHT-POINTING ANGLE BRACKET
\9f¨    <[      27E8    10040   LEFT MATHEMATICAL ANGLE BRACKET
\9f©    ]>      27E9    10041   RIGHT MATHEMATICAL ANGLE BRACKET
 ␣    Vs      2423    9251    OPEN BOX
 ⑀    1h      2440    9280    OCR HOOK
 ⑁    3h      2441    9281    OCR CHAIR
@@ -1246,6 +1246,8 @@ char  digraph     hex     dec     official name ~
 々    *_      3005    12293   IDEOGRAPHIC ITERATION MARK
 〆    ;_      3006    12294   IDEOGRAPHIC CLOSING MARK
 〇    0_      3007    12295   IDEOGRAPHIC NUMBER ZERO
+〈    </      3008    12296   LEFT ANGLE BRACKET
+〉    />      3009    12297   RIGHT ANGLE BRACKET
 《    <+      300A    12298   LEFT DOUBLE ANGLE BRACKET
 》    >+      300B    12299   RIGHT DOUBLE ANGLE BRACKET
 「    <'      300C    12300   LEFT CORNER BRACKET
index aa7a57ded3b62851c6b6227495ae6bb541f572ec..17be46d03741fd9044df3d0567d4d5aa2b000b2a 100644 (file)
@@ -1,4 +1,4 @@
-*version9.txt*  For Vim version 9.1.  Last change: 2025 Aug 12
+*version9.txt*  For Vim version 9.1.  Last change: 2025 Aug 16
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -41739,6 +41739,12 @@ Others: ~
 - The close button shown in the non-GUI 'tabline' will only be visible if the
   'mouse' option contains either "a" or any of the flags "n", "v", or "i".
 - |C-indenting| handles compound literals.
+- The digraphs "</" (LEFT-POINTING ANGLE BRACKET) and ">/" (RIGHT-POINTING
+  ANGLE BRACKET) have been changed to represent LEFT ANGLE BRACKET and RIGHT
+  ANGLE BRACKET to match the Unicode Miscellaneous Technical code chart from
+  Unicode 16.
+- Two additional digraphs have been added: LEFT ANGLE BRACKET "<[" and RIGHT
+  ANGLE BRACKET "]>".
 
                                                        *added-9.2*
 Added ~
index a5dff00d1b884eaf4817fe4837f1c0d13fbffb37..8af2dc2e17d49d99bc7f960bd11dddeab1ece1c2 100644 (file)
@@ -1028,8 +1028,8 @@ static digr_T digraphdefault[] = {
        {'T', 'R', 0x2315},
        {'I', 'u', 0x2320},
        {'I', 'l', 0x2321},
-       {'<', '/', 0x2329},
-       {'/', '>', 0x232a},
+       {'<', '[', 0x27e8},
+       {']', '>', 0x27e9},
 #   define DG_START_OTHER2 0x2423
        {'V', 's', 0x2423},
        {'1', 'h', 0x2440},
@@ -1176,6 +1176,8 @@ static digr_T digraphdefault[] = {
        {'*', '_', 0x3005},
        {';', '_', 0x3006},
        {'0', '_', 0x3007},
+       {'<', '/', 0x3008},
+       {'/', '>', 0x3009},
        {'<', '+', 0x300a},
        {'>', '+', 0x300b},
        {'<', '\'', 0x300c},
index c53b1bcc014f134f71431a772821052dbc917275..96b2b63baf50b4c3f3402d556574a22cf7f00f0a 100644 (file)
@@ -612,5 +612,16 @@ func Test_digraph_getlist_function()
   call assert_fails('call digraph_getlist(0z12)', 'E1212: Bool required for argument 1')
 endfunc
 
+func Test_digraph_angle_bracket_patch()
+  " Ensure that the deprecated angle brackets 2329/232A ('</','/>') are not used
+  call assert_notequal('〈', digraph_get('</'))
+  call assert_notequal('〉', digraph_get('/>'))
+  " Ensure that the CJK angle brackets 3008/3009 ('</','/>') are used
+  call assert_equal('〈', digraph_get('</'))
+  call assert_equal('〉', digraph_get('/>'))
+  " Ensure that the mathematical angle brackets 27E8/27E9 ('<[',']>') are defined
+  call assert_equal('⟨', digraph_get('<['))
+  call assert_equal('⟩', digraph_get(']>'))
+endfunc
 
 " vim: shiftwidth=2 sts=2 expandtab
index cc08bffa8b9ff3177922966f62f048d5d3eaff5e..f890e8a68e0f3d66daaa2faade12b114b23b4269 100644 (file)
@@ -719,6 +719,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1640,
 /**/
     1639,
 /**/