From: Jason Rumney Date: Wed, 31 Aug 2005 15:22:15 +0000 (+0000) Subject: (add_menu_item): If unicode_append_menu returns an X-Git-Tag: emacs-pretest-22.0.90~7289 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=d749b6fa2137756b292cf35fceafb80c15e89982;p=emacs.git (add_menu_item): If unicode_append_menu returns an error, revert to using AppendMenu. --- diff --git a/src/w32menu.c b/src/w32menu.c index 75c55ef4f85..d441d14b259 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -2321,7 +2321,23 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) item != NULL ? (UINT) item : (UINT) wv->call_data, utf16_string); - if (fuFlags & MF_OWNERDRAW) + if (!return_value) + { + /* On W9x/ME, unicode menus are not supported, though AppendMenuW + apparently does exist at least in some cases and appears to be + stubbed out to do nothing. out_string is UTF-8, but since + our standard menus are in English and this is only going to + happen the first time a menu is used, the encoding is + of minor importance compared with menus not working at all. */ + return_value = + AppendMenu (menu, fuFlags, + item != NULL ? (UINT) item: (UINT) wv->call_data, + out_string); + /* Don't use unicode menus in future. */ + unicode_append_menu = NULL; + } + + if (unicode_append_menu && (fuFlags & MF_OWNERDRAW)) local_free (out_string); } else