Subject: bug#37530: 26.1; Tack characters translated incorrectly

From: Lars Ingebrigtsen <[email-masked]>
Date: Fri, 27 Sep 2019 15:32:30 +0200

The following patch updates out map with the data from the .h file:

(setq map
      (let ((map nil))
	(with-temp-buffer
	  (insert-file-contents "/usr/include/xkbcommon/xkbcommon-keysyms.h")
	  (while (re-search-forward "#define +XKB_KEY.*0x\\([a-fA-Z0-9]+\\).*U\\+\\([a-fA-Z0-9]+\\)" nil t)
	    (push (cons (string-to-number (match-string 1) 16)
			(string-to-number (match-string 2) 16))
		  map)))
	(nreverse map)))

Does this look OK to everybody?

In addition, there's a huge number of keysyms in that file that we do
not do mappings to characters for.  Hm...  but those are all over
#x1000174, so I guess they're mapped to Unicode code points directly?

	  /* Keysyms directly mapped to Unicode characters.  */
	  if (keysym >= 0x01000000 && keysym <= 0x0110FFFF)

*counts digits*

Yeah, that seems correct, I guess?

diff --git a/lisp/term/x-win.el b/lisp/term/x-win.el
index 56061371fe..119cd3d0a9 100644
--- a/lisp/term/x-win.el
+++ b/lisp/term/x-win.el
@@ -822,8 +822,8 @@ vendor-specific-keysyms
 	(#xab7 . ?⅚)
 	(#xab8 . ?℅)
 	(#xabb . ?‒)
-	(#xabc . ?〈)
-	(#xabe . ?〉)
+	(#xabc . ?⟨)
+	(#xabe . ?⟩)
 	(#xac3 . ?⅛)
 	(#xac4 . ?⅜)
 	(#xac5 . ?⅝)
@@ -883,20 +883,20 @@ vendor-specific-keysyms
 	(#xba8 . ?∨)
 	(#xba9 . ?∧)
 	(#xbc0 . ?¯)
-	(#xbc2 . ?⊥)
+	(#xbc2 . ?⊤)
 	(#xbc3 . ?∩)
 	(#xbc4 . ?⌊)
 	(#xbc6 . ?_)
 	(#xbca . ?∘)
 	(#xbcc . ?⎕)
-	(#xbce . ?⊤)
+	(#xbce . ?⊥)
 	(#xbcf . ?○)
 	(#xbd3 . ?⌈)
 	(#xbd6 . ?∪)
 	(#xbd8 . ?⊃)
 	(#xbda . ?⊂)
-	(#xbdc . ?⊢)
-	(#xbfc . ?⊣)
+	(#xbdc . ?⊣)
+	(#xbfc . ?⊢)
 	;; Hebrew
 	(#xcdf . ?‗)
 	(#xce0 . ?א)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no