This commit is contained in:
Kovid Goyal 2022-09-29 09:17:02 +05:30
commit bbc9f588f1
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
9 changed files with 33427 additions and 31820 deletions

View File

@ -38,6 +38,8 @@ Detailed list of changes
0.26.4 [future] 0.26.4 [future]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Update to Unicode 15.0 (:pull:`5542`)
- macOS: Allow changing the kitty icon by placing a custom icon in the kitty config folder (:pull:`5464`) - macOS: Allow changing the kitty icon by placing a custom icon in the kitty config folder (:pull:`5464`)
- X11: Fix a regression in the previous release that caused pasting from GTK based applications to have extra newlines (:iss:`5528`) - X11: Fix a regression in the previous release that caused pasting from GTK based applications to have extra newlines (:iss:`5528`)

View File

@ -205,13 +205,15 @@ fonts to be freely resizable, so it does not support bitmapped fonts.
.. note:: .. note::
If you are trying to use a font patched with `Nerd Fonts If you are trying to use a font patched with `Nerd Fonts
<https://nerdfonts.com/>`__ symbols, don't do that as patching destroys <https://nerdfonts.com/>`__ symbols, don't do that as patching destroys
fonts. There is no need, simply install the standalone ``Symbols Nerd Font`` fonts. There is no need, simply install the standalone ``Symbols Nerd Font Mono``
(the file :file:`NerdFontsSymbolsOnly.zip` from the `Nerd Fonts releases page (the file :file:`NerdFontsSymbolsOnly.zip` from the `Nerd Fonts releases page
<https://github.com/ryanoasis/nerd-fonts/releases>`__). kitty should pick up <https://github.com/ryanoasis/nerd-fonts/releases>`__). kitty should pick up
symbols from it automatically, and you can tell it to do so explicitly in symbols from it automatically, and you can tell it to do so explicitly in
case it doesn't with the :opt:`symbol_map` directive:: case it doesn't with the :opt:`symbol_map` directive::
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E62F,U+E700-U+E7C5,U+F000-U+F2E0,U+F300-U+F31C,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font # Nerd Fonts v2.2.2
symbol_map U+23FB-U+23FE,U+2665,U+26A1,U+2B58,U+E000-U+E00A,U+E0A0-U+E0A3,U+E0B0-U+E0C8,U+E0CA,U+E0CC-U+E0D2,U+E0D4,U+E200-U+E2A9,U+E300-U+E3E3,U+E5FA-U+E634,U+E700-U+E7C5,U+EA60-U+EBEB,U+F000-U+F2E0,U+F300-U+F32F,U+F400-U+F4A9,U+F500-U+F8FF Symbols Nerd Font Mono
Those Unicode symbols beyond the ``E000-F8FF`` Unicode private use area are Those Unicode symbols beyond the ``E000-F8FF`` Unicode private use area are
not included. not included.

View File

@ -1,3 +1,3 @@
# generated by gen-wcwidth.py, do not edit # generated by gen-wcwidth.py, do not edit
url_delimiters = '\x00-\x09\x0b-\x0c\x0e-\x20\x7f-\xa0\xad\u0600-\u0605\u061c\u06dd\u070f\u0890-\u0891\u08e2\u1680\u180e\u2000-\u200f\u2028-\u202f\u205f-\u2064\u2066-\u206f\u3000\ud800-\uf8ff\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U00013430-\U00013438\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f\U000f0000-\U000ffffd\U00100000-\U0010fffd' # noqa url_delimiters = '\x00-\x09\x0b-\x0c\x0e-\x20\x7f-\xa0\xad\u0600-\u0605\u061c\u06dd\u070f\u0890-\u0891\u08e2\u1680\u180e\u2000-\u200f\u2028-\u202f\u205f-\u2064\u2066-\u206f\u3000\ud800-\uf8ff\ufeff\ufff9-\ufffb\U000110bd\U000110cd\U00013430-\U0001343f\U0001bca0-\U0001bca3\U0001d173-\U0001d17a\U000e0001\U000e0020-\U000e007f\U000f0000-\U000ffffd\U00100000-\U0010fffd' # noqa

File diff suppressed because one or more lines are too long

26
kitty/emoji.h generated
View File

@ -1,4 +1,4 @@
// unicode data, built from the unicode standard on: 2022-01-05 // unicode data, built from the unicode standard on: 2022-09-29
// see gen-wcwidth.py // see gen-wcwidth.py
#pragma once #pragma once
#include "data-types.h" #include "data-types.h"
@ -739,13 +739,13 @@ is_symbol(char_type code) {
return true; return true;
case 0x1f300 ... 0x1f6d7: case 0x1f300 ... 0x1f6d7:
return true; return true;
case 0x1f6dd ... 0x1f6ec: case 0x1f6dc ... 0x1f6ec:
return true; return true;
case 0x1f6f0 ... 0x1f6fc: case 0x1f6f0 ... 0x1f6fc:
return true; return true;
case 0x1f700 ... 0x1f773: case 0x1f700 ... 0x1f776:
return true; return true;
case 0x1f780 ... 0x1f7d8: case 0x1f77b ... 0x1f7d9:
return true; return true;
case 0x1f7e0 ... 0x1f7eb: case 0x1f7e0 ... 0x1f7eb:
return true; return true;
@ -767,23 +767,19 @@ is_symbol(char_type code) {
return true; return true;
case 0x1fa60 ... 0x1fa6d: case 0x1fa60 ... 0x1fa6d:
return true; return true;
case 0x1fa70 ... 0x1fa74: case 0x1fa70 ... 0x1fa7c:
return true; return true;
case 0x1fa78 ... 0x1fa7c: case 0x1fa80 ... 0x1fa88:
return true; return true;
case 0x1fa80 ... 0x1fa86: case 0x1fa90 ... 0x1fabd:
return true; return true;
case 0x1fa90 ... 0x1faac: case 0x1fabf ... 0x1fac5:
return true; return true;
case 0x1fab0 ... 0x1faba: case 0x1face ... 0x1fadb:
return true; return true;
case 0x1fac0 ... 0x1fac5: case 0x1fae0 ... 0x1fae8:
return true; return true;
case 0x1fad0 ... 0x1fad9: case 0x1faf0 ... 0x1faf8:
return true;
case 0x1fae0 ... 0x1fae7:
return true;
case 0x1faf0 ... 0x1faf6:
return true; return true;
case 0x1fb00 ... 0x1fb92: case 0x1fb00 ... 0x1fb92:
return true; return true;

550
kitty/unicode-data.c generated

File diff suppressed because one or more lines are too long

View File

@ -2,7 +2,7 @@
#include "data-types.h" #include "data-types.h"
#include "state.h" #include "state.h"
// START_KNOWN_MARKS // START_KNOWN_MARKS
static const combining_type VS15 = 1362, VS16 = 1363; static const combining_type VS15 = 1364, VS16 = 1365;
// END_KNOWN_MARKS // END_KNOWN_MARKS
bool is_combining_char(char_type ch); bool is_combining_char(char_type ch);

128
kitty/wcwidth-std.h generated
View File

@ -1,4 +1,4 @@
// unicode data, built from the unicode standard on: 2022-01-05 // unicode data, built from the unicode standard on: 2022-09-29
// see gen-wcwidth.py // see gen-wcwidth.py
#pragma once #pragma once
#include "data-types.h" #include "data-types.h"
@ -14,7 +14,7 @@ wcwidth_std(int32_t code) {
return 2; return 2;
// }}} // }}}
// Marks (6350 codepoints) {{{ // Marks (6399 codepoints) {{{
case 0x0: case 0x0:
return 0; return 0;
case 0xad: case 0xad:
@ -185,6 +185,8 @@ wcwidth_std(int32_t code) {
return 0; return 0;
case 0xce2 ... 0xce3: case 0xce2 ... 0xce3:
return 0; return 0;
case 0xcf3:
return 0;
case 0xd00 ... 0xd03: case 0xd00 ... 0xd03:
return 0; return 0;
case 0xd3b ... 0xd3c: case 0xd3b ... 0xd3c:
@ -221,7 +223,7 @@ wcwidth_std(int32_t code) {
return 0; return 0;
case 0xeb4 ... 0xebc: case 0xeb4 ... 0xebc:
return 0; return 0;
case 0xec8 ... 0xecd: case 0xec8 ... 0xece:
return 0; return 0;
case 0xf18 ... 0xf19: case 0xf18 ... 0xf19:
return 0; return 0;
@ -439,6 +441,8 @@ wcwidth_std(int32_t code) {
return 0; return 0;
case 0x10eab ... 0x10eac: case 0x10eab ... 0x10eac:
return 0; return 0;
case 0x10efd ... 0x10eff:
return 0;
case 0x10f46 ... 0x10f50: case 0x10f46 ... 0x10f50:
return 0; return 0;
case 0x10f82 ... 0x10f85: case 0x10f82 ... 0x10f85:
@ -481,6 +485,8 @@ wcwidth_std(int32_t code) {
return 0; return 0;
case 0x1123e: case 0x1123e:
return 0; return 0;
case 0x11241:
return 0;
case 0x112df ... 0x112ea: case 0x112df ... 0x112ea:
return 0; return 0;
case 0x11300 ... 0x11303: case 0x11300 ... 0x11303:
@ -575,7 +581,17 @@ wcwidth_std(int32_t code) {
return 0; return 0;
case 0x11ef3 ... 0x11ef6: case 0x11ef3 ... 0x11ef6:
return 0; return 0;
case 0x13430 ... 0x13438: case 0x11f00 ... 0x11f01:
return 0;
case 0x11f03:
return 0;
case 0x11f34 ... 0x11f3a:
return 0;
case 0x11f3e ... 0x11f42:
return 0;
case 0x13430 ... 0x13440:
return 0;
case 0x13447 ... 0x13455:
return 0; return 0;
case 0x16af0 ... 0x16af4: case 0x16af0 ... 0x16af4:
return 0; return 0;
@ -631,12 +647,16 @@ wcwidth_std(int32_t code) {
return 0; return 0;
case 0x1e026 ... 0x1e02a: case 0x1e026 ... 0x1e02a:
return 0; return 0;
case 0x1e08f:
return 0;
case 0x1e130 ... 0x1e136: case 0x1e130 ... 0x1e136:
return 0; return 0;
case 0x1e2ae: case 0x1e2ae:
return 0; return 0;
case 0x1e2ec ... 0x1e2ef: case 0x1e2ec ... 0x1e2ef:
return 0; return 0;
case 0x1e4ec ... 0x1e4ef:
return 0;
case 0x1e8d0 ... 0x1e8d6: case 0x1e8d0 ... 0x1e8d6:
return 0; return 0;
case 0x1e944 ... 0x1e94a: case 0x1e944 ... 0x1e94a:
@ -1257,7 +1277,7 @@ wcwidth_std(int32_t code) {
return -2; return -2;
// }}} // }}}
// East Asian double width (182470 codepoints) {{{ // East Asian double width (182492 codepoints) {{{
case 0x1100 ... 0x115e: case 0x1100 ... 0x115e:
return 2; return 2;
case 0x231a ... 0x231b: case 0x231a ... 0x231b:
@ -1402,8 +1422,12 @@ wcwidth_std(int32_t code) {
return 2; return 2;
case 0x1b000 ... 0x1b122: case 0x1b000 ... 0x1b122:
return 2; return 2;
case 0x1b132:
return 2;
case 0x1b150 ... 0x1b152: case 0x1b150 ... 0x1b152:
return 2; return 2;
case 0x1b155:
return 2;
case 0x1b164 ... 0x1b167: case 0x1b164 ... 0x1b167:
return 2; return 2;
case 0x1b170 ... 0x1b2fb: case 0x1b170 ... 0x1b2fb:
@ -1474,7 +1498,7 @@ wcwidth_std(int32_t code) {
return 2; return 2;
case 0x1f6d5 ... 0x1f6d7: case 0x1f6d5 ... 0x1f6d7:
return 2; return 2;
case 0x1f6dd ... 0x1f6df: case 0x1f6dc ... 0x1f6df:
return 2; return 2;
case 0x1f6eb ... 0x1f6ec: case 0x1f6eb ... 0x1f6ec:
return 2; return 2;
@ -1490,23 +1514,19 @@ wcwidth_std(int32_t code) {
return 2; return 2;
case 0x1f947 ... 0x1f9ff: case 0x1f947 ... 0x1f9ff:
return 2; return 2;
case 0x1fa70 ... 0x1fa74: case 0x1fa70 ... 0x1fa7c:
return 2; return 2;
case 0x1fa78 ... 0x1fa7c: case 0x1fa80 ... 0x1fa88:
return 2; return 2;
case 0x1fa80 ... 0x1fa86: case 0x1fa90 ... 0x1fabd:
return 2; return 2;
case 0x1fa90 ... 0x1faac: case 0x1fabf ... 0x1fac5:
return 2; return 2;
case 0x1fab0 ... 0x1faba: case 0x1face ... 0x1fadb:
return 2; return 2;
case 0x1fac0 ... 0x1fac5: case 0x1fae0 ... 0x1fae8:
return 2; return 2;
case 0x1fad0 ... 0x1fad9: case 0x1faf0 ... 0x1faf8:
return 2;
case 0x1fae0 ... 0x1fae7:
return 2;
case 0x1faf0 ... 0x1faf6:
return 2; return 2;
case 0x20000 ... 0x2fffd: case 0x20000 ... 0x2fffd:
return 2; return 2;
@ -1517,7 +1537,7 @@ wcwidth_std(int32_t code) {
// Emoji Presentation (0 codepoints) {{{ // Emoji Presentation (0 codepoints) {{{
// }}} // }}}
// Not assigned in the unicode character database (760767 codepoints) {{{ // Not assigned in the unicode character database (760471 codepoints) {{{
case 0x378 ... 0x379: case 0x378 ... 0x379:
return -4; return -4;
case 0x380 ... 0x383: case 0x380 ... 0x383:
@ -1760,7 +1780,7 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0xcf0: case 0xcf0:
return -4; return -4;
case 0xcf3 ... 0xcff: case 0xcf4 ... 0xcff:
return -4; return -4;
case 0xd0d: case 0xd0d:
return -4; return -4;
@ -1820,7 +1840,7 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0xec7: case 0xec7:
return -4; return -4;
case 0xece ... 0xecf: case 0xecf:
return -4; return -4;
case 0xeda ... 0xedb: case 0xeda ... 0xedb:
return -4; return -4;
@ -2354,7 +2374,7 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x10eae ... 0x10eaf: case 0x10eae ... 0x10eaf:
return -4; return -4;
case 0x10eb2 ... 0x10eff: case 0x10eb2 ... 0x10efc:
return -4; return -4;
case 0x10f28 ... 0x10f2f: case 0x10f28 ... 0x10f2f:
return -4; return -4;
@ -2390,7 +2410,7 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x11212: case 0x11212:
return -4; return -4;
case 0x1123f ... 0x1127f: case 0x11242 ... 0x1127f:
return -4; return -4;
case 0x11287: case 0x11287:
return -4; return -4;
@ -2494,7 +2514,9 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x11aa3 ... 0x11aaf: case 0x11aa3 ... 0x11aaf:
return -4; return -4;
case 0x11af9 ... 0x11bff: case 0x11af9 ... 0x11aff:
return -4;
case 0x11b0a ... 0x11bff:
return -4; return -4;
case 0x11c09: case 0x11c09:
return -4; return -4;
@ -2536,7 +2558,13 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x11daa ... 0x11edf: case 0x11daa ... 0x11edf:
return -4; return -4;
case 0x11ef9 ... 0x11faf: case 0x11ef9 ... 0x11eff:
return -4;
case 0x11f11:
return -4;
case 0x11f3b ... 0x11f3d:
return -4;
case 0x11f5a ... 0x11faf:
return -4; return -4;
case 0x11fb1 ... 0x11fbf: case 0x11fb1 ... 0x11fbf:
return -4; return -4;
@ -2552,9 +2580,7 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x12ff3 ... 0x12fff: case 0x12ff3 ... 0x12fff:
return -4; return -4;
case 0x1342f: case 0x13456 ... 0x143ff:
return -4;
case 0x13439 ... 0x143ff:
return -4; return -4;
case 0x14647 ... 0x167ff: case 0x14647 ... 0x167ff:
return -4; return -4;
@ -2606,9 +2632,13 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1afff: case 0x1afff:
return -4; return -4;
case 0x1b123 ... 0x1b14f: case 0x1b123 ... 0x1b131:
return -4; return -4;
case 0x1b153 ... 0x1b163: case 0x1b133 ... 0x1b14f:
return -4;
case 0x1b153 ... 0x1b154:
return -4;
case 0x1b156 ... 0x1b163:
return -4; return -4;
case 0x1b168 ... 0x1b16f: case 0x1b168 ... 0x1b16f:
return -4; return -4;
@ -2636,7 +2666,9 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1d1eb ... 0x1d1ff: case 0x1d1eb ... 0x1d1ff:
return -4; return -4;
case 0x1d246 ... 0x1d2df: case 0x1d246 ... 0x1d2bf:
return -4;
case 0x1d2d4 ... 0x1d2df:
return -4; return -4;
case 0x1d2f4 ... 0x1d2ff: case 0x1d2f4 ... 0x1d2ff:
return -4; return -4;
@ -2690,7 +2722,9 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1dab0 ... 0x1deff: case 0x1dab0 ... 0x1deff:
return -4; return -4;
case 0x1df1f ... 0x1dfff: case 0x1df1f ... 0x1df24:
return -4;
case 0x1df2b ... 0x1dfff:
return -4; return -4;
case 0x1e007: case 0x1e007:
return -4; return -4;
@ -2700,7 +2734,11 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1e025: case 0x1e025:
return -4; return -4;
case 0x1e02b ... 0x1e0ff: case 0x1e02b ... 0x1e02f:
return -4;
case 0x1e06e ... 0x1e08e:
return -4;
case 0x1e090 ... 0x1e0ff:
return -4; return -4;
case 0x1e12d ... 0x1e12f: case 0x1e12d ... 0x1e12f:
return -4; return -4;
@ -2714,7 +2752,9 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1e2fa ... 0x1e2fe: case 0x1e2fa ... 0x1e2fe:
return -4; return -4;
case 0x1e300 ... 0x1e7df: case 0x1e300 ... 0x1e4cf:
return -4;
case 0x1e4fa ... 0x1e7df:
return -4; return -4;
case 0x1e7e7: case 0x1e7e7:
return -4; return -4;
@ -2830,15 +2870,15 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1f266 ... 0x1f2ff: case 0x1f266 ... 0x1f2ff:
return -4; return -4;
case 0x1f6d8 ... 0x1f6dc: case 0x1f6d8 ... 0x1f6db:
return -4; return -4;
case 0x1f6ed ... 0x1f6ef: case 0x1f6ed ... 0x1f6ef:
return -4; return -4;
case 0x1f6fd ... 0x1f6ff: case 0x1f6fd ... 0x1f6ff:
return -4; return -4;
case 0x1f774 ... 0x1f77f: case 0x1f777 ... 0x1f77a:
return -4; return -4;
case 0x1f7d9 ... 0x1f7df: case 0x1f7da ... 0x1f7df:
return -4; return -4;
case 0x1f7ec ... 0x1f7ef: case 0x1f7ec ... 0x1f7ef:
return -4; return -4;
@ -2860,23 +2900,19 @@ wcwidth_std(int32_t code) {
return -4; return -4;
case 0x1fa6e ... 0x1fa6f: case 0x1fa6e ... 0x1fa6f:
return -4; return -4;
case 0x1fa75 ... 0x1fa77:
return -4;
case 0x1fa7d ... 0x1fa7f: case 0x1fa7d ... 0x1fa7f:
return -4; return -4;
case 0x1fa87 ... 0x1fa8f: case 0x1fa89 ... 0x1fa8f:
return -4; return -4;
case 0x1faad ... 0x1faaf: case 0x1fabe:
return -4; return -4;
case 0x1fabb ... 0x1fabf: case 0x1fac6 ... 0x1facd:
return -4; return -4;
case 0x1fac6 ... 0x1facf: case 0x1fadc ... 0x1fadf:
return -4; return -4;
case 0x1fada ... 0x1fadf: case 0x1fae9 ... 0x1faef:
return -4; return -4;
case 0x1fae8 ... 0x1faef: case 0x1faf9 ... 0x1faff:
return -4;
case 0x1faf7 ... 0x1faff:
return -4; return -4;
case 0x1fb93: case 0x1fb93:
return -4; return -4;

File diff suppressed because it is too large Load Diff