changeset 72989:f9742f561ed9

Include alloca.h if available. (Fkey_binding): Only use AREF after checking it's a vector. Remove unused var `window'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 19 Sep 2006 10:19:34 +0000
parents a5c3bc60c798
children 2d3156eeb678
files src/ChangeLog src/keymap.c
diffstat 2 files changed, 15 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Tue Sep 19 08:01:33 2006 +0000
+++ b/src/ChangeLog	Tue Sep 19 10:19:34 2006 +0000
@@ -1,3 +1,9 @@
+2006-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* keymap.c: Include alloca.h if available.
+	(Fkey_binding): Only use AREF after checking it's a vector.
+	Remove unused var `window'.
+
 2006-09-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* emacs.c (shut_down_emacs) [!subprocesses]: Don't set
--- a/src/keymap.c	Tue Sep 19 08:01:33 2006 +0000
+++ b/src/keymap.c	Tue Sep 19 10:19:34 2006 +0000
@@ -23,6 +23,9 @@
 
 #include <config.h>
 #include <stdio.h>
+#if HAVE_ALLOCA_H
+# include <alloca.h>
+#endif
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
@@ -1595,15 +1598,12 @@
 
   GCPRO2 (key, position);
 
-  if (NILP (position))
+  if (NILP (position) && VECTORP (key))
     {
-      Lisp_Object event;
-      /* mouse events may have a symbolic prefix indicating the
-	 scrollbar or mode line */
-      if (SYMBOLP (AREF (key, 0)) && ASIZE (key) > 1)
-	event = AREF (key, 1);
-      else
-	event = AREF (key, 0);
+      Lisp_Object event
+	/* mouse events may have a symbolic prefix indicating the
+	   scrollbar or mode line */
+	= AREF (key, SYMBOLP (AREF (key, 0)) && ASIZE (key) > 1 ? 1 : 0);
 
       /* We are not interested in locations without event data */
 
@@ -1672,9 +1672,7 @@
 
       if (CONSP (position))
 	{
-	  Lisp_Object string, window;
-
-	  window = POSN_WINDOW (position);
+	  Lisp_Object string;
 
 	  /* For a mouse click, get the local text-property keymap
 	     of the place clicked on, rather than point.  */