Debian Emacs Devel Commit: r92 - in emacs21/pkg/trunk/debian: . patches

Jerome Marant jerome@haydn.debian.org
Fri, 08 Oct 2004 15:00:13 -0600


Author: jerome
Date: 2004-10-08 15:00:08 -0600 (Fri, 08 Oct 2004)
New Revision: 92

Added:
   emacs21/pkg/trunk/debian/patches/xfree86-4.3-modifiers.dpatch
Modified:
   emacs21/pkg/trunk/debian/changelog
   emacs21/pkg/trunk/debian/patches/00list
Log:
Fix handling of logo keys seen as Meta (#255286)

Modified: emacs21/pkg/trunk/debian/changelog
===================================================================
--- emacs21/pkg/trunk/debian/changelog	2004-08-03 16:54:50 UTC (rev 91)
+++ emacs21/pkg/trunk/debian/changelog	2004-10-08 21:00:08 UTC (rev 92)
@@ -1,3 +1,15 @@
+emacs21 (21.3+1-8) unstable; urgency=low
+
+  * Apply patch from Denis Barbier <barbier@linufr.org> allowing
+    Emacs to properly interpret logo keys as Meta rather than
+    Meta+Super+Hyper. This problem has been showing up since latest
+    XFree86 and Xorg introducted `fake keys'.
+    (closes: #255286, #274103) [Jérôme Marant]
+    - debian/patches/xfree86-4.3-modifiers.dpatch: new file
+    - debian/patches/00list: updated
+
+ --
+
 emacs21 (21.3+1-7) unstable; urgency=medium
 
   * set recompile against libtiff4-dev and upload with

Modified: emacs21/pkg/trunk/debian/patches/00list
===================================================================
--- emacs21/pkg/trunk/debian/patches/00list	2004-08-03 16:54:50 UTC (rev 91)
+++ emacs21/pkg/trunk/debian/patches/00list	2004-10-08 21:00:08 UTC (rev 92)
@@ -16,4 +16,5 @@
 emacsclient-alternate-editor
 startup-auto-save-file-name-transforms
 python-completion-ignored-extensions
+xfree86-4.3-modifiers
 fix-x-vs-no-x-diffs

Added: emacs21/pkg/trunk/debian/patches/xfree86-4.3-modifiers.dpatch
===================================================================
--- emacs21/pkg/trunk/debian/patches/xfree86-4.3-modifiers.dpatch	2004-08-03 16:54:50 UTC (rev 91)
+++ emacs21/pkg/trunk/debian/patches/xfree86-4.3-modifiers.dpatch	2004-10-08 21:00:08 UTC (rev 92)
@@ -0,0 +1,92 @@
+#!/bin/sh -e
+## xfree86-4.3-modifers.dpatch by Denis Barbier <barbier@linuxfr.org>
+##
+## DP: ** This patch allows Emacs to properly interpret logo keys
+## DP: as Meta rather than Meta+Super+Hyper. This problem has been
+## DP: showing up since latest XFree86 and Xorg introducted
+## DP: `fake keys'.
+## DP: Author: Denis Barbier <barbier@linuxfr.org>
+## DP: Status: has been applied upstream
+## DP: Date: Fri,  8 Oct 2004 22:37:15 +0200 
+
+if [ $# -ne 1 ]; then
+    echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch}"
+
+case "$1" in
+       -patch) patch $patch_opts -p1 < $0;;
+       -unpatch) patch $patch_opts -p1 -R < $0;;
+        *)
+                echo >&2 "`basename $0`: script expects -patch|-unpatch as argument"
+                exit 1;;
+esac
+
+exit 0
+
+@DPATCH@
+--- emacs-21.3+1.orig/src/xterm	2004-09-14 19:06:11.000000000 +0200
++++ emacs-21.3+1/src/xterm.c	2004-09-16 22:23:24.000000000 +0200
+@@ -6380,8 +6380,11 @@
+      Alt keysyms are on.  */
+   {
+     int row, col;	/* The row and column in the modifier table.  */
++    int found_alt_or_meta;
+ 
+     for (row = 3; row < 8; row++)
++    {
++      found_alt_or_meta = 0;
+       for (col = 0; col < mods->max_keypermod; col++)
+ 	{
+ 	  KeyCode code
+@@ -6403,33 +6406,44 @@
+ 		  {
+ 		  case XK_Meta_L:
+ 		  case XK_Meta_R:
++		    found_alt_or_meta = 1;
+ 		    dpyinfo->meta_mod_mask |= (1 << row);
+ 		    break;
+ 
+ 		  case XK_Alt_L:
+ 		  case XK_Alt_R:
++		    found_alt_or_meta = 1;
+ 		    dpyinfo->alt_mod_mask |= (1 << row);
+ 		    break;
+ 
+ 		  case XK_Hyper_L:
+ 		  case XK_Hyper_R:
+-		    dpyinfo->hyper_mod_mask |= (1 << row);
++		    if (!found_alt_or_meta)
++		      dpyinfo->hyper_mod_mask |= (1 << row);
++		    code_col = syms_per_code;
++		    col = mods->max_keypermod;
+ 		    break;
+ 
+ 		  case XK_Super_L:
+ 		  case XK_Super_R:
+-		    dpyinfo->super_mod_mask |= (1 << row);
++		    if (!found_alt_or_meta)
++		      dpyinfo->super_mod_mask |= (1 << row);
++		    code_col = syms_per_code;
++		    col = mods->max_keypermod;
+ 		    break;
+ 
+ 		  case XK_Shift_Lock:
+ 		    /* Ignore this if it's not on the lock modifier.  */
+-		    if ((1 << row) == LockMask)
++		    if (!found_alt_or_meta && ((1 << row) == LockMask))
+ 		      dpyinfo->shift_lock_mask = LockMask;
++		    code_col = syms_per_code;
++		    col = mods->max_keypermod;
+ 		    break;
+ 		  }
+ 	      }
+ 	  }
+ 	}
++    }
+   }
+ 
+   /* If we couldn't find any meta keys, accept any alt keys as meta keys.  */


Property changes on: emacs21/pkg/trunk/debian/patches/xfree86-4.3-modifiers.dpatch
___________________________________________________________________
Name: svn:executable
   + *