Mercurial > emacs
changeset 60583:44c9c79a2c7a
(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.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 12 Mar 2005 23:29:04 +0000 |
parents | c2a74bfb2e79 |
children | 597c62d04dec |
files | src/xmenu.c |
diffstat | 1 files changed, 19 insertions(+), 24 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xmenu.c Sat Mar 12 23:25:42 2005 +0000 +++ b/src/xmenu.c Sat Mar 12 23:29:04 2005 +0000 @@ -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 @@ /* 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 @@ 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 @@ { 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 @@ 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 @@ /* 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 @@ #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 @@ #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