From: Stefan Monnier Date: Sat, 12 Mar 2005 23:29:04 +0000 (+0000) Subject: (ENCODE_MENU_STRING): Explicitly use string_make_unibyte. X-Git-Tag: ttn-vms-21-2-B4~1822 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=8af9fa555a7be05f2a37b8fbcc044be199b1fbcf;p=emacs.git (ENCODE_MENU_STRING): Explicitly use string_make_unibyte. (list_of_panes, list_of_items, Fx_popup_menu): Use XCAR/XCDR. (digest_single_submenu, xmenu_show): Use ENCODE_MENU_STRING. --- diff --git a/src/xmenu.c b/src/xmenu.c index b587fcf9e10..0de318323a3 100644 --- a/src/xmenu.c +++ b/src/xmenu.c @@ -1,6 +1,6 @@ /* X Communication module for terminals which understand the X protocol. - Copyright (C) 1986, 1988, 1993, 1994, 1996, 1999, 2000, 2001, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1986, 1988, 1993, 1994, 1996, 1999, 2000, 2001, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of GNU Emacs. @@ -138,12 +138,7 @@ static Lisp_Object xdialog_show P_ ((FRAME_PTR, int, Lisp_Object, char **)); /* gtk just uses utf-8. */ # define ENCODE_MENU_STRING(str) ENCODE_UTF_8 (str) #else -/* I'm not convinced ENCODE_SYSTEM is defined correctly, or maybe - something else should be used here. Except under MS-Windows it - just converts to unibyte, but encoding with `locale-coding-system' - seems better -- X may actually display the result correctly, and - it's not necessarily equivalent to the unibyte text. -- fx */ -# define ENCODE_MENU_STRING(str) ENCODE_SYSTEM (str) +# define ENCODE_MENU_STRING(str) string_make_unibyte (str) #endif static void push_menu_item P_ ((Lisp_Object, Lisp_Object, Lisp_Object, @@ -645,10 +640,10 @@ list_of_panes (menu) init_menu_items (); - for (tail = menu; !NILP (tail); tail = Fcdr (tail)) + for (tail = menu; CONSP (tail); tail = XCDR (tail)) { Lisp_Object elt, pane_name, pane_data; - elt = Fcar (tail); + elt = XCAR (tail); pane_name = Fcar (elt); CHECK_STRING (pane_name); push_menu_pane (ENCODE_MENU_STRING (pane_name), Qnil); @@ -668,22 +663,22 @@ list_of_items (pane) { Lisp_Object tail, item, item1; - for (tail = pane; !NILP (tail); tail = Fcdr (tail)) + for (tail = pane; CONSP (tail); tail = XCDR (tail)) { - item = Fcar (tail); + item = XCAR (tail); if (STRINGP (item)) push_menu_item (ENCODE_MENU_STRING (item), Qnil, Qnil, Qt, Qnil, Qnil, Qnil, Qnil); - else if (NILP (item)) - push_left_right_boundary (); - else + else if (CONSP (item)) { - CHECK_CONS (item); - item1 = Fcar (item); + item1 = XCAR (item); CHECK_STRING (item1); - push_menu_item (ENCODE_MENU_STRING (item1), Qt, Fcdr (item), + push_menu_item (ENCODE_MENU_STRING (item1), Qt, XCDR (item), Qt, Qnil, Qnil, Qnil, Qnil); } + else + push_left_right_boundary (); + } } @@ -802,8 +797,8 @@ cached information about equivalent key sequences. */) if (CONSP (tem)) { window = Fcar (Fcdr (position)); - x = Fcar (tem); - y = Fcar (Fcdr (tem)); + x = XCAR (tem); + y = Fcar (XCDR (tem)); } else { @@ -931,11 +926,11 @@ cached information about equivalent key sequences. */) /* The first keymap that has a prompt string supplies the menu title. */ - for (tem = menu, i = 0; CONSP (tem); tem = Fcdr (tem)) + for (tem = menu, i = 0; CONSP (tem); tem = XCDR (tem)) { Lisp_Object prompt; - maps[i++] = keymap = get_keymap (Fcar (tem), 1, 0); + maps[i++] = keymap = get_keymap (XCAR (tem), 1, 0); prompt = Fkeymap_prompt (keymap); if (NILP (title) && !NILP (prompt)) @@ -1750,7 +1745,7 @@ digest_single_submenu (start, end, top_level_items) #ifndef HAVE_MULTILINGUAL_MENU if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name)) { - pane_name = ENCODE_SYSTEM (pane_name); + pane_name = ENCODE_MENU_STRING (pane_name); AREF (menu_items, i + MENU_ITEMS_PANE_NAME) = pane_name; } #endif @@ -2695,7 +2690,7 @@ xmenu_show (f, x, y, for_click, keymaps, title, error) #ifndef HAVE_MULTILINGUAL_MENU if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name)) { - pane_name = ENCODE_SYSTEM (pane_name); + pane_name = ENCODE_MENU_STRING (pane_name); AREF (menu_items, i + MENU_ITEMS_PANE_NAME) = pane_name; } #endif