* keymap.c: conform to C89 pointer rules
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 6 Feb 2011 19:56:30 +0000 (11:56 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 6 Feb 2011 19:56:30 +0000 (11:56 -0800)
src/ChangeLog
src/keymap.c

index 3588322..5e2831e 100644 (file)
@@ -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>
 
index 1e6b76a..8ee4f41 100644 (file)
@@ -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");
 }
-