From xemacs-m  Thu Aug  7 07:26:50 1997
Received: from frege.math.ethz.ch (root@frege-d-math-north-g-west.math.ethz.ch [129.132.145.3])
	by xemacs.org (8.8.5/8.8.5) with SMTP id HAA29327
	for <xemacs-beta@xemacs.org>; Thu, 7 Aug 1997 07:26:48 -0500 (CDT)
Received: from fresnel (vroonhof@fresnel [129.132.145.6]) by frege.math.ethz.ch (8.6.12/Main-STAT-mailer) with ESMTP id OAA10218 for <xemacs-beta@xemacs.org>; Thu, 7 Aug 1997 14:26:38 +0200
Received: (vroonhof@localhost) by fresnel (SMI-8.6/D-MATH-client) id OAA01954; Thu, 7 Aug 1997 14:25:29 +0200
To: xemacs-beta@xemacs.org
Subject: Re: For people using x-compose.el OR XFree and German keywords
References: <byvi1iw5n0.fsf@fresnel.math.ethz.ch>
Mime-Version: 1.0 (generated by tm-edit 7.106)
Content-Type: multipart/mixed;
 boundary="Multipart_Thu_Aug__7_14:25:28_1997-1"
Content-Transfer-Encoding: 7bit
From: Jan Vroonhof <vroonhof@math.ethz.ch>
Date: 07 Aug 1997 14:25:29 +0200
In-Reply-To: Jan Vroonhof's message of 07 Aug 1997 14:15:47 +0200
Message-ID: <byafiuw56u.fsf@fresnel.math.ethz.ch>
Lines: 310
X-Mailer: Gnus v5.4.55/XEmacs 19.15

--Multipart_Thu_Aug__7_14:25:28_1997-1
Content-Type: text/plain; charset=US-ASCII

Jan Vroonhof <vroonhof@math.ethz.ch> writes:

