X11 lint suppression
Suppress close to 400 warnings generated by gcc on the win/X11/*.c code,
most due to -Wwrite-strings which makes string literals implicitly have
the 'const' attribute. (Since modifying a string literal results in
undefined behavior, that is an appropriate check to have enabled, but
it can be troublesome since string literals have type 'char *' and code
that uses them that way is correct provided it avoids modifying them.)
113 warning: initialization discards qualifiers from pointer target type
127 warning: assignment discards qualifiers from pointer target type
29 warning: passing argument discards qualifiers from pointer target type
109 warning: unused parameter
12 warning: comparison between signed and unsigned
The nhStr() hack casts to 'char *', explicitly removing 'const', for
situations where it isn't feasible to make code directly honor const.
The vast marjority of uses are for the second parameter to XtSetArg(),
which is a macro that actually performs an assignment with the second
argument rather than passing it in a function. It takes values like
'XtNtop', which doesn't need to be altered (although in many places I
changed that to nhStr(XtNtop) for uniformity with the surrounding code,
and 'XtNbottom', which does need to have the extra const stripping to
avoid a warning. Go figure.
The nhUse() hack actually uses its argument in a meaningless way if the
code is compiled with FORCE_ARG_USAGE defined. When GCC_WARN is defined,
FORCE_ARG_USAGE will be enabled if it hasn't been already. Example:
/*ARGUSED*/
int foo(arg)
int arg; /* not used */
{
+ nhUse(arg);
return 0;
}
The extra line will expand to ';' when FORCE_ARG_USAGE is not defined
or too
nhUse_dummy += (unsigned)arg;
when it is. I figured direct assignment might lead to a different
warning by some compilers in a situation like
nhUse(arg);
nhUse(otherarg);
where the first assignment would be clobbered by the second, and using
bitwise operations or safer '+= (arg != 0)' would most likely generate
more non-useful code. Some tweaking might turn out to be necessary.
This commit is contained in:
+98
-62
@@ -1,4 +1,4 @@
|
||||
/* NetHack 3.5 winmenu.c $NHDT-Date: 1428828477 2015/04/12 08:47:57 $ $NHDT-Branch: master $:$NHDT-Revision: 1.7 $ */
|
||||
/* NetHack 3.5 winmenu.c $NHDT-Date: 1430899135 2015/05/06 07:58:55 $ $NHDT-Branch: master $:$NHDT-Revision: 1.8 $ */
|
||||
/* NetHack 3.5 winmenu.c $Date: 2009/05/06 10:55:53 $ $Revision: 1.5 $ */
|
||||
/* SCCS Id: @(#)winmenu.c 3.5 1996/08/15 */
|
||||
/* Copyright (c) Dean Luick, 1992 */
|
||||
@@ -98,6 +98,8 @@ menu_select(w, client_data, call_data)
|
||||
#endif
|
||||
long how_many;
|
||||
|
||||
nhUse(client_data);
|
||||
|
||||
wp = find_widget(w);
|
||||
menu_info = wp->menu_information;
|
||||
how_many = menu_info->counting ? menu_info->menu_count : -1L;
|
||||
@@ -157,6 +159,10 @@ menu_delete(w, event, params, num_params)
|
||||
String *params;
|
||||
Cardinal *num_params;
|
||||
{
|
||||
nhUse(event);
|
||||
nhUse(params);
|
||||
nhUse(num_params);
|
||||
|
||||
menu_cancel((Widget)None, (XtPointer) find_widget(w), (XtPointer) 0);
|
||||
}
|
||||
|
||||
@@ -171,6 +177,9 @@ invert_line(wp, curr, which, how_many)
|
||||
int which;
|
||||
long how_many;
|
||||
{
|
||||
#ifndef USE_FWF
|
||||
nhUse(which);
|
||||
#endif
|
||||
reset_menu_count(wp->menu_information);
|
||||
curr->selected = !curr->selected;
|
||||
if (curr->selected) {
|
||||
@@ -208,6 +217,9 @@ menu_key(w, event, params, num_params)
|
||||
int count;
|
||||
boolean selected_something;
|
||||
|
||||
nhUse(params);
|
||||
nhUse(num_params);
|
||||
|
||||
wp = find_widget(w);
|
||||
menu_info = wp->menu_information;
|
||||
|
||||
@@ -346,6 +358,9 @@ menu_ok(w, client_data, call_data)
|
||||
{
|
||||
struct xwindow *wp = (struct xwindow *) client_data;
|
||||
|
||||
nhUse(w);
|
||||
nhUse(call_data);
|
||||
|
||||
menu_popdown(wp);
|
||||
}
|
||||
|
||||
@@ -357,6 +372,9 @@ menu_cancel(w, client_data, call_data)
|
||||
{
|
||||
struct xwindow *wp = (struct xwindow *) client_data;
|
||||
|
||||
nhUse(w);
|
||||
nhUse(call_data);
|
||||
|
||||
if (wp->menu_information->is_active) {
|
||||
select_none(wp);
|
||||
wp->menu_information->cancelled = TRUE;
|
||||
@@ -370,6 +388,9 @@ menu_all(w, client_data, call_data)
|
||||
Widget w;
|
||||
XtPointer client_data, call_data;
|
||||
{
|
||||
nhUse(w);
|
||||
nhUse(call_data);
|
||||
|
||||
select_all((struct xwindow *) client_data);
|
||||
}
|
||||
|
||||
@@ -379,6 +400,9 @@ menu_none(w, client_data, call_data)
|
||||
Widget w;
|
||||
XtPointer client_data, call_data;
|
||||
{
|
||||
nhUse(w);
|
||||
nhUse(call_data);
|
||||
|
||||
select_none((struct xwindow *) client_data);
|
||||
}
|
||||
|
||||
@@ -388,6 +412,9 @@ menu_invert(w, client_data, call_data)
|
||||
Widget w;
|
||||
XtPointer client_data, call_data;
|
||||
{
|
||||
nhUse(w);
|
||||
nhUse(call_data);
|
||||
|
||||
invert_all((struct xwindow *) client_data);
|
||||
}
|
||||
|
||||
@@ -401,6 +428,9 @@ menu_search(w, client_data, call_data)
|
||||
struct menu_info_t *menu_info = wp->menu_information;
|
||||
char buf[BUFSZ+2], tmpbuf[BUFSZ];
|
||||
|
||||
nhUse(w);
|
||||
nhUse(call_data);
|
||||
|
||||
X11_getlin("Search for:", tmpbuf);
|
||||
if (!*tmpbuf || *tmpbuf == '\033') return;
|
||||
/* convert "string" into "*string*" for use with pmatch() */
|
||||
@@ -614,6 +644,9 @@ X11_add_menu(window, glyph, identifier, ch, gch, attr, str, preselected)
|
||||
x11_menu_item *item;
|
||||
struct menu_info_t *menu_info;
|
||||
|
||||
nhUse(glyph);
|
||||
nhUse(preselected); /*FIXME*/
|
||||
|
||||
check_winid(window);
|
||||
menu_info = window_list[window].menu_information;
|
||||
if (!menu_info->is_menu) {
|
||||
@@ -805,10 +838,10 @@ X11_select_menu(window, how, menu_list)
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNborderWidth, 0); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
|
||||
if (labeled)
|
||||
label = XtCreateManagedWidget(menu_info->new_menu.query,
|
||||
@@ -821,11 +854,11 @@ X11_select_menu(window, how, menu_list)
|
||||
* Create ok, cancel, all, none, invert, and search buttons..
|
||||
*/
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNfromVert, label); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
ok = XtCreateManagedWidget("OK",
|
||||
commandWidgetClass,
|
||||
form,
|
||||
@@ -833,13 +866,14 @@ X11_select_menu(window, how, menu_list)
|
||||
XtAddCallback(ok, XtNcallback, menu_ok, (XtPointer) wp);
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNfromVert, label); num_args++;
|
||||
XtSetArg(args[num_args], XtNfromHoriz, ok); num_args++;
|
||||
XtSetArg(args[num_args], XtNsensitive, how!=PICK_NONE); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromHoriz), ok); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNsensitive),
|
||||
how != PICK_NONE); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
cancel = XtCreateManagedWidget("cancel",
|
||||
commandWidgetClass,
|
||||
form,
|
||||
@@ -848,13 +882,13 @@ X11_select_menu(window, how, menu_list)
|
||||
|
||||
sens = (how == PICK_ANY);
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNfromVert, label); num_args++;
|
||||
XtSetArg(args[num_args], XtNfromHoriz, cancel); num_args++;
|
||||
XtSetArg(args[num_args], XtNsensitive, sens); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromHoriz), cancel); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNsensitive), sens); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
all = XtCreateManagedWidget("all",
|
||||
commandWidgetClass,
|
||||
form,
|
||||
@@ -862,13 +896,13 @@ X11_select_menu(window, how, menu_list)
|
||||
XtAddCallback(all, XtNcallback, menu_all, (XtPointer) wp);
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNfromVert, label); num_args++;
|
||||
XtSetArg(args[num_args], XtNfromHoriz, all); num_args++;
|
||||
XtSetArg(args[num_args], XtNsensitive, sens); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromHoriz), all); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNsensitive), sens); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
none = XtCreateManagedWidget("none",
|
||||
commandWidgetClass,
|
||||
form,
|
||||
@@ -876,13 +910,13 @@ X11_select_menu(window, how, menu_list)
|
||||
XtAddCallback(none, XtNcallback, menu_none, (XtPointer) wp);
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNfromVert, label); num_args++;
|
||||
XtSetArg(args[num_args], XtNfromHoriz, none); num_args++;
|
||||
XtSetArg(args[num_args], XtNsensitive, sens); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromHoriz), none); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNsensitive), sens); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
invert = XtCreateManagedWidget("invert",
|
||||
commandWidgetClass,
|
||||
form,
|
||||
@@ -890,13 +924,14 @@ X11_select_menu(window, how, menu_list)
|
||||
XtAddCallback(invert, XtNcallback, menu_invert, (XtPointer) wp);
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNfromVert, label); num_args++;
|
||||
XtSetArg(args[num_args], XtNfromHoriz, invert); num_args++;
|
||||
XtSetArg(args[num_args], XtNsensitive, how!=PICK_NONE); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), label); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromHoriz), invert); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNsensitive),
|
||||
how != PICK_NONE); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainLeft); num_args++;
|
||||
search = XtCreateManagedWidget("search",
|
||||
commandWidgetClass,
|
||||
form,
|
||||
@@ -904,18 +939,18 @@ X11_select_menu(window, how, menu_list)
|
||||
XtAddCallback(search, XtNcallback, menu_search, (XtPointer) wp);
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNallowVert, True); num_args++;
|
||||
XtSetArg(args[num_args], XtNallowHoriz, False); num_args++;
|
||||
XtSetArg(args[num_args], XtNuseBottom, True); num_args++;
|
||||
XtSetArg(args[num_args], XtNuseRight, True); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNallowVert), True); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNallowHoriz), False); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNuseBottom), True); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNuseRight), True); num_args++;
|
||||
/*
|
||||
XtSetArg(args[num_args], XtNforceBars, True); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNforceBars), True); num_args++;
|
||||
*/
|
||||
XtSetArg(args[num_args], XtNfromVert, all); num_args++;
|
||||
XtSetArg(args[num_args], XtNtop, XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], XtNbottom, XtChainBottom); num_args++;
|
||||
XtSetArg(args[num_args], XtNleft, XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], XtNright, XtChainRight); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNfromVert), all); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNtop), XtChainTop); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNbottom), XtChainBottom); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNleft), XtChainLeft); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNright), XtChainRight); num_args++;
|
||||
viewport_widget = XtCreateManagedWidget(
|
||||
"menu_viewport", /* name */
|
||||
viewportWidgetClass,
|
||||
@@ -926,15 +961,15 @@ X11_select_menu(window, how, menu_list)
|
||||
move_menu(&menu_info->new_menu, &menu_info->curr_menu);
|
||||
|
||||
num_args = 0;
|
||||
XtSetArg(args[num_args], XtNforceColumns, True); num_args++;
|
||||
XtSetArg(args[num_args], XtNcolumnSpacing, 1); num_args++;
|
||||
XtSetArg(args[num_args], XtNdefaultColumns, 1); num_args++;
|
||||
XtSetArg(args[num_args], XtNlist,
|
||||
XtSetArg(args[num_args], nhStr(XtNforceColumns), True); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNcolumnSpacing), 1); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNdefaultColumns), 1); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNlist),
|
||||
menu_info->curr_menu.list_pointer); num_args++;
|
||||
#ifdef USE_FWF
|
||||
XtSetArg(args[num_args], XtNsensitiveArray,
|
||||
XtSetArg(args[num_args], nhStr(XtNsensitiveArray),
|
||||
menu_info->curr_menu.sensitive); num_args++;
|
||||
XtSetArg(args[num_args], XtNmaxSelectable,
|
||||
XtSetArg(args[num_args], nhStr(XtNmaxSelectable),
|
||||
menu_info->curr_menu.count); num_args++;
|
||||
#endif
|
||||
wp->w = XtCreateManagedWidget(
|
||||
@@ -957,7 +992,8 @@ X11_select_menu(window, how, menu_list)
|
||||
&menu_info->internal_height); num_args++;
|
||||
XtSetArg(args[num_args], XtNinternalWidth,
|
||||
&menu_info->internal_width); num_args++;
|
||||
XtSetArg(args[num_args], XtNrowSpacing, &row_spacing); num_args++;
|
||||
XtSetArg(args[num_args], nhStr(XtNrowSpacing),
|
||||
&row_spacing); num_args++;
|
||||
XtGetValues(wp->w, args, num_args);
|
||||
|
||||
/* font height is ascent + descent */
|
||||
|
||||
Reference in New Issue
Block a user