From 1c6900d923647582ea9c2ab90f0ccf1fe41603e0 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Thu, 26 Apr 2012 13:07:35 +0300 Subject: [PATCH] Don't disable Unicode menus on Windows NT and later due to random errors. src/w32menu.c: Include w32heap.h. (add_menu_item): If the call to AppendMenuW (via unicode_append_menu) fails, disable Unicode menus only if we are running on Windows 9X/Me. --- src/ChangeLog | 7 +++++++ src/w32menu.c | 9 +++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ChangeLog b/src/ChangeLog index 06d65c7bf33..8b23806e57f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2012-04-26 Eli Zaretskii + + * w32menu.c: Include w32heap.h. + (add_menu_item): If the call to AppendMenuW (via + unicode_append_menu) fails, disable Unicode menus only if we are + running on Windows 9X/Me. + 2012-04-24 Andreas Schwab * .gdbinit (xpr): Handle USE_2_TAGS_FOR_INTS. diff --git a/src/w32menu.c b/src/w32menu.c index 9091cb81627..5b95a083d90 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -48,6 +48,8 @@ along with GNU Emacs. If not, see . */ #include "dispextern.h" +#include "w32heap.h" /* for osinfo_cache */ + #undef HAVE_DIALOGS /* TODO: Implement native dialogs. */ #ifndef TRUE @@ -1498,8 +1500,11 @@ add_menu_item (HMENU menu, widget_value *wv, HMENU item) AppendMenu (menu, fuFlags, item != NULL ? (UINT) item: (UINT) wv->call_data, out_string); - /* Don't use Unicode menus in future. */ - unicode_append_menu = NULL; + /* Don't use Unicode menus in future, unless this is Windows + NT or later, where a failure of AppendMenuW does NOT mean + Unicode menus are unsupported. */ + if (osinfo_cache.dwPlatformId != VER_PLATFORM_WIN32_NT) + unicode_append_menu = NULL; } if (unicode_append_menu && (fuFlags & MF_OWNERDRAW)) -- 2.39.2