emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/src/keymap.c,v


From: Chong Yidong
Subject: [Emacs-diffs] Changes to emacs/src/keymap.c,v
Date: Mon, 11 Sep 2006 02:34:06 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Chong Yidong <cyd>      06/09/11 02:34:05

Index: keymap.c
===================================================================
RCS file: /sources/emacs/emacs/src/keymap.c,v
retrieving revision 1.330
retrieving revision 1.331
diff -u -b -r1.330 -r1.331
--- keymap.c    22 Jul 2006 21:22:52 -0000      1.330
+++ keymap.c    11 Sep 2006 02:34:05 -0000      1.331
@@ -1576,6 +1576,33 @@
 
   GCPRO1 (key);
 
+#ifdef HAVE_MOUSE
+  if (VECTORP (key)
+      && ASIZE (key) > 0
+      && CONSP (AREF (key, 0))
+      && SYMBOLP (XCAR (AREF (key, 0)))
+      && CONSP (XCDR (AREF (key, 0))))
+    {
+      Lisp_Object map, obj, pos = XCAR (XCDR (AREF (key, 0)));
+
+      if (XINT (Flength (pos)) == 10 && INTEGERP (XCAR (XCDR (pos))))
+       {
+         obj = Fnth (make_number(4), pos);
+         map = Fget_char_property (XCAR (XCDR (pos)),
+                                   Qkeymap,
+                                   NILP (obj) ?
+                                   Fwindow_buffer (XCAR (pos))
+                                   : XCAR (obj));
+         if (!NILP (Fkeymapp (map)))
+           {
+             value = Flookup_key (map, key, accept_default);
+             if (! NILP (value) && !INTEGERP (value))
+               goto done;
+           }
+       }
+    }
+#endif /* HAVE_MOUSE  */
+
   if (!NILP (current_kboard->Voverriding_terminal_local_map))
     {
       value = Flookup_key (current_kboard->Voverriding_terminal_local_map,




reply via email to

[Prev in Thread] Current Thread [Next in Thread]