summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMatthieu Herrb <matthieu@herrb.eu>2019-07-17 17:33:35 +0200
committerMatthieu Herrb <matthieu@herrb.eu>2019-07-17 17:33:35 +0200
commit879fca731c241d59dcfcfdb4d4d67d2df996a4d7 (patch)
tree7a45752897099e4fa4382ab3e0a7aada9aef60f3 /src
parent6197a5f16dbc71d6199615ceec0caf676e8aa1b2 (diff)
parent2e0923ba703d040160bac1deb05d5d6d4cbd62aa (diff)
Merge remote-tracking branch 'origin/master' into obsd
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am8
-rw-r--r--src/add_window.c86
-rw-r--r--src/cursor.c5
-rw-r--r--src/deftwmrc.sed2
-rw-r--r--src/events.c104
-rw-r--r--src/events.h1
-rw-r--r--src/gram.y37
-rw-r--r--src/iconmgr.c22
-rw-r--r--src/icons.c38
-rw-r--r--src/lex.l2
-rw-r--r--src/list.c6
-rw-r--r--src/menus.c159
-rw-r--r--src/parse.c22
-rw-r--r--src/resize.c50
-rw-r--r--src/session.c96
-rw-r--r--src/twm.c40
-rw-r--r--src/twm.h13
-rw-r--r--src/util.c236
18 files changed, 504 insertions, 423 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index ba9c7b9..4bafe55 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -32,8 +32,8 @@ AM_CPPFLAGS = \
-DXORG_RELEASE=\"Release\ $(VERSION)\" \
-DSYSTEM_INIT_FILE=\"${rcdir}/system.twmrc\"
-AM_CFLAGS = $(TWM_CFLAGS)
-twm_LDADD = $(TWM_LIBS)
+AM_CFLAGS = $(TWM_CFLAGS) $(XRANDR_CFLAGS)
+twm_LDADD = $(TWM_LIBS) $(XRANDR_LIBS)
twm_SOURCES = \
add_window.c \
@@ -77,8 +77,8 @@ deftwmrc.c: system.twmrc
echo ' * twm bindings file system.twmrc by the twm Makefile.' >>$@ ; \
echo ' */' >>$@ ; \
echo '' >>$@ ; \
- echo 'unsigned char *defTwmrc[] = {' >>$@ ; \
+ echo 'const unsigned char *defTwmrc[] = {' >>$@ ; \
$(SED) -f ${srcdir}/deftwmrc.sed < ${srcdir}/system.twmrc >>$@ ; \
- echo ' (unsigned char *) 0 };' >>$@
+ echo ' (const unsigned char *) 0 };' >>$@
EXTRA_DIST = deftwmrc.sed siconify.bm
diff --git a/src/add_window.c b/src/add_window.c
index 99481b0..acd685f 100644
--- a/src/add_window.c
+++ b/src/add_window.c
@@ -179,7 +179,7 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
}
tmp_win->w = w;
tmp_win->zoomed = ZOOM_NONE;
- tmp_win->iconmgr = iconm;
+ tmp_win->iconmgr = (short) iconm;
tmp_win->iconmgrp = iconp;
tmp_win->cmaps.number_cwins = 0;
@@ -266,7 +266,7 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
* fields in the WM_NORMAL_HINTS property.
*/
- tmp_win->transient = Transient(tmp_win->w, &tmp_win->transientfor);
+ tmp_win->transient = (short)Transient(tmp_win->w, &tmp_win->transientfor);
tmp_win->nameChanged = 0;
if (tmp_win->class.res_name == NULL)
@@ -275,7 +275,7 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
tmp_win->class.res_class = NoName;
tmp_win->full_name = strdup(tmp_win->name);
- namelen = strlen (tmp_win->name);
+ namelen = (int)strlen (tmp_win->name);
tmp_win->highlight = Scr->Highlight &&
(!(short)(long) LookInList(Scr->NoHighlight, tmp_win->full_name,
@@ -479,7 +479,7 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
tmp_win->name, namelen));
height = Scr->SizeFont.height + SIZE_VINDENT * 2;
- XResizeWindow (dpy, Scr->SizeWindow, width + SIZE_HINDENT, height);
+ XResizeWindow (dpy, Scr->SizeWindow, (unsigned)(width + SIZE_HINDENT), (unsigned)height);
XMapRaised(dpy, Scr->SizeWindow);
InstallRootColormap();
@@ -585,8 +585,8 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
Scr->SizeStringOffset = width +
MyFont_TextWidth(&Scr->SizeFont, ": ", 2);
- XResizeWindow (dpy, Scr->SizeWindow, Scr->SizeStringOffset +
- Scr->SizeStringWidth, height);
+ XResizeWindow (dpy, Scr->SizeWindow, (unsigned)(Scr->SizeStringOffset +
+ Scr->SizeStringWidth), (unsigned)height);
MyFont_DrawImageString (dpy, Scr->SizeWindow, &Scr->SizeFont,
Scr->NormalGC, width,
SIZE_VINDENT + Scr->SizeFont.ascent,
@@ -658,8 +658,8 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
}
else if (event.xbutton.button == Button3)
{
- int maxw = Scr->MyDisplayWidth - AddingX - bw2;
- int maxh = Scr->MyDisplayHeight - AddingY - bw2;
+ int maxw = Scr->MyDisplayWidth - AddingX;
+ int maxh = Scr->MyDisplayHeight - AddingY;
/*
* Make window go to bottom of screen, and clip to right edge.
@@ -669,6 +669,8 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
if (AddingW > maxw) AddingW = maxw;
AddingH = maxh;
+ AddingW -= bw2;
+ AddingH -= bw2;
ConstrainSize (tmp_win, &AddingW, &AddingH); /* w/o borders */
AddingW += bw2;
AddingH += bw2;
@@ -843,7 +845,7 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
tmp_win->gray = XCreatePixmapFromBitmapData(dpy, Scr->Root,
gray_bits, gray_width, gray_height,
tmp_win->border_tile.fore, tmp_win->border_tile.back,
- Scr->d_depth);
+ (unsigned)Scr->d_depth);
SetBorder (tmp_win, False);
}
@@ -882,7 +884,7 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
XShapeQueryExtents (dpy, tmp_win->w,
&boundingShaped, &xws, &yws, &wws, &hws,
&clipShaped, &xbs, &ybs, &wbs, &hbs);
- tmp_win->wShaped = boundingShaped;
+ tmp_win->wShaped = (short)boundingShaped;
}
if (!tmp_win->iconmgr)
@@ -913,27 +915,27 @@ AddWindow(Window w, int iconm, IconMgr *iconp)
(void) AddIconManager(tmp_win);
- XSaveContext(dpy, tmp_win->w, TwmContext, (caddr_t) tmp_win);
- XSaveContext(dpy, tmp_win->w, ScreenContext, (caddr_t) Scr);
- XSaveContext(dpy, tmp_win->frame, TwmContext, (caddr_t) tmp_win);
- XSaveContext(dpy, tmp_win->frame, ScreenContext, (caddr_t) Scr);
+ XSaveContext(dpy, tmp_win->w, TwmContext, (XPointer) tmp_win);
+ XSaveContext(dpy, tmp_win->w, ScreenContext, (XPointer) Scr);
+ XSaveContext(dpy, tmp_win->frame, TwmContext, (XPointer) tmp_win);
+ XSaveContext(dpy, tmp_win->frame, ScreenContext, (XPointer) Scr);
if (tmp_win->title_height)
{
int i;
int nb = Scr->TBInfo.nleft + Scr->TBInfo.nright;
- XSaveContext(dpy, tmp_win->title_w, TwmContext, (caddr_t) tmp_win);
- XSaveContext(dpy, tmp_win->title_w, ScreenContext, (caddr_t) Scr);
+ XSaveContext(dpy, tmp_win->title_w, TwmContext, (XPointer) tmp_win);
+ XSaveContext(dpy, tmp_win->title_w, ScreenContext, (XPointer) Scr);
for (i = 0; i < nb; i++) {
XSaveContext(dpy, tmp_win->titlebuttons[i].window, TwmContext,
- (caddr_t) tmp_win);
+ (XPointer) tmp_win);
XSaveContext(dpy, tmp_win->titlebuttons[i].window, ScreenContext,
- (caddr_t) Scr);
+ (XPointer) Scr);
}
if (tmp_win->hilite_w)
{
- XSaveContext(dpy, tmp_win->hilite_w, TwmContext, (caddr_t)tmp_win);
- XSaveContext(dpy, tmp_win->hilite_w, ScreenContext, (caddr_t)Scr);
+ XSaveContext(dpy, tmp_win->hilite_w, TwmContext, (XPointer)tmp_win);
+ XSaveContext(dpy, tmp_win->hilite_w, ScreenContext, (XPointer)Scr);
}
}
@@ -1023,7 +1025,7 @@ GrabButtons(TwmWindow *tmp_win)
/* twm used to do this grab on the application main window,
* tmp_win->w . This was not ICCCM complient and was changed.
*/
- XGrabButton(dpy, i, j, tmp_win->frame,
+ XGrabButton(dpy, (unsigned)i, (unsigned)j, tmp_win->frame,
True, ButtonPressMask | ButtonReleaseMask,
GrabModeAsync, GrabModeAsync, None,
Scr->FrameCursor);
@@ -1048,29 +1050,29 @@ GrabKeys(TwmWindow *tmp_win)
switch (tmp->cont)
{
case C_WINDOW:
- XGrabKey(dpy, tmp->keycode, tmp->mods, tmp_win->w, True,
+ XGrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, tmp_win->w, True,
GrabModeAsync, GrabModeAsync);
break;
case C_ICON:
if (tmp_win->icon_w)
- XGrabKey(dpy, tmp->keycode, tmp->mods, tmp_win->icon_w, True,
+ XGrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, tmp_win->icon_w, True,
GrabModeAsync, GrabModeAsync);
case C_TITLE:
if (tmp_win->title_w)
- XGrabKey(dpy, tmp->keycode, tmp->mods, tmp_win->title_w, True,
+ XGrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, tmp_win->title_w, True,
GrabModeAsync, GrabModeAsync);
break;
case C_NAME:
- XGrabKey(dpy, tmp->keycode, tmp->mods, tmp_win->w, True,
+ XGrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, tmp_win->w, True,
GrabModeAsync, GrabModeAsync);
if (tmp_win->icon_w)
- XGrabKey(dpy, tmp->keycode, tmp->mods, tmp_win->icon_w, True,
+ XGrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, tmp_win->icon_w, True,
GrabModeAsync, GrabModeAsync);
if (tmp_win->title_w)
- XGrabKey(dpy, tmp->keycode, tmp->mods, tmp_win->title_w, True,
+ XGrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, tmp_win->title_w, True,
GrabModeAsync, GrabModeAsync);
break;
/*
@@ -1087,7 +1089,7 @@ GrabKeys(TwmWindow *tmp_win)
{
for (p = &Scr->iconmgr; p != NULL; p = p->next)
{
- XUngrabKey(dpy, tmp->keycode, tmp->mods, p->twm_win->w);
+ XUngrabKey(dpy, tmp->keycode, (unsigned)tmp->mods, p->twm_win->w);
}
}
}
@@ -1125,8 +1127,8 @@ static Window CreateHighlightWindow (TwmWindow *tmp_win)
}
if (Scr->hilitePm) {
pm = XCreatePixmap (dpy, tmp_win->title_w,
- Scr->hilite_pm_width, Scr->hilite_pm_height,
- Scr->d_depth);
+ (unsigned)Scr->hilite_pm_width, (unsigned)Scr->hilite_pm_height,
+ (unsigned)Scr->d_depth);
gcv.foreground = tmp_win->title.fore;
gcv.background = tmp_win->title.back;
gcv.graphics_exposures = False;
@@ -1135,7 +1137,7 @@ static Window CreateHighlightWindow (TwmWindow *tmp_win)
&gcv);
if (gc) {
XCopyPlane (dpy, Scr->hilitePm, pm, gc, 0, 0,
- Scr->hilite_pm_width, Scr->hilite_pm_height,
+ (unsigned)Scr->hilite_pm_width, (unsigned)Scr->hilite_pm_height,
0, 0, 1);
XFreeGC (dpy, gc);
} else {
@@ -1287,14 +1289,14 @@ static void CreateWindowTitlebarButtons (TwmWindow *tmp_win)
tmp_win->titlebuttons = NULL;
nb = Scr->TBInfo.nleft + Scr->TBInfo.nright;
if (nb > 0) {
- tmp_win->titlebuttons = malloc (nb * sizeof(TBWindow));
+ tmp_win->titlebuttons = malloc ((size_t)nb * sizeof(TBWindow));
if (!tmp_win->titlebuttons) {
fprintf (stderr, "%s: unable to allocate %d titlebuttons\n",
ProgramName, nb);
} else {
TBWindow *tbw;
int boxwidth = (Scr->TBInfo.width + Scr->TBInfo.pad);
- unsigned int h = (Scr->TBInfo.width - Scr->TBInfo.border * 2);
+ unsigned h = (unsigned)(Scr->TBInfo.width - Scr->TBInfo.border * 2);
for (tb = Scr->TBInfo.head, tbw = tmp_win->titlebuttons; tb;
tb = tb->next, tbw++) {
@@ -1338,8 +1340,8 @@ SetHighlightPixmap (char *filename)
XFreePixmap (dpy, Scr->hilitePm);
}
Scr->hilitePm = pm;
- Scr->hilite_pm_width = JunkWidth;
- Scr->hilite_pm_height = JunkHeight;
+ Scr->hilite_pm_width = (int)JunkWidth;
+ Scr->hilite_pm_height = (int)JunkHeight;
}
}
@@ -1371,7 +1373,7 @@ CreateTwmColormap(Colormap c)
TwmColormap *cmap;
cmap = malloc(sizeof(TwmColormap));
if (!cmap ||
- XSaveContext(dpy, c, ColormapContext, (caddr_t) cmap)) {
+ XSaveContext(dpy, c, ColormapContext, (XPointer) cmap)) {
if (cmap) free(cmap);
return (NULL);
}
@@ -1393,13 +1395,13 @@ CreateColormapWindow(Window w, Bool creating_parent, Bool property_window)
cwin = malloc(sizeof(ColormapWindow));
if (cwin) {
if (!XGetWindowAttributes(dpy, w, &attributes) ||
- XSaveContext(dpy, w, ColormapContext, (caddr_t) cwin)) {
+ XSaveContext(dpy, w, ColormapContext, (XPointer) cwin)) {
free(cwin);
return (NULL);
}
if (XFindContext(dpy, attributes.colormap, ColormapContext,
- (caddr_t *)&cwin->colormap) == XCNOENT) {
+ (XPointer *)&cwin->colormap) == XCNOENT) {
cwin->colormap = cmap = CreateTwmColormap(attributes.colormap);
if (!cmap) {
XDeleteContext(dpy, w, ColormapContext);
@@ -1469,7 +1471,7 @@ FetchWmColormapWindows (TwmWindow *tmp)
}
if (i == number_cmap_windows) { /* not in list */
Window *new_cmap_windows =
- malloc (sizeof(Window) * (number_cmap_windows + 1));
+ malloc (sizeof(Window) * (size_t)(number_cmap_windows + 1));
if (!new_cmap_windows) {
fprintf (stderr,
@@ -1487,7 +1489,7 @@ FetchWmColormapWindows (TwmWindow *tmp)
number_cmap_windows++;
}
- cwins = malloc(sizeof(ColormapWindow *) * number_cmap_windows);
+ cwins = malloc(sizeof(ColormapWindow *) * (size_t)number_cmap_windows);
if (cwins) {
for (i = 0; i < number_cmap_windows; i++) {
@@ -1509,7 +1511,7 @@ FetchWmColormapWindows (TwmWindow *tmp)
*/
if (j == tmp->cmaps.number_cwins) {
if (XFindContext(dpy, cmap_windows[i], ColormapContext,
- (caddr_t *)&cwins[i]) == XCNOENT) {
+ (XPointer *)&cwins[i]) == XCNOENT) {
if ((cwins[i] = CreateColormapWindow(cmap_windows[i],
(Bool) tmp->cmaps.number_cwins == 0,
True)) == NULL) {
@@ -1533,7 +1535,7 @@ FetchWmColormapWindows (TwmWindow *tmp)
number_cmap_windows = 1;
cwins = malloc(sizeof(ColormapWindow *));
- if (XFindContext(dpy, tmp->w, ColormapContext, (caddr_t *)&cwins[0]) ==
+ if (XFindContext(dpy, tmp->w, ColormapContext, (XPointer *)&cwins[0]) ==
XCNOENT) {
cwins[0] = CreateColormapWindow(tmp->w,
(Bool) tmp->cmaps.number_cwins == 0, False);
diff --git a/src/cursor.c b/src/cursor.c
index bbe05f0..9a0cb28 100644
--- a/src/cursor.c
+++ b/src/cursor.c
@@ -127,7 +127,7 @@ NewFontCursor (Cursor *cp, const char *str)
{
int i;
- for (i = 0; i < sizeof(cursor_names)/sizeof(struct _CursorName); i++)
+ for (i = 0; (size_t)i < sizeof(cursor_names)/sizeof(struct _CursorName); i++)
{
if (strcmp(str, cursor_names[i].name) == 0)
{
@@ -167,5 +167,6 @@ NewBitmapCursor(Cursor *cp, char *source, char *mask)
return;
}
*cp = XCreatePixmapCursor(dpy, spm, mpm, &Scr->PointerForeground,
- &Scr->PointerBackground, hotx,hoty);
+ &Scr->PointerBackground,
+ (unsigned)hotx, (unsigned)hoty);
}
diff --git a/src/deftwmrc.sed b/src/deftwmrc.sed
index d26926a..30f8c27 100644
--- a/src/deftwmrc.sed
+++ b/src/deftwmrc.sed
@@ -1,4 +1,4 @@
/^#/d
s/"/\\"/g
-s/^/ (unsigned char *) "/
+s/^/ (const unsigned char *) "/
s/$/",/
diff --git a/src/events.c b/src/events.c
index ac26d88..ce66446 100644
--- a/src/events.c
+++ b/src/events.c
@@ -73,6 +73,9 @@ in this Software without prior written authorization from The Open Group.
#include "icons.h"
#include "version.h"
+#ifdef HAVE_XRANDR
+#include <X11/extensions/Xrandr.h>
+#endif
#define MAX_X_EVENT 256
event_proc EventHandler[MAX_X_EVENT]; /* event handler jump table */
@@ -170,6 +173,18 @@ InitEvents(void)
EventHandler[VisibilityNotify] = HandleVisibilityNotify;
if (HasShape)
EventHandler[ShapeEventBase+ShapeNotify] = HandleShapeNotify;
+#ifdef HAVE_XRANDR
+ if (HasXrandr)
+ {
+ int scrnum;
+
+ EventHandler[XrandrEventBase+RRScreenChangeNotify] = HandleScreenChangeNotify;
+ for (scrnum = 0; scrnum < NumScreens; scrnum++)
+ {
+ XRRSelectInput(dpy,ScreenList[scrnum]->Root,RRScreenChangeNotifyMask);
+ }
+ }
+#endif
}
@@ -595,7 +610,7 @@ HandleKeyPress(void)
for (key = Scr->FuncKeyRoot.next; key != NULL; key = key->next)
{
if (key->keysym == ks &&
- key->mods == modifier &&
+ (unsigned)key->mods == modifier &&
(key->cont == Context || key->cont == C_NAME))
{
/* weed out the functions that don't make sense to execute
@@ -617,13 +632,13 @@ HandleKeyPress(void)
else
{
int matched = FALSE;
- len = strlen(key->win_name);
+ len = (int)strlen(key->win_name);
/* try and match the name first */
for (Tmp_win = Scr->TwmRoot.next; Tmp_win != NULL;
Tmp_win = Tmp_win->next)
{
- if (!strncmp(key->win_name, Tmp_win->name, len))
+ if (!strncmp(key->win_name, Tmp_win->name, (size_t)len))
{
matched = TRUE;
ExecuteFunction(key->func, key->action, Tmp_win->frame,
@@ -637,7 +652,7 @@ HandleKeyPress(void)
for (Tmp_win = Scr->TwmRoot.next; Tmp_win != NULL;
Tmp_win = Tmp_win->next)
{
- if (!strncmp(key->win_name, Tmp_win->class.res_name, len))
+ if (!strncmp(key->win_name, Tmp_win->class.res_name, (size_t)len))
{
matched = TRUE;
ExecuteFunction(key->func, key->action, Tmp_win->frame,
@@ -651,7 +666,7 @@ HandleKeyPress(void)
for (Tmp_win = Scr->TwmRoot.next; Tmp_win != NULL;
Tmp_win = Tmp_win->next)
{
- if (!strncmp(key->win_name, Tmp_win->class.res_class, len))
+ if (!strncmp(key->win_name, Tmp_win->class.res_class, (size_t)len))
{
matched = TRUE;
ExecuteFunction(key->func, key->action, Tmp_win->frame,
@@ -780,7 +795,7 @@ HandlePropertyNotify(void)
Tmp_win->name_width = MyFont_TextWidth (&Scr->TitleBarFont,
Tmp_win->name,
- strlen (Tmp_win->name));
+ (int)strlen (Tmp_win->name));
SetupWindow (Tmp_win, Tmp_win->frame_x, Tmp_win->frame_y,
Tmp_win->frame_width, Tmp_win->frame_height, -1);
@@ -881,8 +896,8 @@ HandlePropertyNotify(void)
Tmp_win->icon_w = Tmp_win->wmhints->icon_window;
XSelectInput (dpy, Tmp_win->icon_w,
KeyPressMask | ButtonPressMask | ButtonReleaseMask);
- XSaveContext(dpy, Tmp_win->icon_w, TwmContext, (caddr_t)Tmp_win);
- XSaveContext(dpy, Tmp_win->icon_w, ScreenContext, (caddr_t)Scr);
+ XSaveContext(dpy, Tmp_win->icon_w, TwmContext, (XPointer)Tmp_win);
+ XSaveContext(dpy, Tmp_win->icon_w, ScreenContext, (XPointer)Scr);
XDefineCursor(dpy, Tmp_win->icon_w, Scr->IconCursor);
}
}
@@ -895,13 +910,13 @@ HandlePropertyNotify(void)
return;
}
- pm = XCreatePixmap (dpy, Scr->Root, Tmp_win->icon_width,
- Tmp_win->icon_height, Scr->d_depth);
+ pm = XCreatePixmap (dpy, Scr->Root, (unsigned)Tmp_win->icon_width,
+ (unsigned)Tmp_win->icon_height, (unsigned)Scr->d_depth);
FB(Tmp_win->iconc.fore, Tmp_win->iconc.back);
XCopyPlane(dpy, Tmp_win->wmhints->icon_pixmap, pm,
Scr->NormalGC,
- 0,0, Tmp_win->icon_width, Tmp_win->icon_height, 0, 0, 1 );
+ 0,0, (unsigned)Tmp_win->icon_width, (unsigned)Tmp_win->icon_height, 0, 0, 1 );
valuemask = CWBackPixmap;
attributes.background_pixmap = pm;
@@ -964,7 +979,7 @@ RedoIconName(void)
return;
Tmp_win->icon_w_width = MyFont_TextWidth(&Scr->IconFont,
- Tmp_win->icon_name, strlen(Tmp_win->icon_name));
+ Tmp_win->icon_name, (int)strlen(Tmp_win->icon_name));
Tmp_win->icon_w_width += 6;
if (Tmp_win->icon_w_width < Tmp_win->icon_width)
@@ -988,8 +1003,8 @@ RedoIconName(void)
Tmp_win->icon_w_height = Tmp_win->icon_height + Scr->IconFont.height + 4;
Tmp_win->icon_y = Tmp_win->icon_height + Scr->IconFont.height;
- XResizeWindow(dpy, Tmp_win->icon_w, Tmp_win->icon_w_width,
- Tmp_win->icon_w_height);
+ XResizeWindow(dpy, Tmp_win->icon_w, (unsigned)Tmp_win->icon_w_width,
+ (unsigned)Tmp_win->icon_w_height);
if (Tmp_win->icon_bm_w)
{
XMoveWindow(dpy, Tmp_win->icon_bm_w, x, y);
@@ -1063,7 +1078,7 @@ HandleExpose(void)
{
MyFont_DrawString(dpy, Scr->InfoWindow, &Scr->DefaultFont,
Scr->NormalGC, 5, (i*height) + Scr->DefaultFont.y, Info[i],
- strlen(Info[i]));
+ (int)strlen(Info[i]));
}
flush_expose (Event.xany.window);
}
@@ -1076,7 +1091,7 @@ HandleExpose(void)
MyFont_DrawString (dpy, Tmp_win->title_w, &Scr->TitleBarFont,
Scr->NormalGC, Scr->TBInfo.titlex, Scr->TitleBarFont.y,
- Tmp_win->name, strlen(Tmp_win->name));
+ Tmp_win->name, (int)strlen(Tmp_win->name));
flush_expose (Event.xany.window);
}
else if (Event.xany.window == Tmp_win->icon_w)
@@ -1086,7 +1101,7 @@ HandleExpose(void)
MyFont_DrawString (dpy, Tmp_win->icon_w, &Scr->IconFont,
Scr->NormalGC, Tmp_win->icon_x, Tmp_win->icon_y,
- Tmp_win->icon_name, strlen(Tmp_win->icon_name));
+ Tmp_win->icon_name, (int)strlen(Tmp_win->icon_name));
flush_expose (Event.xany.window);
return;
} else if (Tmp_win->titlebuttons) {
@@ -1116,7 +1131,7 @@ HandleExpose(void)
MyFont_DrawString (dpy, Event.xany.window,
&Scr->IconManagerFont, Scr->NormalGC,
iconmgr_textx, Scr->IconManagerFont.y+4,
- Tmp_win->icon_name, strlen(Tmp_win->icon_name));
+ Tmp_win->icon_name, (int)strlen(Tmp_win->icon_name));
DrawIconManagerBorder(Tmp_win->list);
flush_expose (Event.xany.window);
return;
@@ -1126,7 +1141,7 @@ HandleExpose(void)
FB(Tmp_win->list->fore, Tmp_win->list->back);
XCopyPlane(dpy, Scr->siconifyPm, Tmp_win->list->icon,
Scr->NormalGC,
- 0,0, iconifybox_width, iconifybox_height, 0, 0, 1);
+ 0,0, (unsigned)iconifybox_width, (unsigned)iconifybox_height, 0, 0, 1);
flush_expose (Event.xany.window);
return;
}
@@ -1336,7 +1351,7 @@ HandleMapRequest(void)
zoom_save = Scr->DoZoom;
Scr->DoZoom = FALSE;
Iconify(Tmp_win, 0, 0);
- Scr->DoZoom = zoom_save;
+ Scr->DoZoom = (short)zoom_save;
break;
}
}
@@ -1443,7 +1458,7 @@ HandleUnmapNotify(void)
if (reparented) {
if (Tmp_win->old_bw) XSetWindowBorderWidth (dpy,
Event.xunmap.window,
- Tmp_win->old_bw);
+ (unsigned)Tmp_win->old_bw);
if (Tmp_win->wmhints && (Tmp_win->wmhints->flags & IconWindowHint))
XUnmapWindow (dpy, Tmp_win->wmhints->icon_window);
} else {
@@ -1635,11 +1650,11 @@ HandleButtonRelease(void)
mask = (Button1Mask|Button2Mask|Button3Mask|Button4Mask|Button5Mask);
switch (Event.xbutton.button)
{
- case Button1: mask &= ~Button1Mask; break;
- case Button2: mask &= ~Button2Mask; break;
- case Button3: mask &= ~Button3Mask; break;
- case Button4: mask &= ~Button4Mask; break;
- case Button5: mask &= ~Button5Mask; break;
+ case Button1: mask &= (unsigned)(~Button1Mask); break;
+ case Button2: mask &= (unsigned)(~Button2Mask); break;
+ case Button3: mask &= (unsigned)(~Button3Mask); break;
+ case Button4: mask &= (unsigned)(~Button4Mask); break;
+ case Button5: mask &= (unsigned)(~Button5Mask); break;
}
if (RootFunction != 0 ||
@@ -1755,7 +1770,7 @@ HandleButtonPress(void)
return;
}
else
- ButtonPressed = Event.xbutton.button;
+ ButtonPressed = (int)Event.xbutton.button;
if (ResizeWindow != None ||
DragWindow != None ||
@@ -1958,7 +1973,7 @@ typedef struct HENScanArgs {
} HENScanArgs;
static Bool
-HENQueueScanner(Display *dpy, XEvent *ev, char *args)
+HENQueueScanner(Display *dpy2 _X_UNUSED, XEvent *ev, char *args)
{
if (ev->type == LeaveNotify) {
if (ev->xcrossing.window == ((HENScanArgs *) args)->w &&
@@ -2155,7 +2170,7 @@ typedef struct HLNScanArgs {
} HLNScanArgs;
static Bool
-HLNQueueScanner(Display *dpy, XEvent *ev, char *args)
+HLNQueueScanner(Display *dpy2 _X_UNUSED, XEvent *ev, char *args)
{
if (ev->type == EnterNotify && ev->xcrossing.mode != NotifyGrab) {
((HLNScanArgs *) args)->enters = True;
@@ -2297,7 +2312,7 @@ HandleConfigureRequest(void)
xwc.width = cre->width;
xwc.height = cre->height;
xwc.border_width = cre->border_width;
- XConfigureWindow(dpy, Event.xany.window, xwcm, &xwc);
+ XConfigureWindow(dpy, Event.xany.window, (unsigned)xwcm, &xwc);
return;
}
@@ -2393,12 +2408,37 @@ HandleShapeNotify (void)
XShapeCombineMask (dpy, Tmp_win->frame, ShapeClip, 0, 0, None,
ShapeSet);
}
- Tmp_win->wShaped = sev->shaped;
+ Tmp_win->wShaped = (short)sev->shaped;
SetFrameShape (Tmp_win);
}
+#ifdef HAVE_XRANDR
+/**
+ * xrandr screen configuration change-notification handler
+ */
+void
+HandleScreenChangeNotify (void)
+{
+ XRRScreenChangeNotifyEvent *xev = (XRRScreenChangeNotifyEvent *) &Event;
+ int scrnum;
+
+ for (scrnum = 0; scrnum < NumScreens; scrnum++)
+ {
+ if ( ScreenList[scrnum]->Root == xev->root )
+ {
+ ScreenList[scrnum]->MyDisplayWidth = xev->width;
+ ScreenList[scrnum]->MyDisplayHeight = xev->height;
+ }
+ }
+
+ XRRUpdateConfiguration(&Event);
+}
+#endif
+
+
+
/**
* unknown event handler
*/
@@ -2600,7 +2640,7 @@ InstallRootColormap(void)
static Bool
-UninstallRootColormapQScanner(Display *dpy, XEvent *ev, char *args)
+UninstallRootColormapQScanner(Display *dpy2 _X_UNUSED, XEvent *ev, char *args)
{
if (!*args) {
if (ev->type == EnterNotify) {
diff --git a/src/events.h b/src/events.h
index e6bcfc9..f554642 100644
--- a/src/events.h
+++ b/src/events.h
@@ -97,6 +97,7 @@ extern void HandleEnterNotify ( void );
extern void HandleLeaveNotify ( void );
extern void HandleConfigureRequest ( void );
extern void HandleShapeNotify ( void );
+extern void HandleScreenChangeNotify ( void );
extern void HandleUnknown ( void );
extern int Transient ( Window w, Window *propw );
extern ScreenInfo * FindScreenInfo ( Window w );
diff --git a/src/gram.y b/src/gram.y
index ca40d1c..d55ae91 100644
--- a/src/gram.y
+++ b/src/gram.y
@@ -78,8 +78,9 @@ in this Software without prior written authorization from The Open Group.
#include <X11/Xos.h>
#include <X11/Xmu/CharSet.h>
-static char *Action = "";
-static char *Name = "";
+static char empty[1];
+static char *Action = empty;
+static char *Name = empty;
static MenuRoot *root, *pull = NULL;
static MenuRoot *GetRoot ( const char *name, const char *fore, const char *back );
@@ -159,7 +160,7 @@ stmt : error
| ZOOM number { if (Scr->FirstTime)
{
Scr->DoZoom = TRUE;
- Scr->ZoomCount = $2;
+ Scr->ZoomCount = (short)$2;
}
}
| ZOOM { if (Scr->FirstTime)
@@ -193,7 +194,7 @@ stmt : error
AddToMenu(root,"x",Action,
NULL,$2,NULLSTR,NULLSTR);
}
- Action = "";
+ Action = empty;
pull = NULL;
}
| string fullkey { GotKey($1, $2); }
@@ -259,7 +260,7 @@ stmt : error
AddToMenu(root,"x",Action,
NULL,$2, NULLSTR, NULLSTR);
}
- Action = "";
+ Action = empty;
pull = NULL;
}
| WINDOW_FUNCTION action { Scr->WindowFunction.func = $2;
@@ -267,7 +268,7 @@ stmt : error
Scr->WindowFunction.item =
AddToMenu(root,"x",Action,
NULL,$2, NULLSTR, NULLSTR);
- Action = "";
+ Action = empty;
pull = NULL;
}
| WARP_CURSOR { list = &Scr->WarpCursorL; }
@@ -567,9 +568,9 @@ function_entries: /* Empty */
| function_entries function_entry
;
-function_entry : action { AddToMenu(root, "", Action, NULL, $1,
+function_entry : action { AddToMenu(root, empty, Action, NULL, $1,
NULLSTR, NULLSTR);
- Action = "";
+ Action = empty;
}
;
@@ -582,13 +583,13 @@ menu_entries : /* Empty */
menu_entry : string action { AddToMenu(root, $1, Action, pull, $2,
NULLSTR, NULLSTR);
- Action = "";
+ Action = empty;
pull = NULL;
}
| string LP string COLON string RP action {
AddToMenu(root, $1, Action, pull, $7,
$3, $5);
- Action = "";
+ Action = empty;
pull = NULL;
}
;
@@ -716,7 +717,7 @@ RemoveDQuote(char *str)
n = (n<<3) + (*i++ - '0');
count++;
}
- *o = n;
+ *o = (char)n;
break;
hex:
case 'x':
@@ -733,7 +734,7 @@ RemoveDQuote(char *str)
else
break;
}
- *o = n;
+ *o = (char)n;
break;
case '\n':
i++; /* punt */
@@ -769,7 +770,7 @@ static MenuRoot *GetRoot(const char *name, const char* fore, const char *back)
Scr->FirstTime = TRUE;
GetColor(COLOR, &tmp->hi_fore, fore);
GetColor(COLOR, &tmp->hi_back, back);
- Scr->FirstTime = save;
+ Scr->FirstTime = (short)save;
}
return tmp;
@@ -797,10 +798,10 @@ static void GotButton(int butt, int func)
NULL, func, NULLSTR, NULLSTR);
}
}
- Action = "";
+ Action = empty;
pull = NULL;
cont = 0;
- mods_used |= mods;
+ mods_used |= (unsigned)mods;
mods = 0;
}
@@ -816,10 +817,10 @@ static void GotKey(char *key, int func)
break;
}
- Action = "";
+ Action = empty;
pull = NULL;
cont = 0;
- mods_used |= mods;
+ mods_used |= (unsigned)mods;
mods = 0;
}
@@ -832,7 +833,7 @@ static void GotTitleButton (char *bitmapname, int func, Bool rightside)
"unable to create %s titlebutton \"%s\"\n",
rightside ? "right" : "left", bitmapname);
}
- Action = "";
+ Action = empty;
pull = NULL;
}
diff --git a/src/iconmgr.c b/src/iconmgr.c
index ca7b307..80457a1 100644
--- a/src/iconmgr.c
+++ b/src/iconmgr.c
@@ -90,7 +90,7 @@ CreateIconManagers(void)
&background);
p->w = XCreateSimpleWindow(dpy, Scr->Root,
- JunkX, JunkY, p->width, p->height, 1,
+ JunkX, JunkY, (unsigned)p->width, (unsigned)p->height, 1,
Scr->Black, background);
snprintf(str, sizeof(str), "%s Icon Manager", p->name);
@@ -429,11 +429,11 @@ WList *AddIconManager(TwmWindow *tmp_win)
PackIconManager(ip);
XMapWindow(dpy, tmp->w);
- XSaveContext(dpy, tmp->w, IconManagerContext, (caddr_t) tmp);
- XSaveContext(dpy, tmp->w, TwmContext, (caddr_t) tmp_win);
- XSaveContext(dpy, tmp->w, ScreenContext, (caddr_t) Scr);
- XSaveContext(dpy, tmp->icon, TwmContext, (caddr_t) tmp_win);
- XSaveContext(dpy, tmp->icon, ScreenContext, (caddr_t) Scr);
+ XSaveContext(dpy, tmp->w, IconManagerContext, (XPointer) tmp);
+ XSaveContext(dpy, tmp->w, TwmContext, (XPointer) tmp_win);
+ XSaveContext(dpy, tmp->w, ScreenContext, (XPointer) Scr);
+ XSaveContext(dpy, tmp->icon, TwmContext, (XPointer) tmp_win);
+ XSaveContext(dpy, tmp->icon, ScreenContext, (XPointer) Scr);
tmp_win->list = tmp;
if (!ip->twm_win->icon)
@@ -564,7 +564,7 @@ void DrawIconManagerBorder(WList *tmp)
{
XSetForeground(dpy, Scr->NormalGC, tmp->fore);
XDrawRectangle(dpy, tmp->w, Scr->NormalGC, 2, 2,
- tmp->width-5, tmp->height-5);
+ (unsigned)(tmp->width-5), (unsigned)(tmp->height-5));
if (tmp->active && Scr->Highlight)
XSetForeground(dpy, Scr->NormalGC, tmp->highlight);
@@ -572,9 +572,9 @@ void DrawIconManagerBorder(WList *tmp)
XSetForeground(dpy, Scr->NormalGC, tmp->back);
XDrawRectangle(dpy, tmp->w, Scr->NormalGC, 0, 0,
- tmp->width-1, tmp->height-1);
+ (unsigned)(tmp->width-1), (unsigned)(tmp->height-1));
XDrawRectangle(dpy, tmp->w, Scr->NormalGC, 1, 1,
- tmp->width-3, tmp->height-3);
+ (unsigned)(tmp->width-3), (unsigned)(tmp->height-3));
}
}
@@ -659,7 +659,7 @@ void PackIconManager(IconMgr *ip)
if (tmp->x != new_x || tmp->y != new_y ||
tmp->width != wwidth || tmp->height != wheight)
{
- XMoveResizeWindow(dpy, tmp->w, new_x, new_y, wwidth, wheight);
+ XMoveResizeWindow(dpy, tmp->w, new_x, new_y, (unsigned)wwidth, (unsigned)wheight);
tmp->row = row-1;
tmp->col = col;
@@ -680,7 +680,7 @@ void PackIconManager(IconMgr *ip)
if (newwidth == 0)
newwidth = colinc;
- XResizeWindow(dpy, ip->w, newwidth, ip->height);
+ XResizeWindow(dpy, ip->w, (unsigned)newwidth, (unsigned)ip->height);
savewidth = ip->width;
if (ip->twm_win)
diff --git a/src/icons.c b/src/icons.c
index 617a1f7..a3a6588 100644
--- a/src/icons.c
+++ b/src/icons.c
@@ -378,12 +378,12 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
(unsigned int *) &tmp_win->icon_width, (unsigned int *)&tmp_win->icon_height,
&JunkBW, &JunkDepth);
- pm = XCreatePixmap(dpy, Scr->Root, tmp_win->icon_width,
- tmp_win->icon_height, Scr->d_depth);
+ pm = XCreatePixmap(dpy, Scr->Root, (unsigned)tmp_win->icon_width,
+ (unsigned)tmp_win->icon_height, (unsigned)Scr->d_depth);
/* the copy plane works on color ! */
XCopyPlane(dpy, bm, pm, Scr->NormalGC,
- 0,0, tmp_win->icon_width, tmp_win->icon_height, 0, 0, 1 );
+ 0,0, (unsigned)tmp_win->icon_width, (unsigned)tmp_win->icon_height, 0, 0, 1 );
tmp_win->forced = TRUE;
}
@@ -402,11 +402,11 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
(unsigned int *)&tmp_win->icon_width, (unsigned int *)&tmp_win->icon_height, &JunkBW, &JunkDepth);
pm = XCreatePixmap(dpy, Scr->Root,
- tmp_win->icon_width, tmp_win->icon_height,
- Scr->d_depth);
+ (unsigned)tmp_win->icon_width, (unsigned)tmp_win->icon_height,
+ (unsigned)Scr->d_depth);
XCopyPlane(dpy, tmp_win->wmhints->icon_pixmap, pm, Scr->NormalGC,
- 0,0, tmp_win->icon_width, tmp_win->icon_height, 0, 0, 1 );
+ 0,0, (unsigned)tmp_win->icon_width, (unsigned)tmp_win->icon_height, 0, 0, 1 );
}
/* if we still haven't got an icon, let's look in the Icon list
@@ -438,12 +438,12 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
(unsigned int *)&tmp_win->icon_width, (unsigned int *)&tmp_win->icon_height,
&JunkBW, &JunkDepth);
- pm = XCreatePixmap(dpy, Scr->Root, tmp_win->icon_width,
- tmp_win->icon_height, Scr->d_depth);
+ pm = XCreatePixmap(dpy, Scr->Root, (unsigned)tmp_win->icon_width,
+ (unsigned)tmp_win->icon_height, (unsigned)Scr->d_depth);
/* the copy plane works on color ! */
XCopyPlane(dpy, bm, pm, Scr->NormalGC,
- 0,0, tmp_win->icon_width, tmp_win->icon_height, 0, 0, 1 );
+ 0,0, (unsigned)tmp_win->icon_width, (unsigned)tmp_win->icon_height, 0, 0, 1 );
}
}
@@ -454,12 +454,12 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
tmp_win->icon_width = Scr->UnknownWidth;
tmp_win->icon_height = Scr->UnknownHeight;
- pm = XCreatePixmap(dpy, Scr->Root, tmp_win->icon_width,
- tmp_win->icon_height, Scr->d_depth);
+ pm = XCreatePixmap(dpy, Scr->Root, (unsigned)tmp_win->icon_width,
+ (unsigned)tmp_win->icon_height, (unsigned)Scr->d_depth);
/* the copy plane works on color ! */
XCopyPlane(dpy, Scr->UnknownPm, pm, Scr->NormalGC,
- 0,0, tmp_win->icon_width, tmp_win->icon_height, 0, 0, 1 );
+ 0,0, (unsigned)tmp_win->icon_width, (unsigned)tmp_win->icon_height, 0, 0, 1 );
}
if (pm == None)
@@ -475,7 +475,7 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
}
tmp_win->icon_w_width = MyFont_TextWidth(&Scr->IconFont,
- tmp_win->icon_name, strlen(tmp_win->icon_name));
+ tmp_win->icon_name, (int)strlen(tmp_win->icon_name));
tmp_win->icon_w_width += 6;
if (tmp_win->icon_w_width < tmp_win->icon_width)
@@ -518,14 +518,14 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
{
tmp_win->icon_w = XCreateSimpleWindow(dpy, Scr->Root,
0,0,
- tmp_win->icon_w_width, tmp_win->icon_w_height,
- Scr->IconBorderWidth, tmp_win->icon_border, tmp_win->iconc.back);
+ (unsigned)tmp_win->icon_w_width, (unsigned)tmp_win->icon_w_height,
+ (unsigned)Scr->IconBorderWidth, tmp_win->icon_border, tmp_win->iconc.back);
event_mask = ExposureMask;
}
XSelectInput (dpy, tmp_win->icon_w,
- KeyPressMask | ButtonPressMask | ButtonReleaseMask |
- event_mask);
+ (long)(KeyPressMask | ButtonPressMask | ButtonReleaseMask |
+ event_mask));
tmp_win->icon_bm_w = None;
if (pm != None &&
@@ -574,8 +574,8 @@ CreateIconWindow(TwmWindow *tmp_win, int def_x, int def_y)
tmp_win->iconified = TRUE;
XMapSubwindows(dpy, tmp_win->icon_w);
- XSaveContext(dpy, tmp_win->icon_w, TwmContext, (caddr_t)tmp_win);
- XSaveContext(dpy, tmp_win->icon_w, ScreenContext, (caddr_t)Scr);
+ XSaveContext(dpy, tmp_win->icon_w, TwmContext, (XPointer)tmp_win);
+ XSaveContext(dpy, tmp_win->icon_w, ScreenContext, (XPointer)Scr);
XDefineCursor(dpy, tmp_win->icon_w, Scr->IconCursor);
if (pm) XFreePixmap (dpy, pm);
return;
diff --git a/src/lex.l b/src/lex.l
index 6323250..320d206 100644
--- a/src/lex.l
+++ b/src/lex.l
@@ -82,7 +82,7 @@ static int doinput (char *buf, int size)
if ((c = (*twmInputFunc)()) <= 0)
return (0);
- buf[0] = c;
+ buf[0] = (char)c;
return (1);
}
#define YY_NO_UNPUT
diff --git a/src/list.c b/src/list.c
index 3550716..2fa41d3 100644
--- a/src/list.c
+++ b/src/list.c
@@ -170,7 +170,7 @@ int GetColorFromList(name_list *list_head, const char *name, XClassHint *class,
save = Scr->FirstTime;
Scr->FirstTime = TRUE;
GetColor(Scr->Monochrome, ptr, nptr->ptr);
- Scr->FirstTime = save;
+ Scr->FirstTime = (short)save;
return (TRUE);
}
@@ -182,7 +182,7 @@ int GetColorFromList(name_list *list_head, const char *name, XClassHint *class,
save = Scr->FirstTime;
Scr->FirstTime = TRUE;
GetColor(Scr->Monochrome, ptr, nptr->ptr);
- Scr->FirstTime = save;
+ Scr->FirstTime = (short)save;
return (TRUE);
}
@@ -192,7 +192,7 @@ int GetColorFromList(name_list *list_head, const char *name, XClassHint *class,
save = Scr->FirstTime;
Scr->FirstTime = TRUE;
GetColor(Scr->Monochrome, ptr, nptr->ptr);
- Scr->FirstTime = save;
+ Scr->FirstTime = (short)save;
return (TRUE);
}
}
diff --git a/src/menus.c b/src/menus.c
index 8aa99c7..c446eed 100644
--- a/src/menus.c
+++ b/src/menus.c
@@ -171,12 +171,12 @@ InitMenus(void)
*
* \param name the name of the key
* \param cont the context to look for the key press in
- * \param mods modifier keys that need to be pressed
+ * \param mods2 modifier keys that need to be pressed
* \param func the function to perform
* \param win_name the window name (if any)
* \param action the action string associated with the function (if any)
*/
-Bool AddFuncKey (char *name, int cont, int mods, int func, char *win_name,
+Bool AddFuncKey (char *name, int cont, int mods2, int func, char *win_name,
char *action)
{
FuncKey *tmp;
@@ -198,7 +198,7 @@ Bool AddFuncKey (char *name, int cont, int mods, int func, char *win_name,
{
if (tmp->keysym == keysym &&
tmp->cont == cont &&
- tmp->mods == mods)
+ tmp->mods == mods2)
break;
}
@@ -213,7 +213,7 @@ Bool AddFuncKey (char *name, int cont, int mods, int func, char *win_name,
tmp->keysym = keysym;
tmp->keycode = keycode;
tmp->cont = cont;
- tmp->mods = mods;
+ tmp->mods = mods2;
tmp->func = func;
tmp->win_name = win_name;
tmp->action = action;
@@ -342,18 +342,18 @@ void InitTitlebarButtons (void)
}
}
- tb->dstx = (h - tb->width + 1) / 2;
+ tb->dstx = (int)(((unsigned)h - tb->width + 1) / 2);
if (tb->dstx < 0) { /* clip to minimize copying */
tb->srcx = -(tb->dstx);
- tb->width = h;
+ tb->width = (unsigned)h;
tb->dstx = 0;
} else {
tb->srcx = 0;
}
- tb->dsty = (h - tb->height + 1) / 2;
+ tb->dsty = (int)(((unsigned)h - tb->height + 1) / 2);
if (tb->dsty < 0) {
tb->srcy = -(tb->dsty);
- tb->height = h;
+ tb->height = (unsigned)h;
tb->dsty = 0;
} else {
tb->srcy = 0;
@@ -385,7 +385,7 @@ PaintEntry(MenuRoot *mr, MenuItem *mi, int exposure)
XSetForeground(dpy, Scr->NormalGC, mi->hi_back);
XFillRectangle(dpy, mr->w, Scr->NormalGC, 0, y_offset,
- mr->width, Scr->EntryHeight);
+ (unsigned)mr->width, (unsigned)Scr->EntryHeight);
MyFont_ChangeGC(mi->hi_fore, mi->hi_back, &Scr->MenuFont);
@@ -401,7 +401,7 @@ PaintEntry(MenuRoot *mr, MenuItem *mi, int exposure)
XSetForeground(dpy, Scr->NormalGC, mi->back);
XFillRectangle(dpy, mr->w, Scr->NormalGC, 0, y_offset,
- mr->width, Scr->EntryHeight);
+ (unsigned)mr->width, (unsigned)Scr->EntryHeight);
MyFont_ChangeGC(mi->fore, mi->back, &Scr->MenuFont);
gc = Scr->NormalGC;
@@ -422,8 +422,8 @@ PaintEntry(MenuRoot *mr, MenuItem *mi, int exposure)
Scr->pullPm = CreateMenuIcon (Scr->MenuFont.height,
&Scr->pullW, &Scr->pullH);
}
- x = mr->width - Scr->pullW - 5;
- y = y_offset + ((Scr->MenuFont.height - Scr->pullH) / 2);
+ x = (int)((unsigned)mr->width - (Scr->pullW + 5));
+ y = (int)((unsigned)y_offset + (((unsigned)Scr->MenuFont.height - Scr->pullH) / 2));
XCopyPlane(dpy, Scr->pullPm, mr->w, gc, 0, 0,
Scr->pullW, Scr->pullH, x, y, 1);
}
@@ -436,7 +436,7 @@ PaintEntry(MenuRoot *mr, MenuItem *mi, int exposure)
/* fill the rectangle with the title background color */
XFillRectangle(dpy, mr->w, Scr->NormalGC, 0, y_offset,
- mr->width, Scr->EntryHeight);
+ (unsigned)mr->width, (unsigned)Scr->EntryHeight);
{
XSetForeground(dpy, Scr->NormalGC, mi->fore);
@@ -713,19 +713,19 @@ AddToMenu(MenuRoot *menu, const char *item, const char *action,
menu->last = tmp;
tmp->item = item;
- tmp->strlen = strlen(item);
+ tmp->strlen = (short)strlen(item);
tmp->action = action;
tmp->next = NULL;
tmp->sub = NULL;
tmp->state = 0;
- tmp->func = func;
+ tmp->func = (short)func;
if (!Scr->HaveFonts) CreateFonts();
width = MyFont_TextWidth(&Scr->MenuFont, item, tmp->strlen);
if (width <= 0)
width = 1;
if (width > menu->width)
- menu->width = width;
+ menu->width = (short)width;
tmp->user_colors = FALSE;
if (Scr->Monochrome == COLOR && fore != NULL)
@@ -736,7 +736,7 @@ AddToMenu(MenuRoot *menu, const char *item, const char *action,
Scr->FirstTime = TRUE;
GetColor(COLOR, &tmp->fore, fore);
GetColor(COLOR, &tmp->back, back);
- Scr->FirstTime = save;
+ Scr->FirstTime = (short)save;
tmp->user_colors = TRUE;
}
if (sub != NULL)
@@ -787,7 +787,7 @@ MakeMenu(MenuRoot *mr)
{
if (mr->pull == TRUE)
{
- mr->width += 16 + 10;
+ mr->width = (short)(mr->width + (16 + 10));
}
width = mr->width + 10;
@@ -798,13 +798,13 @@ MakeMenu(MenuRoot *mr)
cur->x = 5;
else
{
- cur->x = width - MyFont_TextWidth(&Scr->MenuFont, cur->item,
- cur->strlen);
+ cur->x = (short)(width - MyFont_TextWidth(&Scr->MenuFont, cur->item,
+ cur->strlen));
cur->x /= 2;
}
}
- mr->height = mr->items * Scr->EntryHeight;
- mr->width += 10;
+ mr->height = (short)(mr->items * Scr->EntryHeight);
+ mr->width = (short)(mr->width + 10);
if (Scr->Shadow)
{
@@ -849,8 +849,8 @@ MakeMenu(MenuRoot *mr)
valuemask, &attributes);
- XSaveContext(dpy, mr->w, MenuContext, (caddr_t)mr);
- XSaveContext(dpy, mr->w, ScreenContext, (caddr_t)Scr);
+ XSaveContext(dpy, mr->w, MenuContext, (XPointer)mr);
+ XSaveContext(dpy, mr->w, ScreenContext, (XPointer)Scr);
mr->mapped = UNMAPPED;
}
@@ -932,14 +932,15 @@ MakeMenu(MenuRoot *mr)
num -= 1;
for (i = 0, cur = start->next; i < num && cur; i++, cur = cur->next)
{
- f3.red += fred;
- f3.green += fgreen;
- f3.blue += fblue;
+#define AddColor(target,source) target = (unsigned short)(target + source)
+ AddColor(f3.red, fred);
+ AddColor(f3.green, fgreen);
+ AddColor(f3.blue, fblue);
save_fore = f3;
- b3.red += bred;
- b3.green += bgreen;
- b3.blue += bblue;
+ AddColor(b3.red, bred);
+ AddColor(b3.green, bgreen);
+ AddColor(b3.blue, bblue);
save_back = b3;
XAllocColor(dpy, cmap, &f3);
@@ -999,7 +1000,7 @@ PopUpMenu (MenuRoot *menu, int x, int y, Bool center)
WindowNameCount++;
if (WindowNameCount != 0)
{
- WindowNames = malloc(sizeof(TwmWindow *) * WindowNameCount);
+ WindowNames = malloc(sizeof(TwmWindow *) * (size_t)WindowNameCount);
WindowNames[0] = Scr->TwmRoot.next;
for(tmp_win = Scr->TwmRoot.next->next , WindowNameCount=1;
tmp_win != NULL;
@@ -1228,7 +1229,7 @@ resizeFromCenter(Window w, TwmWindow *tmp_win)
if (event.type == ButtonPress)
{
MenuEndResize(tmp_win);
- XMoveResizeWindow(dpy, w, AddingX, AddingY, AddingW, AddingH);
+ XMoveResizeWindow(dpy, w, AddingX, AddingY, (unsigned)AddingW, (unsigned)AddingH);
break;
}
@@ -1402,7 +1403,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
else
Bell(XkbBI_Info,0,tmp_win->w);
- Scr->SortIconMgr = save_sort;
+ Scr->SortIconMgr = (short)save_sort;
}
break;
@@ -1576,16 +1577,16 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
* in case of stupid or wicked fast servers
*/
if (ConstrainedMoveTime &&
- (eventp->xbutton.time - last_time) < ConstrainedMoveTime)
+ (eventp->xbutton.time - last_time) < (Time)ConstrainedMoveTime)
{
int width, height;
ConstMove = TRUE;
ConstMoveDir = MOVE_NONE;
- ConstMoveX = eventp->xbutton.x_root - DragX - JunkBW;
- ConstMoveY = eventp->xbutton.y_root - DragY - JunkBW;
- width = DragWidth + 2 * JunkBW;
- height = DragHeight + 2 * JunkBW;
+ ConstMoveX = (int)((unsigned)eventp->xbutton.x_root - (unsigned)DragX - JunkBW);
+ ConstMoveY = (int)((unsigned)eventp->xbutton.y_root - (unsigned)DragY - JunkBW);
+ width = (int)((unsigned)DragWidth + 2 * JunkBW);
+ height = (int)((unsigned)DragHeight + 2 * JunkBW);
ConstMoveXL = ConstMoveX + width/3;
ConstMoveXR = ConstMoveX + 2*(width/3);
ConstMoveYT = ConstMoveY + height/3;
@@ -1611,8 +1612,10 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
* MoveOutline's below.
*/
MoveOutline(rootw,
- origDragX - JunkBW, origDragY - JunkBW,
- DragWidth + 2 * JunkBW, DragHeight + 2 * JunkBW,
+ (int)((unsigned)origDragX - JunkBW),
+ (int)((unsigned)origDragY - JunkBW),
+ (int)((unsigned)DragWidth + 2 * JunkBW),
+ (int)((unsigned)DragHeight + 2 * JunkBW),
tmp_win->frame_bw,
moving_icon ? 0 : tmp_win->title_height);
/*
@@ -1692,7 +1695,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
WindowMoved = FALSE;
if (!Scr->OpaqueMove)
UninstallRootColormap();
- return TRUE; /* XXX should this be FALSE? */
+ return TRUE; /* XXX should this be FALSE? */
}
if (Event.type == releaseEvent)
{
@@ -1745,32 +1748,32 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
break;
case MOVE_VERT:
- ConstMoveY = eventp->xmotion.y_root - DragY - JunkBW;
+ ConstMoveY = (int)((unsigned)eventp->xmotion.y_root - (unsigned)DragY - JunkBW);
break;
case MOVE_HORIZ:
- ConstMoveX= eventp->xmotion.x_root - DragX - JunkBW;
+ ConstMoveX= (int)((unsigned)eventp->xmotion.x_root - (unsigned)DragX - JunkBW);
break;
}
if (ConstMoveDir != MOVE_NONE)
{
- int xl, yt, xr, yb, w, h;
+ int xl, yt, xr, yb, w2, h;
xl = ConstMoveX;
yt = ConstMoveY;
- w = DragWidth + 2 * JunkBW;
- h = DragHeight + 2 * JunkBW;
+ w2 = (int)((unsigned)DragWidth + 2 * JunkBW);
+ h = (int)((unsigned)DragHeight + 2 * JunkBW);
if (Scr->DontMoveOff && MoveFunction != F_FORCEMOVE)
{
- xr = xl + w;
+ xr = xl + w2;
yb = yt + h;
if (xl < 0)
xl = 0;
if (xr > Scr->MyDisplayWidth)
- xl = Scr->MyDisplayWidth - w;
+ xl = Scr->MyDisplayWidth - w2;
if (yt < 0)
yt = 0;
@@ -1782,34 +1785,34 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
if (Scr->OpaqueMove)
XMoveWindow(dpy, DragWindow, xl, yt);
else
- MoveOutline(eventp->xmotion.root, xl, yt, w, h,
+ MoveOutline(eventp->xmotion.root, xl, yt, w2, h,
tmp_win->frame_bw,
moving_icon ? 0 : tmp_win->title_height);
}
}
else if (DragWindow != None)
{
- int xl, yt, xr, yb, w, h;
+ int xl, yt, xr, yb, w2, h;
if (!menuFromFrameOrWindowOrTitlebar) {
- xl = eventp->xmotion.x_root - DragX - JunkBW;
- yt = eventp->xmotion.y_root - DragY - JunkBW;
+ xl = (int)((unsigned)eventp->xmotion.x_root - (unsigned)DragX - JunkBW);
+ yt = (int)((unsigned)eventp->xmotion.y_root - (unsigned)DragY - JunkBW);
}
else {
- xl = eventp->xmotion.x_root - (DragWidth / 2);
- yt = eventp->xmotion.y_root - (DragHeight / 2);
+ xl = (int)(eventp->xmotion.x_root - (DragWidth / 2));
+ yt = (int)(eventp->xmotion.y_root - (DragHeight / 2));
}
- w = DragWidth + 2 * JunkBW;
- h = DragHeight + 2 * JunkBW;
+ w2 = (int)((unsigned)DragWidth + 2 * JunkBW);
+ h = (int)((unsigned)DragHeight + 2 * JunkBW);
if (Scr->DontMoveOff && MoveFunction != F_FORCEMOVE)
{
- xr = xl + w;
+ xr = xl + w2;
yb = yt + h;
if (xl < 0)
xl = 0;
if (xr > Scr->MyDisplayWidth)
- xl = Scr->MyDisplayWidth - w;
+ xl = Scr->MyDisplayWidth - w2;
if (yt < 0)
yt = 0;
@@ -1822,7 +1825,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
if (Scr->OpaqueMove)
XMoveWindow(dpy, DragWindow, xl, yt);
else
- MoveOutline(eventp->xmotion.root, xl, yt, w, h,
+ MoveOutline(eventp->xmotion.root, xl, yt, w2, h,
tmp_win->frame_bw,
moving_icon ? 0 : tmp_win->title_height);
}
@@ -2000,7 +2003,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
case F_CUT:
strlcpy(tmp, action, sizeof(tmp));
strlcat(tmp, "\n", sizeof(tmp));
- XStoreBytes(dpy, tmp, strlen(tmp));
+ XStoreBytes(dpy, tmp, (int)strlen(tmp));
break;
case F_CUTFILE:
@@ -2012,7 +2015,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
if (ptr) {
fd = open (ptr, O_RDONLY);
if (fd >= 0) {
- count = read (fd, buff, MAX_FILE_SIZE - 1);
+ count = (int)read (fd, buff, MAX_FILE_SIZE - 1);
if (count > 0) XStoreBytes (dpy, buff, count);
close(fd);
} else {
@@ -2095,20 +2098,20 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
register TwmWindow *t;
int len;
- len = strlen(action);
+ len = (int)strlen(action);
for (t = Scr->TwmRoot.next; t != NULL; t = t->next) {
- if (!strncmp(action, t->name, len))
+ if (!strncmp(action, t->name, (size_t)len))
if (WarpThere(t)) break;
}
if (!t) {
for (t = Scr->TwmRoot.next; t != NULL; t = t->next) {
- if (!strncmp(action, t->class.res_name, len))
+ if (!strncmp(action, t->class.res_name, (size_t)len))
if (WarpThere(t)) break;
}
if (!t) {
for (t = Scr->TwmRoot.next; t != NULL; t = t->next) {
- if (!strncmp(action, t->class.res_class, len))
+ if (!strncmp(action, t->class.res_class, (size_t)len))
if (WarpThere(t)) break;
}
}
@@ -2125,7 +2128,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
int len;
Window raisewin = None, iconwin = None;
- len = strlen(action);
+ len = (int)strlen(action);
if (len == 0) {
if (tmp_win && tmp_win->list) {
raisewin = tmp_win->list->iconmgr->twm_win->frame;
@@ -2136,7 +2139,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
}
} else {
for (t = Scr->TwmRoot.next; t != NULL; t = t->next) {
- if (strncmp (action, t->icon_name, len) == 0) {
+ if (strncmp (action, t->icon_name, (size_t)len) == 0) {
if (t->list && t->list->iconmgr->twm_win->mapped) {
raisewin = t->list->iconmgr->twm_win->frame;
iconwin = t->list->icon;
@@ -2175,7 +2178,7 @@ ExecuteFunction(int func, const char *action, Window w, TwmWindow *tmp_win,
fd = open(ptr, O_RDONLY);
if (fd >= 0)
{
- count = read(fd, buff, MAX_FILE_SIZE - 1);
+ count = (int)read(fd, buff, MAX_FILE_SIZE - 1);
if (count > 0)
XStoreBytes(dpy, buff, count);
@@ -2505,7 +2508,7 @@ Iconify(TwmWindow *tmp_win, int def_x, int def_y)
XMapWindow(dpy, tmp_win->list->icon);
XGetWindowAttributes(dpy, tmp_win->w, &winattrs);
- eventMask = winattrs.your_event_mask;
+ eventMask = (unsigned long)winattrs.your_event_mask;
/* iconify transients first */
for (t = Scr->TwmRoot.next; t != NULL; t = t->next)
@@ -2525,9 +2528,9 @@ Iconify(TwmWindow *tmp_win, int def_x, int def_y)
* cause a transition to the Withdrawn state.
*/
t->mapped = FALSE;
- XSelectInput(dpy, t->w, eventMask & ~StructureNotifyMask);
+ XSelectInput(dpy, t->w, (long)(eventMask & (unsigned long)(~StructureNotifyMask)));
XUnmapWindow(dpy, t->w);
- XSelectInput(dpy, t->w, eventMask);
+ XSelectInput(dpy, t->w, (long)eventMask);
XUnmapWindow(dpy, t->frame);
if (t->icon_w)
XUnmapWindow(dpy, t->icon_w);
@@ -2553,9 +2556,9 @@ Iconify(TwmWindow *tmp_win, int def_x, int def_y)
* cause a transition to the Withdrawn state.
*/
tmp_win->mapped = FALSE;
- XSelectInput(dpy, tmp_win->w, eventMask & ~StructureNotifyMask);
+ XSelectInput(dpy, tmp_win->w, (long)(eventMask & (unsigned long)(~StructureNotifyMask)));
XUnmapWindow(dpy, tmp_win->w);
- XSelectInput(dpy, tmp_win->w, eventMask);
+ XSelectInput(dpy, tmp_win->w, (long)eventMask);
XUnmapWindow(dpy, tmp_win->frame);
SetMapStateProp(tmp_win, IconicState);
@@ -2623,7 +2626,7 @@ Identify (TwmWindow *t)
for (i = 0; i < n; i++)
{
twidth = MyFont_TextWidth(&Scr->DefaultFont, Info[i],
- strlen(Info[i]));
+ (int)strlen(Info[i]));
if (twidth > width)
width = twidth;
}
@@ -2643,7 +2646,7 @@ Identify (TwmWindow *t)
} else {
px = py = 0;
}
- XMoveResizeWindow(dpy, Scr->InfoWindow, px, py, width, height);
+ XMoveResizeWindow(dpy, Scr->InfoWindow, px, py, (unsigned)width, (unsigned)height);
XMapRaised(dpy, Scr->InfoWindow);
InfoLines = n;
}
@@ -2743,7 +2746,7 @@ BumpWindowColormap (TwmWindow *tmp, int inc)
if (!tmp) return;
if (inc && tmp->cmaps.number_cwins > 0) {
- cwins = malloc(sizeof(ColormapWindow *) * tmp->cmaps.number_cwins);
+ cwins = malloc(sizeof(ColormapWindow *) * (size_t)tmp->cmaps.number_cwins);
if (cwins) {
if ((previously_installed =
/* SUPPRESS 560 */(Scr->cmapInfo.cmaps == &tmp->cmaps &&
@@ -2921,8 +2924,8 @@ send_clientmessage (Window w, Atom a, Time timestamp)
ev.window = w;
ev.message_type = _XA_WM_PROTOCOLS;
ev.format = 32;
- ev.data.l[0] = a;
- ev.data.l[1] = timestamp;
+ ev.data.l[0] = (long)a;
+ ev.data.l[1] = (long)timestamp;
XSendEvent (dpy, w, False, 0L, (XEvent *) &ev);
}
diff --git a/src/parse.c b/src/parse.c
index 787e1b1..044e02c 100644
--- a/src/parse.c
+++ b/src/parse.c
@@ -179,7 +179,7 @@ int ParseTwmrc (char *filename)
if (!filename) {
home = getenv ("HOME");
if (home) {
- homelen = strlen (home);
+ homelen = (int)strlen (home);
cp = tmpfilename;
(void) snprintf (tmpfilename, sizeof(tmpfilename),
"%s/.twmrc.%d", home, Scr->screen);
@@ -246,7 +246,7 @@ static int twmFileInput(void)
return 0;
ptr = 0;
- len = strlen((char *) buff);
+ len = (int)strlen((char *) buff);
}
return ((int)buff[ptr++]);
}
@@ -261,7 +261,7 @@ static int twmStringListInput(void)
if (currentString) {
unsigned int c = (unsigned int) *currentString++;
- if (c) return c; /* if non-nul char */
+ if (c) return (int)c; /* if non-nul char */
currentString = *++stringListSource; /* advance to next bol */
return '\n'; /* but say that we hit last eol */
}
@@ -276,7 +276,7 @@ static int twmStringListInput(void)
*/
void twmUnput (int c)
{
- if (overflowlen < sizeof overflowbuff) {
+ if ((size_t)overflowlen < sizeof overflowbuff) {
overflowbuff[overflowlen++] = (unsigned char) c;
} else {
twmrc_error_prefix ();
@@ -738,7 +738,7 @@ int do_string_keyword (int keyword, char *s)
fprintf (stderr,
"ignoring invalid UsePPosition argument \"%s\"\n", s);
} else {
- Scr->UsePPosition = ppos;
+ Scr->UsePPosition = (short)ppos;
}
return 1;
}
@@ -772,7 +772,7 @@ int do_string_keyword (int keyword, char *s)
return 1;
case kws_MaxWindowSize:
- JunkMask = XParseGeometry (s, &JunkX, &JunkY, &JunkWidth, &JunkHeight);
+ JunkMask = (unsigned)XParseGeometry (s, &JunkX, &JunkY, &JunkWidth, &JunkHeight);
if ((JunkMask & (WidthValue | HeightValue)) !=
(WidthValue | HeightValue)) {
twmrc_error_prefix();
@@ -784,8 +784,8 @@ int do_string_keyword (int keyword, char *s)
fprintf (stderr, "MaxWindowSize \"%s\" must be positive\n", s);
return 0;
}
- Scr->MaxWindowWidth = JunkWidth;
- Scr->MaxWindowHeight = JunkHeight;
+ Scr->MaxWindowWidth = (int)JunkWidth;
+ Scr->MaxWindowHeight = (int)JunkHeight;
return 1;
}
@@ -801,11 +801,11 @@ int do_number_keyword (int keyword, int num)
return 1;
case kwn_MoveDelta:
- Scr->MoveDelta = num;
+ Scr->MoveDelta = (short)num;
return 1;
case kwn_XorValue:
- if (Scr->FirstTime) Scr->XORvalue = num;
+ if (Scr->FirstTime) Scr->XORvalue = (unsigned long)num;
return 1;
case kwn_FramePadding:
@@ -959,7 +959,7 @@ put_pixel_on_root(Pixel pixel)
&retFormat, &nPixels, &retAfter,
&retProp) == Success) {
pixelProp = (Pixel *) retProp;
- for (i = 0; i < nPixels; i++)
+ for (i = 0; (unsigned long)i < nPixels; i++)
if (pixel == pixelProp[i])
addPixel = 0;
}
diff --git a/src/resize.c b/src/resize.c
index 7cb4aa6..5a93ac5 100644
--- a/src/resize.c
+++ b/src/resize.c
@@ -174,8 +174,8 @@ StartResize(XEvent *evp, TwmWindow *tmp_win, Bool fromtitlebar)
Scr->SizeStringOffset = SIZE_HINDENT;
XResizeWindow (dpy, Scr->SizeWindow,
- Scr->SizeStringWidth + SIZE_HINDENT * 2,
- Scr->SizeFont.height + SIZE_VINDENT * 2);
+ (unsigned)(Scr->SizeStringWidth + SIZE_HINDENT * 2),
+ (unsigned)(Scr->SizeFont.height + SIZE_VINDENT * 2));
XMapRaised(dpy, Scr->SizeWindow);
InstallRootColormap();
last_width = 0;
@@ -208,8 +208,8 @@ MenuStartResize(TwmWindow *tmp_win, int x, int y, int w, int h)
last_height = 0;
Scr->SizeStringOffset = SIZE_HINDENT;
XResizeWindow (dpy, Scr->SizeWindow,
- Scr->SizeStringWidth + SIZE_HINDENT * 2,
- Scr->SizeFont.height + SIZE_VINDENT * 2);
+ (unsigned)(Scr->SizeStringWidth + SIZE_HINDENT * 2),
+ (unsigned)(Scr->SizeFont.height + SIZE_VINDENT * 2));
XMapRaised(dpy, Scr->SizeWindow);
DisplaySize(tmp_win, origWidth, origHeight);
MoveOutline (Scr->Root, dragx - tmp_win->frame_bw,
@@ -536,7 +536,7 @@ EndResize(void)
MoveOutline(Scr->Root, 0, 0, 0, 0, 0, 0);
XUnmapWindow(dpy, Scr->SizeWindow);
- XFindContext(dpy, ResizeWindow, TwmContext, (caddr_t *)&tmp_win);
+ XFindContext(dpy, ResizeWindow, TwmContext, (XPointer *)&tmp_win);
ConstrainSize (tmp_win, &dragWidth, &dragHeight);
@@ -829,7 +829,7 @@ void SetupFrame (TwmWindow *tmp_win, int x, int y, int w, int h, int bw, Bool se
xwcm |= (CWX | CWY | CWBorderWidth);
}
- XConfigureWindow(dpy, tmp_win->title_w, xwcm, &xwc);
+ XConfigureWindow(dpy, tmp_win->title_w, (unsigned)xwcm, &xwc);
}
if (tmp_win->attr.width != w)
@@ -842,7 +842,7 @@ void SetupFrame (TwmWindow *tmp_win, int x, int y, int w, int h, int bw, Bool se
tmp_win->attr.height = h - tmp_win->title_height;
XMoveResizeWindow (dpy, tmp_win->w, 0, tmp_win->title_height,
- w, h - tmp_win->title_height);
+ (unsigned)w, (unsigned)(h - tmp_win->title_height));
/*
* fix up frame and assign size/location values in tmp_win
@@ -857,7 +857,7 @@ void SetupFrame (TwmWindow *tmp_win, int x, int y, int w, int h, int bw, Bool se
frame_wc.width = tmp_win->frame_width = w;
frame_wc.height = tmp_win->frame_height = h;
frame_mask |= (CWX | CWY | CWWidth | CWHeight);
- XConfigureWindow (dpy, tmp_win->frame, frame_mask, &frame_wc);
+ XConfigureWindow (dpy, tmp_win->frame, (unsigned)frame_mask, &frame_wc);
/*
* fix up highlight window
@@ -874,7 +874,7 @@ void SetupFrame (TwmWindow *tmp_win, int x, int y, int w, int h, int bw, Bool se
}
xwcm = CWX | CWWidth;
- XConfigureWindow(dpy, tmp_win->hilite_w, xwcm, &xwc);
+ XConfigureWindow(dpy, tmp_win->hilite_w, (unsigned)xwcm, &xwc);
}
if (HasShape && reShape) {
@@ -941,10 +941,10 @@ fullzoom(TwmWindow *tmp_win, int flag)
tmp_win->save_frame_y = dragy;
tmp_win->save_frame_width = dragWidth;
tmp_win->save_frame_height = dragHeight;
- tmp_win->zoomed = flag;
+ tmp_win->zoomed = (short)flag;
}
else
- tmp_win->zoomed = flag;
+ tmp_win->zoomed = (short)flag;
frame_bw_times_2 = 2*tmp_win->frame_bw;
@@ -1053,25 +1053,25 @@ SetFrameShape (TwmWindow *tmp)
* The frame_width and frame_height do *not* include borders.
*/
/* border */
- newBounding[0].x = tmp->title_x;
- newBounding[0].y = tmp->title_y;
- newBounding[0].width = tmp->title_width + fbw2;
- newBounding[0].height = tmp->title_height;
- newBounding[1].x = -tmp->frame_bw;
- newBounding[1].y = Scr->TitleHeight;
- newBounding[1].width = tmp->attr.width + fbw2;
- newBounding[1].height = tmp->attr.height + fbw2;
+ newBounding[0].x = (short)tmp->title_x;
+ newBounding[0].y = (short)tmp->title_y;
+ newBounding[0].width = (unsigned short)(tmp->title_width + fbw2);
+ newBounding[0].height = (unsigned short)tmp->title_height;
+ newBounding[1].x = (short)-tmp->frame_bw;
+ newBounding[1].y = (short)Scr->TitleHeight;
+ newBounding[1].width = (unsigned short)(tmp->attr.width + fbw2);
+ newBounding[1].height = (unsigned short)(tmp->attr.height + fbw2);
XShapeCombineRectangles (dpy, tmp->frame, ShapeBounding, 0, 0,
newBounding, 2, ShapeSet, YXBanded);
/* insides */
- newClip[0].x = tmp->title_x + tmp->frame_bw;
+ newClip[0].x = (short)(tmp->title_x + tmp->frame_bw);
newClip[0].y = 0;
- newClip[0].width = tmp->title_width;
- newClip[0].height = Scr->TitleHeight;
+ newClip[0].width = (unsigned short)tmp->title_width;
+ newClip[0].height = (unsigned short)Scr->TitleHeight;
newClip[1].x = 0;
- newClip[1].y = tmp->title_height;
- newClip[1].width = tmp->attr.width;
- newClip[1].height = tmp->attr.height;
+ newClip[1].y = (short)tmp->title_height;
+ newClip[1].width = (unsigned short)tmp->attr.width;
+ newClip[1].height = (unsigned short)tmp->attr.height;
XShapeCombineRectangles (dpy, tmp->frame, ShapeClip, 0, 0,
newClip, 2, ShapeSet, YXBanded);
} else {
diff --git a/src/session.c b/src/session.c
index e12a6c0..a908efc 100644
--- a/src/session.c
+++ b/src/session.c
@@ -145,8 +145,8 @@ write_ushort (FILE *file, unsigned short s)
{
unsigned char file_short[2];
- file_short[0] = (s & (unsigned)0xff00) >> 8;
- file_short[1] = s & 0xff;
+ file_short[0] = (unsigned char)((s & (unsigned)0xff00) >> 8);
+ file_short[1] = (unsigned char)(s & 0xff);
if (fwrite ((char *) file_short, (int) sizeof (file_short), 1, file) != 1)
return 0;
return 1;
@@ -158,8 +158,8 @@ write_short (FILE *file, short s)
{
unsigned char file_short[2];
- file_short[0] = (s & (unsigned)0xff00) >> 8;
- file_short[1] = s & 0xff;
+ file_short[0] = (unsigned char)(((unsigned)s & (unsigned)0xff00) >> 8);
+ file_short[1] = (unsigned char)(s & 0xff);
if (fwrite ((char *) file_short, (int) sizeof (file_short), 1, file) != 1)
return 0;
return 1;
@@ -171,7 +171,7 @@ write_counted_string (FILE *file, char *string)
{
if (string)
{
- unsigned char count = strlen (string);
+ unsigned char count = (unsigned char)strlen (string);
if (write_byte (file, count) == 0)
return 0;
@@ -205,7 +205,7 @@ read_ushort (FILE *file, unsigned short *shortp)
if (fread ((char *) file_short, (int) sizeof (file_short), 1, file) != 1)
return 0;
- *shortp = file_short[0] * 256 + file_short[1];
+ *shortp = (unsigned short)(file_short[0] * 256 + file_short[1]);
return 1;
}
@@ -217,7 +217,7 @@ read_short (FILE *file, short *shortp)
if (fread ((char *) file_short, (int) sizeof (file_short), 1, file) != 1)
return 0;
- *shortp = file_short[0] * 256 + file_short[1];
+ *shortp = (short)(file_short[0] * 256 + file_short[1]);
return 1;
}
@@ -335,7 +335,7 @@ WriteWinConfigEntry (FILE *configFile, TwmWindow *theWindow,
}
else
{
- if (!write_byte (configFile, (char) wm_command_count))
+ if (!write_byte (configFile, (unsigned char) wm_command_count))
return 0;
for (i = 0; i < wm_command_count; i++)
if (!write_counted_string (configFile, wm_command[i]))
@@ -426,7 +426,7 @@ ReadWinConfigEntry (FILE *configFile, unsigned short version,
entry->wm_command = NULL;
else
{
- entry->wm_command = malloc (entry->wm_command_count *
+ entry->wm_command = malloc ((size_t)entry->wm_command_count *
sizeof (char *));
if (!entry->wm_command)
@@ -720,7 +720,7 @@ unique_filename (
static void
-SaveYourselfPhase2CB (SmcConn smcConn, SmPointer clientData)
+SaveYourselfPhase2CB (SmcConn smcConn2, SmPointer clientData _X_UNUSED)
{
int scrnum;
ScreenInfo *theScreen;
@@ -744,23 +744,23 @@ SaveYourselfPhase2CB (SmcConn smcConn, SmPointer clientData)
char userId[20];
char hint = SmRestartIfRunning;
- prop1.name = SmProgram;
- prop1.type = SmARRAY8;
+ prop1.name = strdup(SmProgram);
+ prop1.type = strdup(SmARRAY8);
prop1.num_vals = 1;
prop1.vals = &prop1val;
prop1val.value = Argv[0];
- prop1val.length = strlen (Argv[0]);
+ prop1val.length = (int)strlen (Argv[0]);
snprintf (userId, sizeof(userId), "%ld", (long)getuid());
- prop2.name = SmUserID;
- prop2.type = SmARRAY8;
+ prop2.name = strdup(SmUserID);
+ prop2.type = strdup(SmARRAY8);
prop2.num_vals = 1;
prop2.vals = &prop2val;
prop2val.value = (SmPointer) userId;
- prop2val.length = strlen (userId);
+ prop2val.length = (int)strlen (userId);
- prop3.name = SmRestartStyleHint;
- prop3.type = SmCARD8;
+ prop3.name = strdup(SmRestartStyleHint);
+ prop3.type = strdup(SmCARD8);
prop3.num_vals = 1;
prop3.vals = &prop3val;
prop3val.value = (SmPointer) &hint;
@@ -770,7 +770,7 @@ SaveYourselfPhase2CB (SmcConn smcConn, SmPointer clientData)
props[1] = &prop2;
props[2] = &prop3;
- SmcSetProperties (smcConn, 3, props);
+ SmcSetProperties (smcConn2, 3, props);
first_time = 0;
}
@@ -828,10 +828,10 @@ SaveYourselfPhase2CB (SmcConn smcConn, SmPointer clientData)
}
}
- prop1.name = SmRestartCommand;
- prop1.type = SmLISTofARRAY8;
+ prop1.name = strdup(SmRestartCommand);
+ prop1.type = strdup(SmLISTofARRAY8);
- prop1.vals = malloc ((Argc + 4) * sizeof (SmPropValue));
+ prop1.vals = malloc ((size_t)(Argc + 4) * sizeof (SmPropValue));
if (!prop1.vals)
{
@@ -851,40 +851,40 @@ SaveYourselfPhase2CB (SmcConn smcConn, SmPointer clientData)
else
{
prop1.vals[numVals].value = (SmPointer) Argv[i];
- prop1.vals[numVals++].length = strlen (Argv[i]);
+ prop1.vals[numVals++].length = (int)strlen (Argv[i]);
}
}
- prop1.vals[numVals].value = (SmPointer) "-clientId";
+ prop1.vals[numVals].value = strdup("-clientId");
prop1.vals[numVals++].length = 9;
- prop1.vals[numVals].value = (SmPointer) twm_clientId;
- prop1.vals[numVals++].length = strlen (twm_clientId);
+ prop1.vals[numVals].value = strdup(twm_clientId);
+ prop1.vals[numVals++].length = (int)strlen (twm_clientId);
- prop1.vals[numVals].value = (SmPointer) "-restore";
+ prop1.vals[numVals].value = strdup("-restore");
prop1.vals[numVals++].length = 8;
- prop1.vals[numVals].value = (SmPointer) filename;
- prop1.vals[numVals++].length = strlen (filename);
+ prop1.vals[numVals].value = strdup(filename);
+ prop1.vals[numVals++].length = (int)strlen (filename);
prop1.num_vals = numVals;
snprintf (discardCommand, sizeof(discardCommand), "rm %s", filename);
- prop2.name = SmDiscardCommand;
- prop2.type = SmARRAY8;
+ prop2.name = strdup(SmDiscardCommand);
+ prop2.type = strdup(SmARRAY8);
prop2.num_vals = 1;
prop2.vals = &prop2val;
prop2val.value = (SmPointer) discardCommand;
- prop2val.length = strlen (discardCommand);
+ prop2val.length = (int)strlen (discardCommand);
props[0] = &prop1;
props[1] = &prop2;
- SmcSetProperties (smcConn, 2, props);
+ SmcSetProperties (smcConn2, 2, props);
free (prop1.vals);
bad:
- SmcSaveYourselfDone (smcConn, success);
+ SmcSaveYourselfDone (smcConn2, success);
sent_save_done = 1;
if (configFile)
@@ -898,16 +898,16 @@ SaveYourselfPhase2CB (SmcConn smcConn, SmPointer clientData)
static void
SaveYourselfCB (
- SmcConn smcConn,
- SmPointer clientData,
- int saveType,
- Bool shutdown,
- int interactStyle,
- Bool fast)
+ SmcConn smcConn2,
+ SmPointer clientData _X_UNUSED,
+ int saveType _X_UNUSED,
+ Bool shutdown _X_UNUSED,
+ int interactStyle _X_UNUSED,
+ Bool fast _X_UNUSED)
{
- if (!SmcRequestSaveYourselfPhase2 (smcConn, SaveYourselfPhase2CB, NULL))
+ if (!SmcRequestSaveYourselfPhase2 (smcConn2, SaveYourselfPhase2CB, NULL))
{
- SmcSaveYourselfDone (smcConn, False);
+ SmcSaveYourselfDone (smcConn2, False);
sent_save_done = 1;
}
else
@@ -917,9 +917,9 @@ SaveYourselfCB (
static void
-DieCB (SmcConn smcConn, SmPointer clientData)
+DieCB (SmcConn smcConn2, SmPointer clientData _X_UNUSED)
{
- SmcCloseConnection (smcConn, 0, NULL);
+ SmcCloseConnection (smcConn2, 0, NULL);
XtRemoveInput (iceInputId);
Done(NULL, NULL);
}
@@ -927,7 +927,7 @@ DieCB (SmcConn smcConn, SmPointer clientData)
static void
-SaveCompleteCB (SmcConn smcConnm, SmPointer clientData)
+SaveCompleteCB (SmcConn smcConnm _X_UNUSED, SmPointer clientData _X_UNUSED)
{
;
}
@@ -935,11 +935,11 @@ SaveCompleteCB (SmcConn smcConnm, SmPointer clientData)
static void
-ShutdownCancelledCB (SmcConn smcConn, SmPointer clientData)
+ShutdownCancelledCB (SmcConn smcConn2, SmPointer clientData _X_UNUSED)
{
if (!sent_save_done)
{
- SmcSaveYourselfDone (smcConn, False);
+ SmcSaveYourselfDone (smcConn2, False);
sent_save_done = 1;
}
}
@@ -947,7 +947,7 @@ ShutdownCancelledCB (SmcConn smcConn, SmPointer clientData)
static void
-ProcessIceMsgProc (XtPointer client_data, int *source, XtInputId *id)
+ProcessIceMsgProc (XtPointer client_data, int *source _X_UNUSED, XtInputId *id _X_UNUSED)
{
IceConn ice_conn = (IceConn) client_data;
diff --git a/src/twm.c b/src/twm.c
index 1a6ae95..d05d992 100644
--- a/src/twm.c
+++ b/src/twm.c
@@ -82,10 +82,15 @@ in this Software without prior written authorization from The Open Group.
#include <X11/Xmu/Error.h>
#include <X11/extensions/sync.h>
#include <X11/Xlocale.h>
+
#ifdef XPRINT
#include <X11/extensions/Print.h>
#endif /* XPRINT */
+#ifdef HAVE_XRANDR
+#include <X11/extensions/Xrandr.h>
+#endif
+
static void InitVariables ( void );
XtAppContext appContext; /* Xt application context */
@@ -98,6 +103,12 @@ int MultiScreen = TRUE; /* try for more than one screen? */
int NoPrintscreens = False; /* ignore special handling of print screens? */
int NumScreens; /* number of screens in ScreenList */
int HasShape; /* server supports shape extension? */
+
+#ifdef HAVE_XRANDR
+int HasXrandr; /* server supports Xrandr extension? */
+int XrandrEventBase, XrandrErrorBase;
+#endif
+
int ShapeEventBase, ShapeErrorBase;
int HasSync; /* server supports SYNC extension? */
int SyncEventBase, SyncErrorBase;
@@ -320,7 +331,7 @@ main(int argc, char *argv[])
if (Home == NULL)
Home = "./";
- HomeLen = strlen(Home);
+ HomeLen = (int)strlen(Home);
NoClass.res_name = NoName;
NoClass.res_class = NoName;
@@ -349,6 +360,9 @@ main(int argc, char *argv[])
HasShape = XShapeQueryExtension (dpy, &ShapeEventBase, &ShapeErrorBase);
HasSync = XSyncQueryExtension(dpy, &SyncEventBase, &SyncErrorBase);
+#ifdef HAVE_XRANDR
+ HasXrandr = XRRQueryExtension(dpy, &XrandrEventBase, &XrandrErrorBase);
+#endif
TwmContext = XUniqueContext();
MenuContext = XUniqueContext();
IconManagerContext = XUniqueContext();
@@ -375,7 +389,7 @@ main(int argc, char *argv[])
InfoLines = 0;
/* for simplicity, always allocate NumScreens ScreenInfo struct pointers */
- ScreenList = calloc (NumScreens, sizeof (ScreenInfo *));
+ ScreenList = calloc ((size_t)NumScreens, sizeof (ScreenInfo *));
if (ScreenList == NULL)
{
fprintf (stderr, "%s: Unable to allocate memory for screen list, exiting.\n",
@@ -469,7 +483,7 @@ main(int argc, char *argv[])
Scr->d_depth = DefaultDepth(dpy, scrnum);
Scr->d_visual = DefaultVisual(dpy, scrnum);
Scr->Root = RootWindow(dpy, scrnum);
- XSaveContext (dpy, Scr->Root, ScreenContext, (caddr_t) Scr);
+ XSaveContext (dpy, Scr->Root, ScreenContext, (XPointer) Scr);
Scr->TwmRoot.cmaps.number_cwins = 1;
Scr->TwmRoot.cmaps.cwins = malloc(sizeof(ColormapWindow *));
@@ -587,13 +601,13 @@ main(int argc, char *argv[])
/*
* weed out icon windows
*/
- for (i = 0; i < nchildren; i++) {
+ for (i = 0; (unsigned)i < nchildren; i++) {
if (children[i]) {
XWMHints *wmhintsp = XGetWMHints (dpy, children[i]);
if (wmhintsp) {
if (wmhintsp->flags & IconWindowHint) {
- for (j = 0; j < nchildren; j++) {
+ for (j = 0; (unsigned)j < nchildren; j++) {
if (children[j] == wmhintsp->icon_window) {
children[j] = None;
break;
@@ -608,7 +622,7 @@ main(int argc, char *argv[])
/*
* map all of the non-override windows
*/
- for (i = 0; i < nchildren; i++)
+ for (i = 0; (unsigned)i < nchildren; i++)
{
if (children[i] && MappedNotOverride(children[i]))
{
@@ -856,7 +870,7 @@ RestoreWithdrawnLocation (TwmWindow *tmp)
GetGravityOffsets (tmp, &gravx, &gravy);
if (gravy < 0) xwc.y -= tmp->title_height;
- if (bw != tmp->old_bw) {
+ if (bw != (unsigned)tmp->old_bw) {
int xoff, yoff;
if (!Scr->ClientBorderWidth) {
@@ -876,7 +890,7 @@ RestoreWithdrawnLocation (TwmWindow *tmp)
}
mask = (CWX | CWY);
- if (bw != tmp->old_bw) {
+ if (bw != (unsigned)tmp->old_bw) {
xwc.border_width = tmp->old_bw;
mask |= CWBorderWidth;
}
@@ -918,7 +932,7 @@ Reborder (Time time)
}
static void
-sigHandler(int sig)
+sigHandler(int sig _X_UNUSED)
{
XtNoticeSignal(si);
}
@@ -927,7 +941,7 @@ sigHandler(int sig)
* cleanup and exit twm
*/
void
-Done(XtPointer client_data, XtSignalId *si)
+Done(XtPointer client_data _X_UNUSED, XtSignalId *si2 _X_UNUSED)
{
if (dpy)
{
@@ -948,7 +962,7 @@ Bool ErrorOccurred = False;
XErrorEvent LastErrorEvent;
static int
-TwmErrorHandler(Display *dpy, XErrorEvent *event)
+TwmErrorHandler(Display *dpy2, XErrorEvent *event)
{
LastErrorEvent = *event;
ErrorOccurred = True;
@@ -957,13 +971,13 @@ TwmErrorHandler(Display *dpy, XErrorEvent *event)
event->error_code != BadWindow && /* watch for dead puppies */
(event->request_code != X_GetGeometry && /* of all styles */
event->error_code != BadDrawable))
- XmuPrintDefaultErrorMessage (dpy, event, stderr);
+ XmuPrintDefaultErrorMessage (dpy2, event, stderr);
return 0;
}
static int
-CatchRedirectError(Display *dpy, XErrorEvent *event)
+CatchRedirectError(Display *dpy2 _X_UNUSED, XErrorEvent *event)
{
RedirectError = TRUE;
LastErrorEvent = *event;
diff --git a/src/twm.h b/src/twm.h
index 8fe2555..dbb9980 100644
--- a/src/twm.h
+++ b/src/twm.h
@@ -212,8 +212,8 @@ typedef struct Colormaps
char *scoreboard; /* conflicts between installable colortables */
} Colormaps;
-#define ColormapsScoreboardLength(cm) ((cm)->number_cwins * \
- ((cm)->number_cwins - 1) / 2)
+#define ColormapsScoreboardLength(cm) (size_t)((cm)->number_cwins * \
+ ((cm)->number_cwins - 1) / 2)
/* for each window that is on the display, one of these structures
* is allocated and linked into a list
@@ -355,6 +355,10 @@ extern Window ResizeWindow; /* the window we are resizing */
extern int HasShape; /* this server supports Shape extension */
extern int HasSync; /* this server supports SYNC extension */
+#ifdef HAVE_XRANDR
+extern int HasXrandr; /* this server supports Xrandr extension */
+#endif
+
extern int PreviousScreen;
extern Cursor UpperLeftCursor;
@@ -410,6 +414,11 @@ extern Bool use_fontset;
extern int ShapeEventBase;
extern int ShapeErrorBase;
+#ifdef HAVE_XRANDR
+extern int XrandrEventBase;
+extern int XrandrErrorBase;
+#endif
+
#define _XA_MIT_PRIORITY_COLORS TwmAtoms[0]
#define _XA_WM_CHANGE_STATE TwmAtoms[1]
#define _XA_WM_STATE TwmAtoms[2]
diff --git a/src/util.c b/src/util.c
index 38ca66a..e53c606 100644
--- a/src/util.c
+++ b/src/util.c
@@ -123,59 +123,59 @@ void MoveOutline(Window root, int x, int y, int width, int height, int bw, int t
xthird = (xinnerr - xinnerl) / 3; \
ythird = (yinnerb - yinnert) / 3; \
\
- r->x1 = xl; \
- r->y1 = yt; \
- r->x2 = xr; \
- r->y2 = yt; \
+ r->x1 = (short)(xl); \
+ r->y1 = (short)(yt); \
+ r->x2 = (short)(xr); \
+ r->y2 = (short)(yt); \
r++; \
\
- r->x1 = xl; \
- r->y1 = yb; \
- r->x2 = xr; \
- r->y2 = yb; \
+ r->x1 = (short)(xl); \
+ r->y1 = (short)(yb); \
+ r->x2 = (short)(xr); \
+ r->y2 = (short)(yb); \
r++; \
\
- r->x1 = xl; \
- r->y1 = yt; \
- r->x2 = xl; \
- r->y2 = yb; \
+ r->x1 = (short)(xl); \
+ r->y1 = (short)(yt); \
+ r->x2 = (short)(xl); \
+ r->y2 = (short)(yb); \
r++; \
\
- r->x1 = xr; \
- r->y1 = yt; \
- r->x2 = xr; \
- r->y2 = yb; \
+ r->x1 = (short)(xr); \
+ r->y1 = (short)(yt); \
+ r->x2 = (short)(xr); \
+ r->y2 = (short)(yb); \
r++; \
\
- r->x1 = xinnerl + xthird; \
- r->y1 = yinnert; \
- r->x2 = r->x1; \
- r->y2 = yinnerb; \
+ r->x1 = (short)(xinnerl + xthird); \
+ r->y1 = (short)(yinnert); \
+ r->x2 = (short)(r->x1); \
+ r->y2 = (short)(yinnerb); \
r++; \
\
- r->x1 = xinnerl + (2 * xthird); \
- r->y1 = yinnert; \
- r->x2 = r->x1; \
- r->y2 = yinnerb; \
+ r->x1 = (short)(xinnerl + (2 * xthird)); \
+ r->y1 = (short)(yinnert); \
+ r->x2 = (short)(r->x1); \
+ r->y2 = (short)(yinnerb); \
r++; \
\
- r->x1 = xinnerl; \
- r->y1 = yinnert + ythird; \
- r->x2 = xinnerr; \
- r->y2 = r->y1; \
+ r->x1 = (short)(xinnerl); \
+ r->y1 = (short)(yinnert + ythird); \
+ r->x2 = (short)(xinnerr); \
+ r->y2 = (short)(r->y1); \
r++; \
\
- r->x1 = xinnerl; \
- r->y1 = yinnert + (2 * ythird); \
- r->x2 = xinnerr; \
- r->y2 = r->y1; \
+ r->x1 = (short)(xinnerl); \
+ r->y1 = (short)(yinnert + (2 * ythird)); \
+ r->x2 = (short)(xinnerr); \
+ r->y2 = (short)(r->y1); \
r++; \
\
if (lastTH != 0) { \
- r->x1 = xl; \
- r->y1 = yt + lastTH; \
- r->x2 = xr; \
- r->y2 = r->y1; \
+ r->x1 = (short)(xl); \
+ r->y1 = (short)(yt + lastTH); \
+ r->x2 = (short)(xr); \
+ r->y2 = (short)(r->y1); \
r++; \
} \
}
@@ -198,7 +198,7 @@ void MoveOutline(Window root, int x, int y, int width, int height, int bw, int t
if (r != outline)
{
- XDrawSegments(dpy, root, Scr->DrawGC, outline, r - outline);
+ XDrawSegments(dpy, root, Scr->DrawGC, outline, (int)(r - outline));
}
}
@@ -259,17 +259,17 @@ char *
ExpandFilename(const char *name)
{
char *newname;
+ int retval;
if (name[0] != '~') return strdup(name);
- asprintf(&newname, "%s/%s", Home, &name[1]);
- if (!newname) {
+ retval = asprintf(&newname, "%s/%s", Home, &name[1]);
+ if (retval == -1 || !newname) {
fprintf (stderr,
"%s: unable to allocate %ld bytes to expand filename %s/%s\n",
- ProgramName, HomeLen + (unsigned long)strlen(name) + 2,
+ ProgramName, (unsigned long)HomeLen + (unsigned long)strlen(name) + 2,
Home, &name[1]);
}
-
return newname;
}
@@ -325,7 +325,7 @@ FindBitmap (const char *name, unsigned *widthp, unsigned *heightp)
{ TBPM_QUESTION, CreateQuestionPixmap },
};
- for (i = 0; i < (sizeof pmtab)/(sizeof pmtab[0]); i++) {
+ for (i = 0; (size_t)i < (sizeof pmtab)/(sizeof pmtab[0]); i++) {
if (XmuCompareISOLatin1 (pmtab[i].name, name) == 0)
return (*pmtab[i].proc) (widthp, heightp);
}
@@ -520,13 +520,13 @@ GetColor(int kind, Pixel *what, const char *name)
if (stdcmap) {
color.pixel = (stdcmap->base_pixel +
((Pixel)(((float)color.red / 65535.0) *
- stdcmap->red_max + 0.5) *
+ (double)stdcmap->red_max + 0.5) *
stdcmap->red_mult) +
((Pixel)(((float)color.green /65535.0) *
- stdcmap->green_max + 0.5) *
+ (double)stdcmap->green_max + 0.5) *
stdcmap->green_mult) +
((Pixel)(((float)color.blue / 65535.0) *
- stdcmap->blue_max + 0.5) *
+ (double)stdcmap->blue_max + 0.5) *
stdcmap->blue_mult));
} else {
fprintf (stderr, "%s: unable to allocate color \"%s\"\n",
@@ -563,20 +563,9 @@ GetColorValue(int kind, XColor *what, const char *name)
}
}
-/*
- * The following functions are sensible to 'use_fontset'.
- * When 'use_fontset' is True,
- * - XFontSet-related internationalized functions are used
- * so as multibyte languages can be displayed.
- * When 'use_fontset' is False,
- * - XFontStruct-related conventional functions are used
- * so as 8-bit characters can be displayed even when
- * locale is not set properly.
- */
-void
-GetFont(MyFont *font)
+static Boolean
+FindFontSet(MyFont *font, const char *fontname)
{
- const char *deffontname = "fixed";
char **missing_charset_list_return;
int missing_charset_count_return;
char *def_string_return;
@@ -593,13 +582,11 @@ GetFont(MyFont *font)
XFreeFontSet(dpy, font->fontset);
}
- if( (font->fontset = XCreateFontSet(dpy, font->name,
+ if( (font->fontset = XCreateFontSet(dpy, fontname,
&missing_charset_list_return,
&missing_charset_count_return,
&def_string_return)) == NULL) {
- fprintf (stderr, "%s: unable to open fontset \"%s\"\n",
- ProgramName, font->name);
- exit(1);
+ return False;
}
for(i=0; i<missing_charset_count_return; i++){
printf("%s: warning: font for charset %s is lacking.\n",
@@ -617,29 +604,52 @@ GetFont(MyFont *font)
font->y = ascent;
font->ascent = ascent;
font->descent = descent;
- return;
+ return True;
}
if (font->font != NULL)
XFreeFont(dpy, font->font);
- if ((font->font = XLoadQueryFont(dpy, font->name)) == NULL)
+ if ((font->font = XLoadQueryFont(dpy, fontname)) == NULL)
{
- if (Scr->DefaultFont.name) {
- deffontname = Scr->DefaultFont.name;
- }
- if ((font->font = XLoadQueryFont(dpy, deffontname)) == NULL)
- {
- fprintf (stderr, "%s: unable to open fonts \"%s\" or \"%s\"\n",
- ProgramName, font->name, deffontname);
- exit(1);
- }
-
+ return False;
}
font->height = font->font->ascent + font->font->descent;
font->y = font->font->ascent;
font->ascent = font->font->ascent;
font->descent = font->font->descent;
+ return True;
+}
+
+/*
+ * The following functions are sensible to 'use_fontset'.
+ * When 'use_fontset' is True,
+ * - XFontSet-related internationalized functions are used
+ * so as multibyte languages can be displayed.
+ * When 'use_fontset' is False,
+ * - XFontStruct-related conventional functions are used
+ * so as 8-bit characters can be displayed even when
+ * locale is not set properly.
+ */
+void
+GetFont(MyFont *font)
+{
+ const char *deffontname = "fixed";
+
+ if (!FindFontSet(font, font->name)) {
+ const char *what = "fonts";
+
+ if (use_fontset) {
+ what = "fontsets";
+ } else if (Scr->DefaultFont.name) {
+ deffontname = Scr->DefaultFont.name;
+ }
+ if (!FindFontSet(font, deffontname)) {
+ fprintf (stderr, "%s: unable to open %s \"%s\" or \"%s\"\n",
+ ProgramName, what, font->name, deffontname);
+ exit(1);
+ }
+ }
}
int
@@ -657,25 +667,25 @@ MyFont_TextWidth(MyFont *font, const char *string, int len)
}
void
-MyFont_DrawImageString(Display *dpy, Drawable d, MyFont *font, GC gc,
+MyFont_DrawImageString(Display *dpy2, Drawable d, MyFont *font, GC gc,
int x, int y, const char *string, int len)
{
if (use_fontset) {
- XmbDrawImageString(dpy, d, font->fontset, gc, x, y, string, len);
+ XmbDrawImageString(dpy2, d, font->fontset, gc, x, y, string, len);
return;
}
- XDrawImageString (dpy, d, gc, x, y, string, len);
+ XDrawImageString (dpy2, d, gc, x, y, string, len);
}
void
-MyFont_DrawString(Display *dpy, Drawable d, MyFont *font, GC gc,
+MyFont_DrawString(Display *dpy2, Drawable d, MyFont *font, GC gc,
int x, int y, const char *string, int len)
{
if (use_fontset) {
- XmbDrawString(dpy, d, font->fontset, gc, x, y, string, len);
+ XmbDrawString(dpy2, d, font->fontset, gc, x, y, string, len);
return;
}
- XDrawString (dpy, d, gc, x, y, string, len);
+ XDrawString (dpy2, d, gc, x, y, string, len);
}
void
@@ -701,19 +711,19 @@ MyFont_ChangeGC(unsigned long fix_fore, unsigned long fix_back,
* not XFree().
*/
Status
-I18N_FetchName(Display *dpy, Window w, char **winname)
+I18N_FetchName(Display *dpy2, Window w, char **winname)
{
int status;
XTextProperty text_prop;
char **list;
int num;
- status = XGetWMName(dpy, w, &text_prop);
+ status = XGetWMName(dpy2, w, &text_prop);
if (!status || !text_prop.value || !text_prop.nitems) {
*winname = NULL;
return 0;
}
- status = XmbTextPropertyToTextList(dpy, &text_prop, &list, &num);
+ status = XmbTextPropertyToTextList(dpy2, &text_prop, &list, &num);
if (status < Success || !num || !*list) {
*winname = NULL;
return 0;
@@ -725,16 +735,16 @@ I18N_FetchName(Display *dpy, Window w, char **winname)
}
Status
-I18N_GetIconName(Display *dpy, Window w, char **iconname)
+I18N_GetIconName(Display *dpy2, Window w, char **iconname)
{
int status;
XTextProperty text_prop;
char **list;
int num;
- status = XGetWMIconName(dpy, w, &text_prop);
+ status = XGetWMIconName(dpy2, w, &text_prop);
if (!status || !text_prop.value || !text_prop.nitems) return 0;
- status = XmbTextPropertyToTextList(dpy, &text_prop, &list, &num);
+ status = XmbTextPropertyToTextList(dpy2, &text_prop, &list, &num);
if (status < Success || !num || !*list) return 0;
XFree(text_prop.value);
*iconname = (char *)strdup(*list);
@@ -773,10 +783,10 @@ CreateXLogoPixmap (unsigned *widthp, unsigned *heightp)
if (Scr->tbpm.xlogo == None) {
GC gc, gcBack;
- Scr->tbpm.xlogo = XCreatePixmap (dpy, Scr->Root, h, h, 1);
+ Scr->tbpm.xlogo = XCreatePixmap (dpy, Scr->Root, (unsigned)h, (unsigned)h, 1);
gc = XCreateGC (dpy, Scr->tbpm.xlogo, 0L, NULL);
XSetForeground (dpy, gc, 0);
- XFillRectangle (dpy, Scr->tbpm.xlogo, gc, 0, 0, h, h);
+ XFillRectangle (dpy, Scr->tbpm.xlogo, gc, 0, 0, (unsigned)h, (unsigned)h);
XSetForeground (dpy, gc, 1);
gcBack = XCreateGC (dpy, Scr->tbpm.xlogo, 0L, NULL);
XSetForeground (dpy, gcBack, 0);
@@ -785,8 +795,8 @@ CreateXLogoPixmap (unsigned *widthp, unsigned *heightp)
* draw the logo large so that it gets as dense as possible; then white
* out the edges so that they look crisp
*/
- XmuDrawLogo (dpy, Scr->tbpm.xlogo, gc, gcBack, -1, -1, h + 2, h + 2);
- XDrawRectangle (dpy, Scr->tbpm.xlogo, gcBack, 0, 0, h - 1, h - 1);
+ XmuDrawLogo (dpy, Scr->tbpm.xlogo, gc, gcBack, -1, -1, (unsigned)(h + 2), (unsigned)(h + 2));
+ XDrawRectangle (dpy, Scr->tbpm.xlogo, gcBack, 0, 0, (unsigned)(h - 1), (unsigned)(h - 1));
/*
* done drawing
@@ -814,34 +824,34 @@ CreateResizePixmap (unsigned *widthp, unsigned *heightp)
/*
* create the pixmap
*/
- Scr->tbpm.resize = XCreatePixmap (dpy, Scr->Root, h, h, 1);
+ Scr->tbpm.resize = XCreatePixmap (dpy, Scr->Root, (unsigned)h, (unsigned)h, 1);
gc = XCreateGC (dpy, Scr->tbpm.resize, 0L, NULL);
XSetForeground (dpy, gc, 0);
- XFillRectangle (dpy, Scr->tbpm.resize, gc, 0, 0, h, h);
+ XFillRectangle (dpy, Scr->tbpm.resize, gc, 0, 0, (unsigned)h, (unsigned)h);
XSetForeground (dpy, gc, 1);
lw = h / 16;
if (lw == 1)
lw = 0;
- XSetLineAttributes (dpy, gc, lw, LineSolid, CapButt, JoinMiter);
+ XSetLineAttributes (dpy, gc, (unsigned)lw, LineSolid, CapButt, JoinMiter);
/*
* draw the resize button,
*/
w = (h * 2) / 3;
- points[0].x = w;
+ points[0].x = (short)w;
points[0].y = 0;
- points[1].x = w;
- points[1].y = w;
+ points[1].x = (short)w;
+ points[1].y = (short)w;
points[2].x = 0;
- points[2].y = w;
+ points[2].y = (short)w;
XDrawLines (dpy, Scr->tbpm.resize, gc, points, 3, CoordModeOrigin);
w = w / 2;
- points[0].x = w;
+ points[0].x = (short)w;
points[0].y = 0;
- points[1].x = w;
- points[1].y = w;
+ points[1].x = (short)w;
+ points[1].y = (short)w;
points[2].x = 0;
- points[2].y = w;
+ points[2].y = (short)w;
XDrawLines (dpy, Scr->tbpm.resize, gc, points, 3, CoordModeOrigin);
/*
@@ -867,11 +877,11 @@ CreateDotPixmap (unsigned *widthp, unsigned *heightp)
GC gc;
Pixmap pix;
- pix = Scr->tbpm.delete = XCreatePixmap (dpy, Scr->Root, h, h, 1);
+ pix = Scr->tbpm.delete = XCreatePixmap (dpy, Scr->Root, (unsigned)h, (unsigned)h, 1);
gc = XCreateGC (dpy, pix, 0L, NULL);
- XSetLineAttributes (dpy, gc, h, LineSolid, CapRound, JoinRound);
+ XSetLineAttributes (dpy, gc, (unsigned)h, LineSolid, CapRound, JoinRound);
XSetForeground (dpy, gc, 0L);
- XFillRectangle (dpy, pix, gc, 0, 0, h, h);
+ XFillRectangle (dpy, pix, gc, 0, 0, (unsigned)h, (unsigned)h);
XSetForeground (dpy, gc, 1L);
XDrawLine (dpy, pix, gc, h/2, h/2, h/2, h/2);
XFreeGC (dpy, gc);
@@ -929,16 +939,16 @@ CreateMenuIcon (int height, unsigned *widthp, unsigned *heightp)
h = 1;
if (w < 1)
w = 1;
- *widthp = w;
- *heightp = h;
+ *widthp = (unsigned)w;
+ *heightp = (unsigned)h;
if (Scr->tbpm.menu == None) {
Pixmap pix;
GC gc;
- pix = Scr->tbpm.menu = XCreatePixmap (dpy, Scr->Root, w, h, 1);
+ pix = Scr->tbpm.menu = XCreatePixmap (dpy, Scr->Root, (unsigned)w, (unsigned)h, 1);
gc = XCreateGC (dpy, pix, 0L, NULL);
XSetForeground (dpy, gc, 0L);
- XFillRectangle (dpy, pix, gc, 0, 0, w, h);
+ XFillRectangle (dpy, pix, gc, 0, 0, (unsigned)w, (unsigned)h);
XSetForeground (dpy, gc, 1L);
ix = 1;
iy = 1;
@@ -952,10 +962,10 @@ CreateMenuIcon (int height, unsigned *widthp, unsigned *heightp)
bw = 1;
tw = mw - bw * 2;
th = mh - bw * 2;
- XFillRectangle (dpy, pix, gc, ix, iy, mw, mh);
- XFillRectangle (dpy, pix, gc, ix + iw - mw, iy + ih - mh, mw, mh);
+ XFillRectangle (dpy, pix, gc, ix, iy, (unsigned)mw, (unsigned)mh);
+ XFillRectangle (dpy, pix, gc, ix + iw - mw, iy + ih - mh, (unsigned)mw, (unsigned)mh);
XSetForeground (dpy, gc, 0L);
- XFillRectangle (dpy, pix, gc, ix+bw, iy+bw, tw, th);
+ XFillRectangle (dpy, pix, gc, ix+bw, iy+bw, (unsigned)tw, (unsigned)th);
XSetForeground (dpy, gc, 1L);
lw = tw / 2;
if ((tw & 1) ^ (lw & 1))
@@ -975,7 +985,7 @@ CreateMenuIcon (int height, unsigned *widthp, unsigned *heightp)
dly = lh / (lines - 1);
while (lines--)
{
- XFillRectangle (dpy, pix, gc, lx, ly, lw, bw);
+ XFillRectangle (dpy, pix, gc, lx, ly, (unsigned)lw, (unsigned)bw);
ly += dly;
}
XFreeGC (dpy, gc);
@@ -984,7 +994,7 @@ CreateMenuIcon (int height, unsigned *widthp, unsigned *heightp)
}
void
-Bell(int type, int percent, Window win)
+Bell(int type _X_UNUSED, int percent, Window win _X_UNUSED)
{
#ifdef XKB
XkbStdBell(dpy, win, percent, type);