From 8899ed4e1f076d6f3c400731992210513bb629d3 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Mon, 24 Sep 2012 19:44:21 -0700 Subject: [PATCH] Fix the unicode character limit (0 .. 0x10ffff) For some reason I had limited things to 0xffff, it really should be 0x10ffff. We don't actually support a full 32-bit unicode model anyway, since we use the high bits for the control/meta/^X/special bits, but there was no reason to limit things to 16 bits when we had 28 bits available. And the real limit for real Unicode characters is 0x10ffff. Add a silly example character past the 16-bit range to the UTF8 demo file: 'SMILING FACE WITH HALO' (U+1F607) from the 'emoticons' block. Signed-off-by: Linus Torvalds --- UTF-8-demo.txt | 2 ++ main.c | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/UTF-8-demo.txt b/UTF-8-demo.txt index 4363f27..61b50e0 100644 --- a/UTF-8-demo.txt +++ b/UTF-8-demo.txt @@ -210,3 +210,5 @@ Box drawing alignment tests: █ ║└─╥─┘║ │╚═╤═╝│ │╘═╪═╛│ │╙─╀─╜│ ┃└─╂─┘┃ ░░▒▒▓▓██ ┊ ┆ ╎ ╏ ┇ ┋ ▏ ╚══╩══╝ └──┴──┘ ╰──┴──╯ ╰──┴──╯ ┗━━┻━━┛ ▗▄▖▛▀▜ └╌╌┘ ╎ ┗╍╍┛ ┋ ▁▂▃▄▅▆▇█ ▝▀▘▙▄▟ + +😇 diff --git a/main.c b/main.c index 2cf7462..08f2f19 100644 --- a/main.c +++ b/main.c @@ -500,7 +500,7 @@ int execute(int c, int f, int n) || (c >= 0x80 && c <= 0xFE)) { #else #if VMS || BSD || USG /* 8BIT P.K. */ - || (c >= 0xA0 && c <= 0xFFFF)) { + || (c >= 0xA0 && c <= 0x10FFFF)) { #else ) { #endif