From: Eli Zaretskii Date: Tue, 3 Jun 2014 06:51:18 +0000 (+0300) Subject: Fix MS-Windows build broken by menu changes on 2014-06-02. X-Git-Tag: emacs-25.0.90~2639^2~136 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0031c9530d24fb25d8bdcadaf7457b7dee51da0c;p=emacs.git Fix MS-Windows build broken by menu changes on 2014-06-02. src/w32menu.c (w32_menu_show): Fix a typo that broke compilation. src/menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]: Define instead of including ../lwlib/lwlib.h, which causes compilation errors due to missing X11 headers. --- diff --git a/src/ChangeLog b/src/ChangeLog index ded001073ae..0a31818070f 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2014-06-03 Eli Zaretskii + + Fix MS-Windows build broken by menu changes on 2014-06-02. + * w32menu.c (w32_menu_show): Fix a typo that broke compilation. + + * menu.h (enum button_type, struct _widget_value) [HAVE_NTGUI]: + Define instead of including ../lwlib/lwlib.h, which causes + compilation errors due to missing X11 headers. + 2014-06-03 Paul Eggert * process.c (wait_reading_process_output): Omit incorrect test diff --git a/src/menu.h b/src/menu.h index 89a8729fd43..d71989ea1ef 100644 --- a/src/menu.h +++ b/src/menu.h @@ -20,12 +20,52 @@ along with GNU Emacs. If not, see . */ #define MENU_H #include "systime.h" /* for Time */ -#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NTGUI) \ - || defined (HAVE_NS) +#if defined (USE_X_TOOLKIT) || defined (USE_GTK) || defined (HAVE_NS) #include "../lwlib/lwlib.h" /* for widget_value */ #endif #ifdef HAVE_NTGUI +/* This is based on the one in ../lwlib/lwlib.h, with unused portions + removed. HAVE_NTGUI cannot include lwlib.h, as that pulls in X11 + headers. */ + +enum button_type +{ + BUTTON_TYPE_NONE, + BUTTON_TYPE_TOGGLE, + BUTTON_TYPE_RADIO +}; + +typedef struct _widget_value +{ + /* name of widget */ + Lisp_Object lname; + const char* name; + /* value (meaning depend on widget type) */ + const char* value; + /* keyboard equivalent. no implications for XtTranslations */ + Lisp_Object lkey; + const char* key; + /* Help string or nil if none. + GC finds this string through the frame's menu_bar_vector + or through menu_items. */ + Lisp_Object help; + /* true if enabled */ + unsigned char enabled; + /* true if selected */ + unsigned char selected; + /* The type of a button. */ + enum button_type button_type; + /* true if menu title */ + unsigned char title; + /* Contents of the sub-widgets, also selected slot for checkbox */ + struct _widget_value* contents; + /* data passed to callback */ + void *call_data; + /* next one in the list */ + struct _widget_value* next; +} widget_value; + extern Lisp_Object Qunsupported__w32_dialog; #endif diff --git a/src/w32menu.c b/src/w32menu.c index 36b06bafad2..467eb7a5710 100644 --- a/src/w32menu.c +++ b/src/w32menu.c @@ -697,7 +697,7 @@ w32_menu_show (struct frame *f, int x, int y, int for_click, int keymaps, ASET (menu_items, i + MENU_ITEMS_ITEM_EQUIV_KEY, descrip); } - wv = make_widget_value (SSDATA (item_name), NULL, !NILP (enabled), + wv = make_widget_value (SSDATA (item_name), NULL, !NILP (enable), STRINGP (help) ? help : Qnil); if (prev_wv) prev_wv->next = wv;