summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Kuhn <Markus.Kuhn@cl.cam.ac.uk>2005-01-28 18:31:31 +0000
committerMarkus Kuhn <Markus.Kuhn@cl.cam.ac.uk>2005-01-28 18:31:31 +0000
commit483d3973f56dda51f9251d3ea808aaf7f3b48c10 (patch)
treeab3b9fcd43496ed43f81ed68a75350b193fd36ae
parentf234188a4c1e6b655aef0e3957ccad20d4c5847f (diff)
downloadxorg-lib-libX11-483d3973f56dda51f9251d3ea808aaf7f3b48c10.tar.gz
cleaned up boundary-case handling for Uxxxx Unicode keysym notation
-rw-r--r--src/StrKeysym.c8
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;
}