]> git.eshelyaron.com Git - emacs.git/commitdiff
(add_menu_item): If unicode_append_menu returns an
authorJason Rumney <jasonr@gnu.org>
Wed, 31 Aug 2005 15:22:15 +0000 (15:22 +0000)
committerJason Rumney <jasonr@gnu.org>
Wed, 31 Aug 2005 15:22:15 +0000 (15:22 +0000)
error, revert to using AppendMenu.

src/w32menu.c

index 75c55ef4f85f9d42b3e4df555fdf139d41f14da9..d441d14b2593cf06f67dd07853ba14b56e78f4e3 100644 (file)
@@ -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