From: Paul Eggert <eggert@cs.ucla.edu>
Date: Sun, 6 Feb 2011 19:56:30 +0000 (-0800)
Subject: * keymap.c: conform to C89 pointer rules
X-Git-Tag: emacs-pretest-24.0.90~104^2~275^2~1006
X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=01c9aa3af4214b6d70b0e8d372df68ce6884a898;p=emacs.git

* keymap.c: conform to C89 pointer rules
---

diff --git a/src/ChangeLog b/src/ChangeLog
index 35883220197..5e2831ea67e 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -17,6 +17,7 @@
 	* image.c (xbm_read_bitmap_data, xbm_load_image, xbm_load): Likewise.
 	* keyboard.c (echo_char, MULTI_LETTER_MOD, tty_read_avail_input):
 	Likewise.
+	* keymap.c (Ftext_char_description): Likewise.
 	* insdel.c (insert, insert_and_inherit, insert_before_markers):
 	(insert_before_markers_and_inherit, insert_1, insert_1_both):
 	Likewise.  This changes these functions' signatures, which is
@@ -24,6 +25,9 @@
 	callers changed.
 	* editfns.c (general_insert_function): Change signature to
 	match changes to insert functions' signatures.
+	* keymap.c (map_keymap_char_table_item, map_keymap_internal): Use
+	explicit cast when converting between void * and function pointer
+	types, as C89 requires this.
 
 2011-02-05  Paul Eggert  <eggert@cs.ucla.edu>
 
diff --git a/src/keymap.c b/src/keymap.c
index 1e6b76a4642..8ee4f41bd6f 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -584,7 +584,8 @@ map_keymap_char_table_item (Lisp_Object args, Lisp_Object key, Lisp_Object val)
 {
   if (!NILP (val))
     {
-      map_keymap_function_t fun = XSAVE_VALUE (XCAR (args))->pointer;
+      map_keymap_function_t fun =
+	(map_keymap_function_t) XSAVE_VALUE (XCAR (args))->pointer;
       args = XCDR (args);
       /* If the key is a range, make a copy since map_char_table modifies
 	 it in place.  */
@@ -629,7 +630,7 @@ map_keymap_internal (Lisp_Object map,
       else if (CHAR_TABLE_P (binding))
 	{
 	  map_char_table (map_keymap_char_table_item, Qnil, binding,
-			  Fcons (make_save_value (fun, 0),
+			  Fcons (make_save_value ((void *) fun, 0),
 				 Fcons (make_save_value (data, 0),
 					args)));
 	}
@@ -2474,7 +2475,7 @@ See Info node `(elisp)Describing Characters' for examples.  */)
   (Lisp_Object character)
 {
   /* Currently MAX_MULTIBYTE_LENGTH is 4 (< 6).  */
-  unsigned char str[6];
+  char str[6];
   int c;
 
   CHECK_NUMBER (character);
@@ -2482,7 +2483,7 @@ See Info node `(elisp)Describing Characters' for examples.  */)
   c = XINT (character);
   if (!ASCII_CHAR_P (c))
     {
-      int len = CHAR_STRING (c, str);
+      int len = CHAR_STRING (c, (unsigned char *) str);
 
       return make_multibyte_string (str, 1, len);
     }
@@ -3975,4 +3976,3 @@ keys_of_keymap (void)
   initial_define_key (global_map, 033, "ESC-prefix");
   initial_define_key (global_map, Ctl ('X'), "Control-X-prefix");
 }
-