[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xmenu.c
From: |
Ken Raeburn |
Subject: |
[Emacs-diffs] Changes to emacs/src/xmenu.c |
Date: |
Sun, 14 Jul 2002 20:01:02 -0400 |
Index: emacs/src/xmenu.c
diff -c emacs/src/xmenu.c:1.232 emacs/src/xmenu.c:1.233
*** emacs/src/xmenu.c:1.232 Thu Jul 11 10:17:28 2002
--- emacs/src/xmenu.c Sun Jul 14 20:00:41 2002
***************
*** 505,511 ****
enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE];
item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
! if (!NILP (map) && XSTRING (item_string)->data[0] == '@')
{
if (!NILP (enabled))
/* An enabled separate pane. Remember this to handle it later. */
--- 505,511 ----
enabled = XVECTOR (item_properties)->contents[ITEM_PROPERTY_ENABLE];
item_string = XVECTOR (item_properties)->contents[ITEM_PROPERTY_NAME];
! if (!NILP (map) && SREF (item_string, 0) == '@')
{
if (!NILP (enabled))
/* An enabled separate pane. Remember this to handle it later. */
***************
*** 551,558 ****
index++; /* Skip a left, right divider. */
else
{
! if (!submenu && XSTRING (tem)->data[0] != '\0'
! && XSTRING (tem)->data[0] != '-')
XVECTOR (menu_items)->contents[index +
MENU_ITEMS_ITEM_NAME]
= concat2 (build_string (" "), tem);
index += MENU_ITEMS_ITEM_LENGTH;
--- 551,558 ----
index++; /* Skip a left, right divider. */
else
{
! if (!submenu && SREF (tem, 0) != '\0'
! && SREF (tem, 0) != '-')
XVECTOR (menu_items)->contents[index +
MENU_ITEMS_ITEM_NAME]
= concat2 (build_string (" "), tem);
index += MENU_ITEMS_ITEM_LENGTH;
***************
*** 568,575 ****
prefix = build_string (NILP (selected) ? "( ) " : "(*) ");
}
/* Not a button. If we have earlier buttons, then we need a prefix. */
! else if (!*notbuttons_ptr && XSTRING (item_string)->data[0] != '\0'
! && XSTRING (item_string)->data[0] != '-')
prefix = build_string (" ");
if (!NILP (prefix))
--- 568,575 ----
prefix = build_string (NILP (selected) ? "( ) " : "(*) ");
}
/* Not a button. If we have earlier buttons, then we need a prefix. */
! else if (!*notbuttons_ptr && SREF (item_string, 0) != '\0'
! && SREF (item_string, 0) != '-')
prefix = build_string (" ");
if (!NILP (prefix))
***************
*** 1453,1459 ****
}
#endif
pane_string = (NILP (pane_name)
! ? "" : (char *) XSTRING (pane_name)->data);
/* If there is just one top-level pane, put all its items directly
under the top-level menu. */
if (menu_items_n_panes == 1)
--- 1453,1459 ----
}
#endif
pane_string = (NILP (pane_name)
! ? "" : (char *) SDATA (pane_name));
/* If there is just one top-level pane, put all its items directly
under the top-level menu. */
if (menu_items_n_panes == 1)
***************
*** 1517,1525 ****
else
save_wv->contents = wv;
! wv->name = (char *) XSTRING (item_name)->data;
if (!NILP (descrip))
! wv->key = (char *) XSTRING (descrip)->data;
wv->value = 0;
/* The EMACS_INT cast avoids a warning. There's no problem
as long as pointers have enough bits to hold small integers. */
--- 1517,1525 ----
else
save_wv->contents = wv;
! wv->name = (char *) SDATA (item_name);
if (!NILP (descrip))
! wv->key = (char *) SDATA (descrip);
wv->value = 0;
/* The EMACS_INT cast avoids a warning. There's no problem
as long as pointers have enough bits to hold small integers. */
***************
*** 1753,1759 ****
string = XVECTOR (items)->contents[i + 1];
if (NILP (string))
break;
! wv->name = (char *) XSTRING (string)->data;
wv = wv->next;
}
--- 1753,1759 ----
string = XVECTOR (items)->contents[i + 1];
if (NILP (string))
break;
! wv->name = (char *) SDATA (string);
wv = wv->next;
}
***************
*** 1776,1782 ****
break;
wv = xmalloc_widget_value ();
! wv->name = (char *) XSTRING (string)->data;
wv->value = 0;
wv->enabled = 1;
wv->button_type = BUTTON_TYPE_NONE;
--- 1776,1782 ----
break;
wv = xmalloc_widget_value ();
! wv->name = (char *) SDATA (string);
wv->value = 0;
wv->enabled = 1;
wv->button_type = BUTTON_TYPE_NONE;
***************
*** 2051,2057 ****
}
#endif
pane_string = (NILP (pane_name)
! ? "" : (char *) XSTRING (pane_name)->data);
/* If there is just one top-level pane, put all its items directly
under the top-level menu. */
if (menu_items_n_panes == 1)
--- 2051,2057 ----
}
#endif
pane_string = (NILP (pane_name)
! ? "" : (char *) SDATA (pane_name));
/* If there is just one top-level pane, put all its items directly
under the top-level menu. */
if (menu_items_n_panes == 1)
***************
*** 2116,2124 ****
prev_wv->next = wv;
else
save_wv->contents = wv;
! wv->name = (char *) XSTRING (item_name)->data;
if (!NILP (descrip))
! wv->key = (char *) XSTRING (descrip)->data;
wv->value = 0;
/* If this item has a null value,
make the call_data null so that it won't display a box
--- 2116,2124 ----
prev_wv->next = wv;
else
save_wv->contents = wv;
! wv->name = (char *) SDATA (item_name);
if (!NILP (descrip))
! wv->key = (char *) SDATA (descrip);
wv->value = 0;
/* If this item has a null value,
make the call_data null so that it won't display a box
***************
*** 2169,2175 ****
title = ENCODE_SYSTEM (title);
#endif
! wv_title->name = (char *) XSTRING (title)->data;
wv_title->enabled = TRUE;
wv_title->button_type = BUTTON_TYPE_NONE;
wv_title->next = wv_sep1;
--- 2169,2175 ----
title = ENCODE_SYSTEM (title);
#endif
! wv_title->name = (char *) SDATA (title);
wv_title->enabled = TRUE;
wv_title->button_type = BUTTON_TYPE_NONE;
wv_title->next = wv_sep1;
***************
*** 2370,2376 ****
pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME];
prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX];
pane_string = (NILP (pane_name)
! ? "" : (char *) XSTRING (pane_name)->data);
prev_wv = xmalloc_widget_value ();
prev_wv->value = pane_string;
if (keymaps && !NILP (prefix))
--- 2370,2376 ----
pane_name = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_NAME];
prefix = XVECTOR (menu_items)->contents[MENU_ITEMS_PANE_PREFIX];
pane_string = (NILP (pane_name)
! ? "" : (char *) SDATA (pane_name));
prev_wv = xmalloc_widget_value ();
prev_wv->value = pane_string;
if (keymaps && !NILP (prefix))
***************
*** 2417,2424 ****
prev_wv->next = wv;
wv->name = (char *) button_names[nb_buttons];
if (!NILP (descrip))
! wv->key = (char *) XSTRING (descrip)->data;
! wv->value = (char *) XSTRING (item_name)->data;
wv->call_data = (void *) &XVECTOR (menu_items)->contents[i];
wv->enabled = !NILP (enable);
wv->help = Qnil;
--- 2417,2424 ----
prev_wv->next = wv;
wv->name = (char *) button_names[nb_buttons];
if (!NILP (descrip))
! wv->key = (char *) SDATA (descrip);
! wv->value = (char *) SDATA (item_name);
wv->call_data = (void *) &XVECTOR (menu_items)->contents[i];
wv->enabled = !NILP (enable);
wv->help = Qnil;
***************
*** 2656,2662 ****
pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME];
prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
pane_string = (NILP (pane_name)
! ? "" : (char *) XSTRING (pane_name)->data);
if (keymaps && !NILP (prefix))
pane_string++;
--- 2656,2662 ----
pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME];
prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX];
pane_string = (NILP (pane_name)
! ? "" : (char *) SDATA (pane_name));
if (keymaps && !NILP (prefix))
pane_string++;
***************
*** 2683,2689 ****
j++;
continue;
}
! width = STRING_BYTES (XSTRING (item));
if (width > maxwidth)
maxwidth = width;
--- 2683,2689 ----
j++;
continue;
}
! width = SBYTES (item);
if (width > maxwidth)
maxwidth = width;
***************
*** 2706,2739 ****
descrip
= XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP];
! help_string = STRINGP (help) ? XSTRING (help)->data : NULL;
if (!NILP (descrip))
{
! int gap = maxwidth - STRING_BYTES (XSTRING (item_name));
#ifdef C_ALLOCA
Lisp_Object spacer;
spacer = Fmake_string (make_number (gap), make_number (' '));
item_name = concat2 (item_name, spacer);
item_name = concat2 (item_name, descrip);
! item_data = XSTRING (item_name)->data;
#else
/* if alloca is fast, use that to make the space,
to reduce gc needs. */
item_data
= (unsigned char *) alloca (maxwidth
! + STRING_BYTES (XSTRING (descrip))
+ 1);
! bcopy (XSTRING (item_name)->data, item_data,
! STRING_BYTES (XSTRING (item_name)));
! for (j = XSTRING (item_name)->size; j < maxwidth; j++)
item_data[j] = ' ';
! bcopy (XSTRING (descrip)->data, item_data + j,
! STRING_BYTES (XSTRING (descrip)));
! item_data[j + STRING_BYTES (XSTRING (descrip))] = 0;
#endif
}
else
! item_data = XSTRING (item_name)->data;
if (XMenuAddSelection (FRAME_X_DISPLAY (f),
menu, lpane, 0, item_data,
--- 2706,2739 ----
descrip
= XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY];
help = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_HELP];
! help_string = STRINGP (help) ? SDATA (help) : NULL;
if (!NILP (descrip))
{
! int gap = maxwidth - SBYTES (item_name);
#ifdef C_ALLOCA
Lisp_Object spacer;
spacer = Fmake_string (make_number (gap), make_number (' '));
item_name = concat2 (item_name, spacer);
item_name = concat2 (item_name, descrip);
! item_data = SDATA (item_name);
#else
/* if alloca is fast, use that to make the space,
to reduce gc needs. */
item_data
= (unsigned char *) alloca (maxwidth
! + SBYTES (descrip) + 1);
! bcopy (SDATA (item_name), item_data,
! SBYTES (item_name));
! for (j = SCHARS (item_name); j < maxwidth; j++)
item_data[j] = ' ';
! bcopy (SDATA (descrip), item_data + j,
! SBYTES (descrip));
! item_data[j + SBYTES (descrip)] = 0;
#endif
}
else
! item_data = SDATA (item_name);
if (XMenuAddSelection (FRAME_X_DISPLAY (f),
menu, lpane, 0, item_data,