Hi,

It is nice to see that the development continues.

I went through the patches in openSUSE distribution. The followig
patches fixes some problems that are still present in the last snapshot on 
http://www.windowmaker.info/

WindowMaker-wmspec.c-findBestIcon.patch
 - fixes https://bugzilla.novell.com/show_bug.cgi?id=371974

WindowMaker-warnings.patch
WindowMaker-null.patch
WindowMaker-event.patch
WindowMaker-dir-specification.patch
WindowMaker-0.92.0-printf.diff
- fixed various compiler warnings, some of them could be dangerous

WindowMaker-crash.patch
- fixes possible segfault

WindowMaker-fonts.patch
- less strict font requirements,   
  https://bugzilla.novell.com/show_bug.cgi?id=154758

WindowMaker-de_translation.patch
- more politically correct German translation

From other changes, there is an issue with po files: no.po should be renamed 
to nb.po.


Vladimir
--- src/wmspec.c
+++ src/wmspec.c
@@ -402,7 +402,7 @@
      * results in better overall aesthetics -Dan */
     wanted = wPreferences.icon_size * wPreferences.icon_size;
 
-    for (icon=NULL, distance=LONG_MAX, i=0L; i<items-1; ) {
+    for (icon=NULL, distance=wanted, i=0L; i<items-1; ) {
         size = data[i] * data[i+1];
         if (size==0)
             break;
--- WINGs/Examples/puzzle.c
+++ WINGs/Examples/puzzle.c
@@ -12,7 +12,7 @@
 
 WMWindow *win;
 WMButton *Button[MAX_SIZE];
-char Map[MAX_SIZE];
+signed char Map[MAX_SIZE];
 int Size = 4;
 int MoveCount;
 
--- WINGs/WINGs/WUtil.h
+++ WINGs/WINGs/WUtil.h
@@ -216,11 +216,11 @@
 /* don't free the returned string */
 char* wstrerror(int errnum);
 
-void wmessage(const char *msg, ...);
-void wwarning(const char *msg, ...);
-void wfatal(const char *msg, ...);
-void wsyserror(const char *msg, ...);
-void wsyserrorwithcode(int error, const char *msg, ...);
+void wmessage(const char *msg, ...) __attribute__((__format__(printf,1,2)));
+void wwarning(const char *msg, ...) __attribute__((__format__(printf,1,2)));
+void wfatal(const char *msg, ...) __attribute__((__format__(printf,1,2)));
+void wsyserror(const char *msg, ...) __attribute__((__format__(printf,1,2)));
+void wsyserrorwithcode(int error, const char *msg, ...) __attribute__((__format__(printf,2,3)));
 
 char* wfindfile(char *paths, char *file);
 
--- WINGs/wcolorpanel.c
+++ WINGs/wcolorpanel.c
@@ -1239,7 +1239,7 @@
     }
 
     if (!(dPtr = opendir(panel->configurationPath))) {
-        wwarning(_("Color Panel: Could not find file"), "%s", panel->configurationPath);
+        wwarning(_("Color Panel: Could not find file: %s"), panel->configurationPath);
         return;
     }
 
@@ -3715,6 +3715,7 @@
         color.red = 0;
         color.green = 0;
         color.blue = 0;
+        color.alpha = 0;
         return color;
     }
 
@@ -3724,6 +3725,7 @@
     color.red   = xcolor->red >> 8;
     color.green = xcolor->green >> 8;
     color.blue  = xcolor->blue >> 8;
+    color.alpha = 0;
 
     wfree(xcolor);
 
--- src/cycling.c
+++ src/cycling.c
@@ -22,6 +22,7 @@
 
 #include "wconfig.h"
 
+#include <stdlib.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/keysym.h>
--- src/dock.c
+++ src/dock.c
@@ -3780,7 +3780,7 @@
 
 
     if (wPreferences.flags.noupdates)
-        return;
+        return False;
 
     if (XGrabPointer(dpy, icon->core->window, True, ButtonMotionMask
                      |ButtonReleaseMask|ButtonPressMask, GrabModeAsync,
--- src/texture.c
+++ src/texture.c
@@ -421,6 +421,8 @@
     texture->argc = argc;
     texture->argv = argv;
 
+    memset(&fallbackColor, 0, sizeof(fallbackColor));
+
     fallbackColor.red = 0x8000;
     fallbackColor.green = 0x8000;
     fallbackColor.blue = 0x8000;
--- src/xdnd.c
+++ src/xdnd.c
@@ -185,7 +185,7 @@
         wfree(scr->xdestring); /* this xdestring is not from Xlib (no XFree) */
     }
 
-    /* why doesn't this function return anything ? -Dan */
+    return True;
 }
 
 Bool
--- util/wmsetup.c
+++ util/wmsetup.c
@@ -21,6 +21,7 @@
 int
 main()
 {
+return 0;
 }
 #else
 #define PROG_VERSION "wmsetup 0.0 (Window Maker)"
--- Window-Maker-5a2507602c48/WINGs/wfontpanel.c
+++ Window-Maker-5a2507602c48/WINGs/wfontpanel.c
@@ -585,7 +585,7 @@
     int i;
 
     pat = FcPatternCreate();
