diff options
author | Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> | 2005-01-28 18:31:31 +0000 |
---|---|---|
committer | Markus Kuhn <Markus.Kuhn@cl.cam.ac.uk> | 2005-01-28 18:31:31 +0000 |
commit | 483d3973f56dda51f9251d3ea808aaf7f3b48c10 (patch) | |
tree | ab3b9fcd43496ed43f81ed68a75350b193fd36ae | |
parent | f234188a4c1e6b655aef0e3957ccad20d4c5847f (diff) | |
download | xorg-lib-libX11-483d3973f56dda51f9251d3ea808aaf7f3b48c10.tar.gz |
cleaned up boundary-case handling for Uxxxx Unicode keysym notation
-rw-r--r-- | src/StrKeysym.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/StrKeysym.c b/src/StrKeysym.c index 086516b2..8cb2cd51 100644 --- a/src/StrKeysym.c +++ b/src/StrKeysym.c @@ -138,12 +138,14 @@ XStringToKeysym(_Xconst char *s) else if ('a' <= c && c <= 'f') val = (val<<4)+c-'a'+10; else if ('A' <= c && c <= 'F') val = (val<<4)+c-'A'+10; else return NoSymbol; + if (val > 0x10ffff) + return NoSymbol; } + if (val < 0x20 || (val > 0x7e && val < 0xa0)) + return NoSymbol; if (val < 0x100) return val; - if (val > 0x10ffff || val < 0x100) - return NoSymbol; return val | 0x01000000; } - return (NoSymbol); + return NoSymbol; } |