(menubar_selection_callback, dialog_selection_callback)
authorRichard M. Stallman <rms@gnu.org>
Fri, 7 Apr 1995 19:02:49 +0000 (19:02 +0000)
committerRichard M. Stallman <rms@gnu.org>
Fri, 7 Apr 1995 19:02:49 +0000 (19:02 +0000)
(single_submenu): Cast pointer to int by way of EMACS_INT.

src/xmenu.c

index f6e5930..fd7c9a3 100644 (file)
@@ -1136,7 +1136,9 @@ menubar_selection_callback (widget, id, client_data)
       else
        {
          entry = XVECTOR (vector)->contents[i + MENU_ITEMS_ITEM_VALUE];
-         if ((int) client_data == i)
+         /* The EMACS_INT cast avoids a warning.  There's no problem
+            as long as pointers have enough bits to hold small integers.  */
+         if ((int) (EMACS_INT) client_data == i)
            {
              int j;
              struct input_event buf;
@@ -1342,7 +1344,9 @@ single_submenu (item_key, item_name, maps)
          if (!NILP (descrip))
            wv->key = (char *) XSTRING (descrip)->data;
          wv->value = 0;
-         wv->call_data = (!NILP (def) ? (void *) i : 0);
+         /* The EMACS_INT cast avoids a warning.  There's no problem
+            as long as pointers have enough bits to hold small integers.  */
+         wv->call_data = (!NILP (def) ? (void *) (EMACS_INT) i : 0);
          wv->enabled = !NILP (enable);
          prev_wv = wv;
 
@@ -1864,7 +1868,9 @@ dialog_selection_callback (widget, id, client_data)
      LWLIB_ID id;
      XtPointer client_data;
 {
-  if ((int)client_data != -1)
+  /* The EMACS_INT cast avoids a warning.  There's no problem
+     as long as pointers have enough bits to hold small integers.  */
+  if ((int) (EMACS_INT) client_data != -1)
     menu_item_selection = (Lisp_Object *) client_data;
   BLOCK_INPUT;
   lw_destroy_all_widgets (id);