-    os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, 0);
+    os = FcObjectSetBuild(FC_FAMILY, FC_STYLE, NULL);
     fs = FcFontList(0, pat, os);
     if (!fs) {
         WMRunAlertPanel(scr, panel->win, _("Error"),
--- WindowMaker/Defaults/WMGLOBAL
+++ WindowMaker/Defaults/WMGLOBAL
@@ -1,6 +1,6 @@
 {
-  SystemFont = "Trebuchet MS,Luxi Sans";
-  BoldSystemFont = "Trebuchet MS,Luxi Sans:bold";
+  SystemFont = "Sans";
+  BoldSystemFont = "Sans:bold";
   DefaultFontSize = 11;
   AntialiasedText = Yes;
   FloppyPath = "/floppy";
--- WindowMaker/Defaults/WindowMaker.in
+++ WindowMaker/Defaults/WindowMaker.in
@@ -109,13 +109,13 @@
   ConstrainWindowSize = NO;
   ClipRaiseLowerKey = None;
   TitleJustify = center;
-  WindowTitleFont = "Trebuchet MS,Luxi Sans:bold:pixelsize=12";
-  MenuTitleFont = "Trebuchet MS,Luxi Sans:bold:pixelsize=12";
-  MenuTextFont = "Trebuchet MS,Luxi Sans:pixelsize=12";
-  IconTitleFont = "Arial,Luxi Sans:pixelsize=9";
-  ClipTitleFont = "Verdana:bold:pixelsize=10";
-  DisplayFont = "Trebuchet MS,Luxi Sans:pixelsize=12";
-  LargeDisplayFont = "Trebuchet MS,Luxi Sans:pixelsize=24";
+  WindowTitleFont = "Sans:bold:pixelsize=12";
+  MenuTitleFont = "Sans:bold:pixelsize=12";
+  MenuTextFont = "Sans:pixelsize=12";
+  IconTitleFont = "Sans:pixelsize=9";
+  ClipTitleFont = "Sans:bold:pixelsize=10";
+  DisplayFont = "Sans:pixelsize=12";
+  LargeDisplayFont = "Sans:pixelsize=24";
   HighlightColor = white;
   HighlightTextColor = black;
   ClipTitleColor = black;
--- src/event.c
+++ src/event.c
@@ -107,27 +107,27 @@
 
 
 static void saveTimestamp(XEvent *event);
-static void handleColormapNotify();
-static void handleMapNotify();
-static void handleUnmapNotify();
-static void handleButtonPress();
-static void handleExpose();
-static void handleDestroyNotify();
-static void handleConfigureRequest();
-static void handleMapRequest();
-static void handlePropertyNotify();
-static void handleEnterNotify();
-static void handleLeaveNotify();
-static void handleExtensions();
-static void handleClientMessage();
-static void handleKeyPress();
-static void handleFocusIn();
-static void handleMotionNotify();
-static void handleVisibilityNotify();
+static void handleColormapNotify(XEvent *event);
+static void handleMapNotify(XEvent *event);
+static void handleUnmapNotify(XEvent *event);
+static void handleButtonPress(XEvent *event);
+static void handleExpose(XEvent *event);
+static void handleDestroyNotify(XEvent *event);
+static void handleConfigureRequest(XEvent *event);
+static void handleMapRequest(XEvent *event);
+static void handlePropertyNotify(XEvent *event);
+static void handleEnterNotify(XEvent *event);
+static void handleLeaveNotify(XEvent *event);
+static void handleExtensions(XEvent *event);
+static void handleClientMessage(XEvent *event);
+static void handleKeyPress(XEvent *event);
+static void handleFocusIn(XEvent *event);
+static void handleMotionNotify(XEvent *event);
+static void handleVisibilityNotify(XEvent *event);
 
 
 #ifdef SHAPE
-static void handleShapeNotify();
+static void handleShapeNotify(XEvent *event);
 #endif
 
 /* called from the signal handler */
--- WINGs/wtext.c
+++ WINGs/wtext.c
@@ -656,7 +656,7 @@
     TextBlock *tb;
     WMFont *font;
     char *text;
-    int len, y, c, s, done=False, prev_y=-23, dir /* 1 = down */;
+    int len, y, c, s, done=False, prev_y=-23, dir=1 /* 1 = down */;
     WMScreen *scr = tPtr->view->screen;
     Display *dpy = tPtr->view->screen->display;
     Window win = tPtr->view->window;
--- po/de.po
+++ po/de.po
@@ -76,7 +76,7 @@
 #: ../src/appicon.c:487 ../src/dock.c:1176 ../src/rootmenu.c:248
 #: ../src/rootmenu.c:264 ../src/winmenu.c:508
 msgid "Kill"
-msgstr "Töten"
+msgstr "Beenden"
 
 #: ../src/appicon.c:508 ../src/dock.c:3511
 msgid "Unhide"
--- src/misc.c
+++ src/misc.c
@@ -1105,7 +1105,7 @@
 
     len = (msg ? strlen(msg) : 0) + (workspace >=0 ? 4 : 0) + 1 ;
     buffer = wmalloc(len+5);
-    snprintf(buf, len, "%4i", len);
+    snprintf(buf, sizeof(buf), "%4i", len);
     memcpy(buffer, buf, 4);
     buffer[4] = type;
     i = 5;
--- src/misc.c
+++ src/misc.c
@@ -696,7 +696,7 @@
     olen = len+1;
     out = malloc(olen);
     if (!out) {
-        wwarning(_("out of memory during expansion of \"%s\""));
+        wwarning(_("out of memory during expansion of \"%s\""), cmdline);
         return NULL;
     }
     *out = 0;
@@ -785,7 +785,8 @@
                     olen += slen;
                     nout = realloc(out,olen);
                     if (!nout) {
-                        wwarning(_("out of memory during expansion of \"%a\""));
+                        wwarning(_("out of memory during expansion of \"%a\""),
+					user_input);
                         goto error;
                     }
                     out = nout;
@@ -835,7 +836,8 @@
                 olen += slen;
                 nout = realloc(out,olen);
                 if (!nout) {
-                    wwarning(_("out of memory during expansion of \"%s\""));
+                    wwarning(_("out of memory during expansion of \"%s\""),
+				    selection);
                     goto error;
                 }
                 out = nout;

Reply via email to