> (The patch below wasn't in Stockholm. I am not sure whether Steve has

It wasn't in the message either :-(

Here it is


--Multipart_Thu_Aug__7_14:25:28_1997-1
Content-Type: application/octet-stream; type=patch
Content-Disposition: attachment; filename="x-compose.new.patch"
Content-Transfer-Encoding: 7bit

--- binkit/lib/xemacs-19.15/lisp/x11/x-compose.el	Tue Jul  1 10:26:53 1997
+++ x-compose.el	Thu Aug  7 13:48:46 1997
@@ -1,5 +1,5 @@
 ;; Compose-key processing in emacs.
-;; Copyright (C) 1992, 1993 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1997 Free Software Foundation, Inc.
 
 ;; This file is part of XEmacs.
 
@@ -19,6 +19,10 @@
 
 ;;; created by jwz, 14-jun-92.
 ;;; changed by Heiko Muenkel, 11-jun-97: Fixed the degree bug.
+;;; changed by Jan Vroonhof, July 1997: Use function-key-map instead
+;;;                                     of global map.
+;;;                                     Preliminary support for
+;;;                                     XFree86 deadkeys
 
 ;;; This file implements DEC-, OpenWindows-, and HP-compatible "Compose"
 ;;; processing for XEmacs.  
@@ -95,13 +99,14 @@
 
 ;;; The command `compose-key' exists so that this file may be autoloaded.
 ;;;this doesn't work yet###autoload
-(define-function 'compose-key compose-map)
+;; (define-function 'compose-key compose-map)
 
 ;; The "Compose" key:
 ;; (keysym is lower case because we downcase everything in the Symbol font...)
 ;;
 ;;;this doesn't work yet###autoload
-(define-key global-map [multi-key]	'compose-key)
+;; Ditched JV, (define-key function-key-map [multi-key]	'compose-key)
+(define-key function-key-map [multi-key]	compose-map)
 
 ;; The following is necessary, because one can't rebind [degree]
 ;; and use it to insert the degree sign!
@@ -112,10 +117,10 @@
 
 ;; The "Dead" keys:
 ;;
-(define-key global-map [acute]		compose-acute-map)
-(define-key global-map [cedilla]	compose-cedilla-map)
-(define-key global-map [diaeresis]	compose-diaeresis-map)
-(define-key global-map [degree]		compose-ring-map)
+(define-key function-key-map [acute]		compose-acute-map)
+(define-key function-key-map [cedilla]		compose-cedilla-map)
+(define-key function-key-map [diaeresis]	compose-diaeresis-map)
+(define-key function-key-map [degree]		compose-ring-map)
 
 ;; The dead keys as seen by the "Compose" map:
 ;;
@@ -151,126 +156,178 @@
 ;; Sun according to MIT:
 ;;
 (cond ((x-valid-keysym-name-p "SunFA_Acute")
-       (define-key global-map  [SunFA_Acute]		compose-acute-map)
+       (define-key function-key-map  [SunFA_Acute]
+	 compose-acute-map) 
        (define-key compose-map [SunFA_Acute]		compose-acute-map)
-       (define-key global-map  [SunFA_Grave]		compose-grave-map)
+       (define-key function-key-map  [SunFA_Grave]
+	 compose-grave-map) 
        (define-key compose-map [SunFA_Grave]		compose-grave-map)
-       (define-key global-map  [SunFA_Cedilla]		compose-cedilla-map)
+       (define-key function-key-map  [SunFA_Cedilla]
+	 compose-cedilla-map) 
        (define-key compose-map [SunFA_Cedilla]		compose-cedilla-map)
-       (define-key global-map  [SunFA_Diaeresis]	compose-diaeresis-map)
+       (define-key function-key-map  [SunFA_Diaeresis]	compose-diaeresis-map)
        (define-key compose-map [SunFA_Diaeresis]	compose-diaeresis-map)
-       (define-key global-map  [SunFA_Circum]		compose-circumflex-map)
+       (define-key function-key-map  [SunFA_Circum]
+	 compose-circumflex-map) 
        (define-key compose-map [SunFA_Circum]		compose-circumflex-map)
-       (define-key global-map  [SunFA_Tilde]		compose-tilde-map)
+       (define-key function-key-map  [SunFA_Tilde]
+	 compose-tilde-map) 
        (define-key compose-map [SunFA_Tilde]		compose-tilde-map)
        ))
 
 ;; Sun according to OpenWindows 2:
 ;;
 (cond ((x-valid-keysym-name-p "Dead_Grave")
-       (define-key global-map  [Dead_Grave]		compose-grave-map)
+       (define-key function-key-map  [Dead_Grave]
+	 compose-grave-map) 
        (define-key compose-map [Dead_Grave]		compose-grave-map)
-       (define-key global-map  [Dead_Circum]		compose-circumflex-map)
+       (define-key function-key-map  [Dead_Circum]
+	 compose-circumflex-map) 
        (define-key compose-map [Dead_Circum]		compose-circumflex-map)
-       (define-key global-map  [Dead_Tilde]		compose-tilde-map)
+       (define-key function-key-map  [Dead_Tilde]
+	 compose-tilde-map) 
        (define-key compose-map [Dead_Tilde]		compose-tilde-map)
        ))
 
 ;; Sun according to OpenWindows 3:
 ;;
 (cond ((x-valid-keysym-name-p "SunXK_FA_Acute")
-       (define-key global-map  [SunXK_FA_Acute]		compose-acute-map)
+       (define-key function-key-map  [SunXK_FA_Acute]
+	 compose-acute-map) 
        (define-key compose-map [SunXK_FA_Acute]		compose-acute-map)
-       (define-key global-map  [SunXK_FA_Grave]		compose-grave-map)
+       (define-key function-key-map  [SunXK_FA_Grave]
+	 compose-grave-map) 
        (define-key compose-map [SunXK_FA_Grave]		compose-grave-map)
-       (define-key global-map  [SunXK_FA_Cedilla]	compose-cedilla-map)
+       (define-key function-key-map  [SunXK_FA_Cedilla]	compose-cedilla-map)
        (define-key compose-map [SunXK_FA_Cedilla]	compose-cedilla-map)
-       (define-key global-map  [SunXK_FA_Diaeresis]	compose-diaeresis-map)
+       (define-key function-key-map  [SunXK_FA_Diaeresis]
+	 compose-diaeresis-map) 
        (define-key compose-map [SunXK_FA_Diaeresis]	compose-diaeresis-map)
-       (define-key global-map  [SunXK_FA_Circum]	compose-circumflex-map)
+       (define-key function-key-map  [SunXK_FA_Circum]	compose-circumflex-map)
        (define-key compose-map [SunXK_FA_Circum]	compose-circumflex-map)
-       (define-key global-map  [SunXK_FA_Tilde]		compose-tilde-map)
+       (define-key function-key-map  [SunXK_FA_Tilde]
+	 compose-tilde-map) 
        (define-key compose-map [SunXK_FA_Tilde]		compose-tilde-map)
        ))
 
 ;; DEC according to MIT:
 ;;
 (cond ((x-valid-keysym-name-p "Dacute_accent")
-       (define-key global-map  [Dacute_accent]		compose-acute-map)
+       (define-key function-key-map  [Dacute_accent]
+	 compose-acute-map) 
        (define-key compose-map [Dacute_accent]		compose-acute-map)
-       (define-key global-map  [Dgrave_accent]		compose-grave-map)
+       (define-key function-key-map  [Dgrave_accent]
+	 compose-grave-map) 
        (define-key compose-map [Dgrave_accent]		compose-grave-map)
-       (define-key global-map  [Dcedilla_accent]	compose-cedilla-map)
+       (define-key function-key-map  [Dcedilla_accent]	compose-cedilla-map)
        (define-key compose-map [Dcedilla_accent]	compose-cedilla-map)
-       (define-key global-map  [Dcircumflex_accent]	compose-circumflex-map)
+       (define-key function-key-map  [Dcircumflex_accent]
+	 compose-circumflex-map) 
        (define-key compose-map [Dcircumflex_accent]	compose-circumflex-map)
-       (define-key global-map  [Dtilde]			compose-tilde-map)
+       (define-key function-key-map  [Dtilde]
+	 compose-tilde-map) 
        (define-key compose-map [Dtilde]			compose-tilde-map)
-       (define-key global-map  [Dring_accent]		compose-ring-map)
+       (define-key function-key-map  [Dring_accent]
+	 compose-ring-map) 
        (define-key compose-map [Dring_accent]		compose-ring-map)
        ))
 
 ;; DEC according to OpenWindows 3:
 ;;
 (cond ((x-valid-keysym-name-p "DXK_acute_accent")
-       (define-key global-map  [DXK_acute_accent]	compose-acute-map)
+       (define-key function-key-map  [DXK_acute_accent]	compose-acute-map)
        (define-key compose-map [DXK_acute_accent]	compose-acute-map)
-       (define-key global-map  [DXK_grave_accent]	compose-grave-map)
+       (define-key function-key-map  [DXK_grave_accent]	compose-grave-map)
        (define-key compose-map [DXK_grave_accent]	compose-grave-map)
-       (define-key global-map  [DXK_cedilla_accent]	compose-cedilla-map)
+       (define-key function-key-map  [DXK_cedilla_accent]
+	 compose-cedilla-map) 
        (define-key compose-map [DXK_cedilla_accent]	compose-cedilla-map)
-       (define-key global-map  [DXK_circumflex_accent]	compose-circumflex-map)
+       (define-key function-key-map  [DXK_circumflex_accent]
+	 compose-circumflex-map) 
        (define-key compose-map [DXK_circumflex_accent]	compose-circumflex-map)
-       (define-key global-map  [DXK_tilde]		compose-tilde-map)
+       (define-key function-key-map  [DXK_tilde]
+	 compose-tilde-map) 
        (define-key compose-map [DXK_tilde]		compose-tilde-map)
-       (define-key global-map  [DXK_ring_accent]	compose-ring-map)
+       (define-key function-key-map  [DXK_ring_accent]	compose-ring-map)
        (define-key compose-map [DXK_ring_accent]	compose-ring-map)
        ))
 
 ;; HP according to MIT:
 ;;
 (cond ((x-valid-keysym-name-p "hpmute_acute")
-       (define-key global-map  [hpmute_acute]		compose-acute-map)
+       (define-key function-key-map  [hpmute_acute]
+	 compose-acute-map) 
        (define-key compose-map [hpmute_acute]		compose-acute-map)
-       (define-key global-map  [hpmute_grave]		compose-grave-map)
+       (define-key function-key-map  [hpmute_grave]
+	 compose-grave-map) 
        (define-key compose-map [hpmute_grave]		compose-grave-map)
-       (define-key global-map  [hpmute_diaeresis]	compose-diaeresis-map)
+       (define-key function-key-map  [hpmute_diaeresis]	compose-diaeresis-map)
        (define-key compose-map [hpmute_diaeresis]	compose-diaeresis-map)
-       (define-key global-map  [hpmute_asciicircum]	compose-circumflex-map)
+       (define-key function-key-map  [hpmute_asciicircum]
+	 compose-circumflex-map) 
        (define-key compose-map [hpmute_asciicircum]	compose-circumflex-map)
-       (define-key global-map  [hpmute_asciitilde]	compose-tilde-map)
+       (define-key function-key-map  [hpmute_asciitilde]
+	 compose-tilde-map) 
        (define-key compose-map [hpmute_asciitilde]	compose-tilde-map)
        ))
 
 ;; HP according to OpenWindows 3:
 ;;
 (cond ((x-valid-keysym-name-p "hpXK_mute_acute")
-       (define-key global-map  [hpXK_mute_acute]	compose-acute-map)
+       (define-key function-key-map  [hpXK_mute_acute]	compose-acute-map)
        (define-key compose-map [hpXK_mute_acute]	compose-acute-map)
-       (define-key global-map  [hpXK_mute_grave]	compose-grave-map)
+       (define-key function-key-map  [hpXK_mute_grave]	compose-grave-map)
        (define-key compose-map [hpXK_mute_grave]	compose-grave-map)
-       (define-key global-map  [hpXK_mute_diaeresis]	compose-diaeresis-map)
+       (define-key function-key-map  [hpXK_mute_diaeresis]
+	 compose-diaeresis-map)
        (define-key compose-map [hpXK_mute_diaeresis]	compose-diaeresis-map)
-       (define-key global-map  [hpXK_mute_asciicircum]	compose-circumflex-map)
+       (define-key function-key-map  [hpXK_mute_asciicircum]
+	 compose-circumflex-map)
        (define-key compose-map [hpXK_mute_asciicircum]	compose-circumflex-map)
-       (define-key global-map  [hpXK_mute_asciitilde]	compose-tilde-map)
+       (define-key function-key-map  [hpXK_mute_asciitilde]
+	 compose-tilde-map)
        (define-key compose-map [hpXK_mute_asciitilde]	compose-tilde-map)
        ))
 
 ;; HP according to HP-UX 8.0:
 ;;
 (cond ((x-valid-keysym-name-p "XK_mute_acute")
-       (define-key global-map  [XK_mute_acute]		compose-acute-map)
+       (define-key function-key-map  [XK_mute_acute]
+	 compose-acute-map)    
        (define-key compose-map [XK_mute_acute]		compose-acute-map)
-       (define-key global-map  [XK_mute_grave]		compose-grave-map)
+       (define-key function-key-map  [XK_mute_grave]
+	 compose-grave-map) 
        (define-key compose-map [XK_mute_grave]		compose-grave-map)
-       (define-key global-map  [XK_mute_diaeresis]	compose-diaeresis-map)
+       (define-key function-key-map  [XK_mute_diaeresis]
+	 compose-diaeresis-map) 
        (define-key compose-map [XK_mute_diaeresis]	compose-diaeresis-map)
-       (define-key global-map  [XK_mute_asciicircum]	compose-circumflex-map)
+       (define-key function-key-map  [XK_mute_asciicircum]
+	 compose-circumflex-map) 
        (define-key compose-map [XK_mute_asciicircum]	compose-circumflex-map)
-       (define-key global-map  [XK_mute_asciitilde]	compose-tilde-map)
+       (define-key function-key-map
+	   [XK_mute_asciitilde]	compose-tilde-map)
        (define-key compose-map [XK_mute_asciitilde]	compose-tilde-map)
        ))
+;; Xfree seems to use lower case and a hyphen
+(cond ((x-valid-keysym-name-p "dead-tilde")
+       (define-key function-key-map  [dead-acute]
+	 compose-acute-map) 
+       (define-key compose-map [dead-acute]		compose-acute-map)
+       (define-key function-key-map  [dead-grave]
+	 compose-grave-map) 
+       (define-key compose-map [dead-grave]		compose-grave-map)
+       (define-key function-key-map  [dead-cedilla]	compose-cedilla-map)
+       (define-key compose-map [dead-cedilla]	compose-cedilla-map)
+       (define-key function-key-map  [dead_diaeresis]	compose-diaeresis-map)
+       (define-key compose-map [dead-diaeresis]	compose-diaeresis-map)
+       (define-key function-key-map  [dead-circum]	compose-circumflex-map)
+       (define-key compose-map [dead-circum]	compose-circumflex-map)
+       (define-key function-key-map  [dead-tilde]
+	 compose-tilde-map)  
+       (define-key compose-map [dead-tilde]		compose-tilde-map)
+       ))
+
+
 
 ;;; The contents of the "dead key" maps.  These are shared by the
 ;;; compose-map.
@@ -292,7 +349,8 @@
 (define-key compose-acute-map "y"	[yacute])
 
 (set-keymap-name compose-grave-map 'compose-grave-map)
-(define-key compose-grave-map " "	[grave])
+(define-key compose-grave-map " "	"`")
+(define-key compose-grave-map "`"	[grave])
 (define-key compose-grave-map "A"	[Agrave])
 (define-key compose-grave-map "E"	[Egrave])
 (define-key compose-grave-map "I"	[Igrave])
@@ -305,6 +363,7 @@
 (define-key compose-grave-map "u"	[ugrave])
 
 (set-keymap-name compose-cedilla-map 'compose-cedilla-map)
+(define-key compose-cedilla-map " "     ",")
 (define-key compose-cedilla-map ","	[cedilla])
 (define-key compose-cedilla-map "C"	[Ccedilla])
 (define-key compose-cedilla-map "c"	[ccedilla])

--Multipart_Thu_Aug__7_14:25:28_1997-1--

