Commit Diff


commit - 38b62735e4e151b626c46dd284d19fb6b0b3f59b
commit + 50281180685522b19f39ed6b36a4983f81c5e300
blob - 572f01d393ebdeeafa5584f2f191d0ee6f00d9ff
blob + f6066b1d2548457453e8b516a10c83603a676866
--- src/cmd/devdraw/x11-keysym2ucs.c
+++ src/cmd/devdraw/x11-keysym2ucs.c
@@ -830,6 +830,23 @@ long _p9keysym2ucs(KeySym keysym)
     int max = sizeof(keysymtab) / sizeof(struct codepair) - 1;
     int mid;
 
+    switch(keysym){
+    case 0xfe53: /*dead tilde*/
+        keysym = 0x007e; /*asciitilde*/
+        break;
+    case 0xfe52: /*dead_circumflex*/
+        keysym = 0x005e; /*asciicircum*/
+        break;
+    case 0xfe51: /*dead_acute*/
+        keysym = 0x0027; /*apostrophe*/
+        break;
+    case 0xfe50: /*dead_grave*/
+        keysym = 0x0060; /*grave*/
+        break;
+    default:
+        break;
+    }
+
     /* first check for Latin-1 characters (1:1 mapping) */
     if ((keysym >= 0x0020 && keysym <= 0x007e) ||
         (keysym >= 0x00a0 && keysym <= 0x00ff))