diff -u --recursive --new-file olvwm.orig/CHANGES olvwm/CHANGES
--- olvwm.orig/CHANGES	Mon Jan 24 15:43:14 1994
+++ olvwm/CHANGES	Sat Oct 15 10:03:17 1994
@@ -1,4 +1,13 @@
-Version 3.4 fixes and enhancements:
+Version 4.1 fixes:
+    1)  Fixed compilation problems with /usr/ucb/cc on SunOS 4.1.3
+
+    2)  Fixed problems with AutoRaise
+
+    3)  Fixed problems with FreeIconSlots
+
+    4)  Now include olvwm.info and LEGAL_NOTICE
+
+Version 4.0 fixes and enhancements:
     1) Now based on version 3.2 of olwm; this adds a lot of features
        defined in the 3.2 olwm man page:  menu accelerators, patterned
        backgrounds, etc.
diff -u --recursive --new-file olvwm.orig/Imakefile olvwm/Imakefile
--- olvwm.orig/Imakefile	Mon Jan 24 15:45:05 1994
+++ olvwm/Imakefile	Sat Oct 15 11:17:54 1994
@@ -39,13 +39,16 @@
 /**/#  -DSVR4               Support for System V Release 4 (you must also include
 /**/#                               -DSYSV)
 /**/#  -DXPM                Support the XPM color pixmaps -- requires that you
-/**/#                               have the xpm library somewhere
+/**/#                               have the xpm library (version 3.0) somewhere
+/**/#                               If your xpm header isn't in /usr/openwin/include 
+/**/#                               make sure to add the appropriate -I flag to #                               MORECCFLAGS.  Also remember to add the 
+/**/#                               library name to LDFLAGS. 
 /**/#
 /**/# I haven't tested this on Solaris 1.x, but I'd suggest
 /**/#MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DIDENT
 
 /**/# For a generic Solaris 2.x system, I'd suggest
-MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DSVR4 -DSYSV -DIDENT -x O4
+MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DSYSV -DIDENT
 
 /**/#
 /**/# Set MORELDFLAGS to any link options you want.  Be sure to add -lxpm if you
@@ -54,7 +57,7 @@
 /**/#MORELDFLAGS=-L${OPENWINHOME}/lib
 /**/#
 /**/# For Solaris 2.x, I'd suggest
-MORELDFLAGS=-L${OPENWINHOME}/lib -R ${OPENWINHOME}/lib -lintl
+MORELDFLAGS=-L${OPENWINHOME}/lib
 
 
 /**/# No more changes needed
@@ -67,7 +70,7 @@
 
 DEFINES =  $(MORECCFLAGS)
 SYS_LIBRARIES = -ll -lm
-INCLUDES = -I$(HEADER_DEST) -I$(TOP) $(XPMINCDIR) 
+INCLUDES = -I/usr/openwin/include -I$(HEADER_DEST) -I$(TOP) $(XPMINCDIR) 
 DEPLIBS = 
 LOCAL_LIBRARIES = $(MORELDFLAGS) $(OLGXLIB) $(XLIB)
 
@@ -119,10 +122,10 @@
 #endif
 
 parse.c: parse.l
-	lex -t parse.l > parse.c
+	flex -t parse.l > parse.c
 
 olvwmrc.c: olvwmrc.y
-	yacc olvwmrc.y
+	bison -y olvwmrc.y
 	mv y.tab.c olvwmrc.c
 
 olvwmrc.o: parse.c olvwmrc.c
diff -u --recursive --new-file olvwm.orig/LEGAL_NOTICE olvwm/LEGAL_NOTICE
--- olvwm.orig/LEGAL_NOTICE	Wed Dec 31 18:00:00 1969
+++ olvwm/LEGAL_NOTICE	Sat Oct 15 10:03:17 1994
@@ -0,0 +1,56 @@
+	NOTICE TO USER: The source code, including the glyphs or icons 
+	forming a par of the OPEN LOOK TM Graphic User Interface, on this 
+	tape and in these files is copyrighted under U.S. and international
+	laws. Sun Microsystems, Inc. of Mountain View, California owns
+	the copyright and has design patents pending on many of the icons. 
+	AT&T is the owner of the OPEN LOOK trademark associated with the
+	materials on this tape. Users and possessors of this source code 
+	are hereby granted a nonexclusive, royalty-free copyright and 
+	design patent license to use this code in individual and 
+	commercial software. A royalty-free, nonexclusive trademark
+	license to refer to the code and output as "OPEN LOOK" compatible 
+	is available from AT&T if, and only if, the appearance of the 
+	icons or glyphs is not changed in any manner except as absolutely
+	necessary to accommodate the standard resolution of the screen or
+	other output device, the code and output is not changed except as 
+	authorized herein, and the code and output is validated by AT&T. 
+	Bigelow & Holmes is the owner of the Lucida (R) trademark for the
+	fonts and bit-mapped images associated with the materials on this 
+	tape. Users are granted a royalty-free, nonexclusive license to use
+	the trademark only to identify the fonts and bit-mapped images if, 
+	and only if, the fonts and bit-mapped images are not modified in any
+	way by the user. 
+
+
+	Any use of this source code must include, in the user documentation 
+	and internal comments to the code, notices to the end user as  
+	follows:
+
+
+	(c) Copyright 1989 Sun Microsystems, Inc. Sun design patents
+	pending in the U.S. and foreign countries. OPEN LOOK is a 
+	trademark of AT&T. Used by written permission of the owners.
+
+
+ 	(c) Copyright Bigelow & Holmes 1986, 1985. Lucida is a registered 
+	trademark of Bigelow & Holmes. Permission to use the Lucida 
+	trademark is hereby granted only in association with the images 
+	and fonts described in this file.
+
+
+
+	SUN MICROSYSTEMS, INC., AT&T, AND BIGELOW & HOLMES 
+	MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY OF
+ 	THIS SOURCE CODE FOR ANY PURPOSE. IT IS PROVIDED "AS IS" 
+	WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. 
+	SUN  MICROSYSTEMS, INC., AT&T AND BIGELOW  & HOLMES, 
+	SEVERALLY AND INDIVIDUALLY, DISCLAIM ALL WARRANTIES 
+	WITH REGARD TO THIS SOURCE CODE, INCLUDING ALL IMPLIED
+	WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+	PARTICULAR PURPOSE. IN NO EVENT SHALL SUN MICROSYSTEMS,
+	INC., AT&T OR BIGELOW & HOLMES BE LIABLE FOR ANY
+	SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
+	OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA 	
+	OR PROFITS, WHETHER IN AN ACTION OF  CONTRACT, NEGLIGENCE
+	OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+	WITH THE USE OR PERFORMANCE OF THIS SOURCE CODE.
diff -u --recursive --new-file olvwm.orig/Makefile.sunpro olvwm/Makefile.sunpro
--- olvwm.orig/Makefile.sunpro	Mon Jan 24 16:31:50 1994
+++ olvwm/Makefile.sunpro	Sat Oct 15 10:03:17 1994
@@ -60,7 +60,11 @@
 #  -DSVR4		Support for System V Release 4 (you must also include
 #			    	-DSYSV)
 #  -DXPM		Support the XPM color pixmaps -- requires that you
-#				have the xpm library somewhere
+#				have the xpm library (version 3.0) somewhere.
+#				If your xpm header isn't in /usr/openwin/include
+#				make sure to add the appropriate -I flag to
+#				MORECCFLAGS.  Also remember to add the
+#				library name to LDFLAGS.
 #
 # I haven't tested this on Solaris 1.x, but I'd suggest
 #MORECCFLAGS=-DOW_I18N_L3 -DSHAPE -DIDENT
@@ -71,10 +75,10 @@
 #
 # Set LDFLAGS to any link options you want.  For a generic Solaris 1.x
 # system, I'd suggest
-#LDFLAGS=-L${OPENWINHOME}/lib /auto/X11R5/lib/libXpm.a
+#LDFLAGS=-L${OPENWINHOME}/lib
 #
 # For Solaris 2.x, I'd suggest
-LDFLAGS=-L${OPENWINHOME}/lib -R ${OPENWINHOME}/lib -lintl
+LDFLAGS=-L${OPENWINHOME}/lib -R${OPENWINHOME}/lib -lintl
 
 #
 # Which compiler to use
diff -u --recursive --new-file olvwm.orig/defaults.c olvwm/defaults.c
--- olvwm.orig/defaults.c	Thu Jan 13 15:36:03 1994
+++ olvwm/defaults.c	Sat Oct 15 10:17:40 1994
@@ -90,7 +90,8 @@
 #ifdef SVR4
 	    if (sysinfo(SI_HOSTNAME, hostname, sizeof(hostname)) != -1) {
 #else
-	    if (0 == gethostname(hostname, sizeof(hostname), &namelen)) {
+/*	    if (0 == gethostname(hostname, sizeof(hostname), &namelen)) { */
+	    if (0 == gethostname(hostname, sizeof(hostname))) { 
 #endif
 		(void) strcat(filename, hostname);
 		fileDB = XrmGetFileDatabase(filename);
diff -u --recursive --new-file olvwm.orig/error.c olvwm/error.c
--- olvwm.orig/error.c	Thu Jan 13 15:36:04 1994
+++ olvwm/error.c	Sat Oct 15 10:18:35 1994
@@ -232,8 +232,8 @@
 	err->resourceid);
     FPRINTF(stderr, GetString("  serial number of failed request:  %d\n"),
 	err->serial);
-    FPRINTF(stderr, GetString("  current request serial number:  %d\n"),
-	dpy->request);
+/*    FPRINTF(stderr, GetString("  current request serial number:  %d\n"),
+	dpy->request); */
 }
 
 
diff -u --recursive --new-file olvwm.orig/evbind.c olvwm/evbind.c
--- olvwm.orig/evbind.c	Thu Jan 13 15:36:05 1994
+++ olvwm/evbind.c	Sat Oct 15 10:04:35 1994
@@ -5,7 +5,7 @@
  */
 
 #ifdef IDENT
-#ident	"@(#)evbind.c	1.5 olvwm version 07 Jan 1994"
+#ident	"@(#)evbind.c	1.6 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -20,10 +20,13 @@
 #include <sys/types.h>
 #include <sys/time.h>
 
+#ifdef __STDC__
 #include <X11/Intrinsic.h>
+#endif
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/keysym.h>
+#include <X11/Intrinsic.h>
 
 #include "i18n.h"
 #include "ollocale.h"
diff -u --recursive --new-file olvwm.orig/images.c olvwm/images.c
--- olvwm.orig/images.c	Thu Jan 13 15:36:07 1994
+++ olvwm/images.c	Sat Oct 15 10:03:17 1994
@@ -4,7 +4,7 @@
  */
 
 #ifdef IDENT
-#ident "@(#)images.c	1.5 olvwm version 07 Jan 1994"
+#ident "@(#)images.c	1.6 olvwm version 09 Feb 1994"
 #endif
 
 /* Use small images */
@@ -51,7 +51,6 @@
     True,
     True,
     WindowOpenCloseAction,
-    NULL,
     ACTION_OPEN_CLOSE,
     NULL,
     NULL
@@ -67,7 +66,6 @@
     True,
     True,
     WindowFullRestoreSizeAction,
-    NULL,
     ACTION_FULL_RESTORE,
     NULL,
     NULL
@@ -83,7 +81,6 @@
     True,
     True,
     WindowMoveAction,
-    NULL,
     ACTION_MOVE,
     NULL,
     NULL
@@ -99,7 +96,6 @@
     True,
     True,
     WindowResizeAction,
-    NULL,
     ACTION_RESIZE,
     NULL,
     NULL
@@ -115,7 +111,6 @@
     True,
     True,
     WindowStickAction,
-    NULL,
     ACTION_STICK,
     NULL,
     NULL
@@ -131,7 +126,6 @@
     False,
     True,
     WindowPropsAction,
-    NULL,
     ACTION_PROPS,
     NULL,
     NULL
@@ -147,7 +141,6 @@
     True,
     True,
     WindowBackAction,
-    NULL,
     ACTION_BACK,
     NULL,
     NULL
@@ -163,7 +156,6 @@
     True,
     True,
     WindowRefreshAction,
-    NULL,
     ACTION_REFRESH,
     NULL,
     NULL
@@ -179,7 +171,6 @@
     True,
     True,
     WindowQuitAction,
-    NULL,
     ACTION_QUIT,
     NULL,
     NULL
@@ -195,7 +186,6 @@
     True,
     True,
     NULL,
-    NULL,
     ACTION_NONE,
     NULL,
     NULL
@@ -211,7 +201,6 @@
     True,
     True,
     WindowDismissThisAction,
-    NULL,
     ACTION_OPEN_CLOSE,
     NULL,
     NULL
@@ -227,7 +216,6 @@
     True,
     True,
     WindowDismissAllAction,
-    NULL,
     ACTION_NONE,
     NULL,
     NULL
@@ -243,7 +231,6 @@
     True,
     True,
     WindowFlashOwnerAction,
-    NULL,
     ACTION_OWNER,
     NULL,
     NULL
@@ -262,7 +249,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_RIGHT_V,
     NULL,
     NULL
@@ -277,7 +263,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_LEFT_V,
     NULL,
 };
@@ -291,7 +276,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_UP_V,
     NULL,
     NULL
@@ -306,7 +290,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_DOWN_V,
     NULL,
     NULL
@@ -321,7 +304,6 @@
     True,
     True,
     VDMMenuAction, 
-    NULL,
     ACTION_UPRIGHT_V,
     NULL,
     NULL
@@ -336,7 +318,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_DOWNRIGHT_V,
     NULL,
     NULL
@@ -351,7 +332,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_UPLEFT_V,
     NULL,
     NULL
@@ -366,7 +346,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_DOWNLEFT_V,
     NULL,
     NULL
@@ -381,7 +360,6 @@
     True,
     True,
     VDMMenuAction,
-    NULL,
     ACTION_HOME_V,
     NULL,
     NULL
diff -u --recursive --new-file olvwm.orig/mem.c olvwm/mem.c
--- olvwm.orig/mem.c	Thu Jan 13 15:36:08 1994
+++ olvwm/mem.c	Sat Oct 15 10:04:35 1994
@@ -22,6 +22,10 @@
 #include <memory.h>
 #include <stdio.h>
 
+#ifdef __STDC__
+#include <stdlib.h>
+#endif
+
 #include "i18n.h"
 #include "mem.h"
 #include "error.h"
diff -u --recursive --new-file olvwm.orig/menu.h olvwm/menu.h
--- olvwm.orig/menu.h	Thu Jan 13 15:40:03 1994
+++ olvwm/menu.h	Sat Oct 15 10:03:17 1994
@@ -8,7 +8,7 @@
 #define _OLWM_MENU_H
 
 #ifdef IDENT
-#ident "@(#)menu.h	1.4 olvwm version 07 Jan 1994"
+#ident "@(#)menu.h	1.5 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -56,17 +56,18 @@
     FuncPtr	callback;	/* function to call when item hit */
 				/* NULL if button has pullright */
 
+    SemanticAction semantic;	/* semantic action for window menu items */
+
+    FuncPtr	generate_func;	/* If !NULL, called when this button is
+				 * hilighted to re-initialize action.submenu */
+    char	*generate_args;	/* args for generate function */
+
     union {
 	struct _menu *submenu;	/* pointer to the submenu, if has_submenu */
 	char	*command;	/* command, if callback is AppMenuFunc */
 	void	*other;		/* unspecified */
     } action;
 
-    SemanticAction semantic;	/* semantic action for window menu items */
-
-    FuncPtr	generate_func;	/* If !NULL, called when this button is
-				 * hilighted to re-initialize action.submenu */
-    char	*generate_args;	/* args for generate function */
 }           Button;
 
 /*
diff -u --recursive --new-file olvwm.orig/moveresize.c olvwm/moveresize.c
--- olvwm.orig/moveresize.c	Thu Jan 13 15:36:09 1994
+++ olvwm/moveresize.c	Sat Oct 15 10:03:17 1994
@@ -5,7 +5,7 @@
  */
 
 #ifdef IDENT
-#ident "@(#)moveresize.c	1.6 olvwm version 07 Jan 1994"
+#ident "@(#)moveresize.c	1.7 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -1087,6 +1087,7 @@
 
     destroyStatusWindow(mstuff->statuswindow);
     mstuff->statuswindow = NULL;
+    GRV.AutoRaise = mstuff->AutoRaise;
     UninstallInterposer();
 }
 
diff -u --recursive --new-file olvwm.orig/olvwm.info olvwm/olvwm.info
--- olvwm.orig/olvwm.info	Wed Dec 31 18:00:00 1969
+++ olvwm/olvwm.info	Sat Oct 15 10:03:17 1994
@@ -0,0 +1,48 @@
+# -----------------------------------------------
+#	olvwm.info	31 October 1991
+#
+#	OpenWindows Version 3
+# -----------------------------------------------
+#	@(#)olvwm.info	1.2 25 Nov 1992
+##########################50######################
+:VDM:
+Virtual Desktop Manager
+
+The Virtual Desktop Manager (VDM) allows you to
+have 1 or more logical desktops one of which may
+be viewed at any time.  Each desktop is
+represented by a region surrounded with
+a dashed line.
+
+The background of the VDM represents the logical
+desktops which you currently have; you can
+increase or reduce this number simply by
+resizing the VDM.  If you make the VDM smaller, 
+the rightmost and bottommost desktops will
+"go away" and you will not be able to access
+any windows in that desktop.  The windows
+themselves are still active, though, and will
+appear if you again make the VDM larger.
+
+The desktop boundaries are not physical
+boundaries; a window can straddle a boundary
+and you can view portions of more that one
+desktop at a time (whatever amount that will
+fit on your screen).  Usually, though, you
+will see a logical boundary between desktops.
+
+To move to another desktop, you can use the arrow
+keys or you can double-click the SELECT button
+inside the VDM at the location you want to go to.
+Pressing MENU in the VDM brings up a menu which
+also allows you to move to a different desktop.
+
+The small windows in the desktop represent each
+frame as it appears on your screen.  In terms of
+window manager actions, they mimic the frame they
+represent:  you can select and move them with
+the SELECT button, you can bring up their
+window menu with the MENU button, you can drop
+items from other tools into them, etc.  All
+actions performed on one of these little
+windows affects the frame the window represents.
diff -u --recursive --new-file olvwm.orig/olwm.c olvwm/olwm.c
--- olvwm.orig/olwm.c	Thu Jan 13 15:36:12 1994
+++ olvwm/olwm.c	Sat Oct 15 10:37:01 1994
@@ -54,6 +54,10 @@
 
 #include "patchlevel.h"
 
+#if defined(linux) && !defined(MAXPID)
+#define MAXPID 32767
+#endif
+
 typedef	void	(*VoidFunc)();
 
 
@@ -252,19 +256,19 @@
 	 * Set up signal handlers.  Clean up and exit on SIGHUP, SIGINT, and 
 	 * SIGTERM; note child process changes on SIGCHLD.
 	 */
-#ifdef SYSV
+/* #ifdef SYSV
 	sigset(SIGHUP, (VoidFunc)ExitOLWM);
 	sigset(SIGINT, (VoidFunc)ExitOLWM);
 	sigset(SIGTERM, (VoidFunc)ExitOLWM);
 	sigset(SIGCHLD, handleChildSignal);
 	sigset(SIGUSR1, (VoidFunc)RestartOLWM);
-#else
+#else */
 	signal(SIGHUP, (VoidFunc)ExitOLWM);
 	signal(SIGINT, (VoidFunc)ExitOLWM);
 	signal(SIGTERM, (VoidFunc)ExitOLWM);
 	signal(SIGCHLD, handleChildSignal);
 	signal(SIGUSR1, (VoidFunc)RestartOLWM);
-#endif
+/* #endif */
 
 	XrmInitialize();
 
@@ -626,13 +630,13 @@
 int
 RestartOLWM()
 {
-#ifndef SYSV
+/* #ifndef SYSV */
 int     mask;
     mask = sigblock(SIGUSR1);
     sigsetmask(mask & ~(sigmask(SIGUSR1)));
-#else
+/* #else
     sigrelse(SIGUSR1);
-#endif
+#endif */
     cleanup();
     execvp(argVec[0], argVec);
     ErrorGeneral("cannot restart");
@@ -658,10 +662,8 @@
 handleChildSignal()
 {
 #ifdef SYSV
-#ifndef SVR4
 	signal(SIGCHLD, handleChildSignal);
 #endif
-#endif
 	deadChildren = True;
 }
 
@@ -676,6 +678,7 @@
 #ifdef SYSV
         pid_t pid;
         int status;
+	int oldmask;
 #else
 	int oldmask;
 	int pid;
@@ -685,11 +688,11 @@
 	if (!deadChildren)
 		return;
 
-#ifdef SYSV
+/* #ifdef SYSV
 	sighold(SIGCHLD);
-#else
+#else */
 	oldmask = sigblock(sigmask(SIGCHLD));
-#endif
+/* #endif */
 
 	/* clean up children until there are no more to be cleaned up */
 
@@ -722,11 +725,11 @@
 
 	deadChildren = False;
 
-#ifdef SYSV
+/* #ifdef SYSV 
 	sigrelse(SIGCHLD);
-#else
+#else */
         (void) sigsetmask(oldmask);
-#endif
+/* #endif */
 }
 
 
diff -u --recursive --new-file olvwm.orig/parse.l olvwm/parse.l
--- olvwm.orig/parse.l	Thu Jan 13 15:46:52 1994
+++ olvwm/parse.l	Sat Oct 15 10:04:35 1994
@@ -53,6 +53,10 @@
 \}	{ return CLOSEBRACE; }
 
 \"[^"]*\"	{
+#ifdef FLEX_SCANNER
+#undef yymore()
+#define yymore() (yy_more_flag = 1)
+#endif
 	    if (yytext[yyleng - 1] == '\\')
 		yymore();
 	    else {
diff -u --recursive --new-file olvwm.orig/patchlevel.h olvwm/patchlevel.h
--- olvwm.orig/patchlevel.h	Thu Jan 13 15:40:04 1994
+++ olvwm/patchlevel.h	Sat Oct 15 10:03:17 1994
@@ -1 +1 @@
-#define PATCHLEVELv4 0
+#define PATCHLEVELv4 1
diff -u --recursive --new-file olvwm.orig/pixmap.c olvwm/pixmap.c
--- olvwm.orig/pixmap.c	Thu Jan 13 15:36:12 1994
+++ olvwm/pixmap.c	Sat Oct 15 10:03:17 1994
@@ -4,7 +4,7 @@
  */
 
 #ifdef IDENT
-#ident "%W% olvwm version %G%"
+#ident "@(#)pixmap.c	1.3 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -20,8 +20,20 @@
 #include <X11/XWDFile.h>
 
 #ifdef XPM
+#ifndef NO_PIXEL_FIX
+/* The problem with xpm.h is that it includes <X11/Intrinsic.h> to get
+ * the typedef for Pixel.  Intrinsic.h, however, also typedefs Boolean
+ * (to char).  This causes the compiler to fail on the Boolean typedef
+ * in <olgx/olgx.h> (which is, of course, also char). <olgx/olgx.h> is
+ * included within "win.h".
+ * This kludge typedefs Pixel and defines _XtIntrinsic_h so that the
+ * real Intrinsic.h does not get included.
+ */
+#define _XtIntrinsic_h
+typedef unsigned long   Pixel;      /* Index into colormap              */
+#endif  /* NO_PIXEL_FIX */
 #include <xpm.h>
-#endif
+#endif XPM
 
 #include "i18n.h"
 #include <olgx/olgx.h>
@@ -159,6 +171,7 @@
 }
 
 FreePixmapColors(dpy, ncolors, colors, colormap)
+    Display *dpy;
     int ncolors;
     XColor *colors;
     Colormap *colormap;
diff -u --recursive --new-file olvwm.orig/resources.c olvwm/resources.c
--- olvwm.orig/resources.c	Thu Jan 13 15:36:14 1994
+++ olvwm/resources.c	Sat Oct 15 10:11:20 1994
@@ -5,7 +5,7 @@
  */
 
 #ifdef IDENT
-#ident "@(#)resources.c	1.6 olvwm version 07 Jan 1994"
+#ident "@(#)resources.c	1.7 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -83,6 +83,12 @@
 
 #ifdef OW_I18N_L3
 
+
+#if defined(linux) && !defined(LC_MESSAGES)
+#define LC_MESSAGES LC_RESPONSE
+#endif
+
+
 static void GRVLCInit();
 static Bool cvtOLLC();
 static void setOLLCPosix();
@@ -1577,7 +1583,7 @@
 	    GRV.lc_ilang.locale ? GRV.lc_ilang.locale : "(null)",
 	    GRV.lc_numeric.locale ? GRV.lc_numeric.locale : "(null)",
 	    GRV.lc_datefmt.locale ? GRV.lc_datefmt.locale : "(null)");
-										#endif
+#endif
 
 
 /* ===== Updaters ========================================================= */
diff -u --recursive --new-file olvwm.orig/screen.c olvwm/screen.c
--- olvwm.orig/screen.c	Thu Jan 13 15:36:16 1994
+++ olvwm/screen.c	Sat Oct 15 10:03:18 1994
@@ -5,7 +5,7 @@
  */
 
 #ifdef IDENT
-#ident	"@(#)screen.c	1.6 olvwm version 07 Jan 1994"
+#ident	"@(#)screen.c	1.7 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -646,7 +646,7 @@
         XColor          *olwmcolor,
         XColor          *rootcolor)
 #else
-makeRootColor(dpy, scrInfo, colorname, defaultcolor, olwmcolor, rootcolor)
+makeRootColors(dpy, scrInfo, colorname, defaultcolor, olwmcolor, rootcolor)
 	Display		*dpy;
 	ScreenInfo	*scrInfo;
 	char		*colorname;
@@ -2445,6 +2445,7 @@
 char		*name;
 XSizeHints	*sizeHints;
 PixInfo		*pm;
+long		sizeSet;
 	
 	name = getResource(scrInfo,virtualMapNameCQ,virtualMapNameIQ);
 	if (!name)
@@ -2456,15 +2457,15 @@
 	scrInfo->vdm->resources->background = strdup(name);
 	pm = &scrInfo->vdm->resources->pixInfo;
 	if (MakePixmap(dpy, scrInfo, name, pm)) {
+	    XGetWMNormalHints(dpy, PANEWINOFCLIENT(scrInfo->vdm->client),
+				sizeHints, &sizeSet);
 	    SetWName(dpy, scrInfo->vdm);
 	    sizeHints = XAllocSizeHints();
 	    sizeHints->max_width = pm->width;
 	    sizeHints->max_height = pm->height;
-	    sizeHints->flags = PMaxSize;
-	    XChangeProperty(dpy, PANEWINOFCLIENT(scrInfo->vdm->client),
-		XA_WM_NORMAL_HINTS, XA_WM_SIZE_HINTS,
-		32, PropModeReplace, (unsigned char *) sizeHints,
-		sizeof(XSizeHints) / sizeof(long));
+	    sizeHints->flags |= PMaxSize;
+	    XSetWMNormalHints(dpy, PANEWINOFCLIENT(scrInfo->vdm->client),
+				sizeHints);
 	    XFree(sizeHints);
 	    XSetWindowBackgroundPixmap(dpy,
 			PANEWINOFCLIENT(scrInfo->vdm->client), pm->pixmap);
diff -u --recursive --new-file olvwm.orig/services.c olvwm/services.c
--- olvwm.orig/services.c	Thu Jan 13 15:36:17 1994
+++ olvwm/services.c	Sat Oct 15 10:04:35 1994
@@ -43,6 +43,10 @@
 #include "error.h"
 #include "dsdm.h"
 
+#ifdef linux
+#define SYSV
+#endif
+
 extern	char		*getenv();
 extern	unsigned int	FindModifierMask();
 extern	void		ReInitUserMenu();
diff -u --recursive --new-file olvwm.orig/slave.c olvwm/slave.c
--- olvwm.orig/slave.c	Thu Jan 13 15:36:18 1994
+++ olvwm/slave.c	Sat Oct 15 10:11:57 1994
@@ -90,7 +90,7 @@
 		else
 			maxfd = rlimit.rlim_cur;	
 #else
-#if defined (ultrix) || defined (AIXV3) || defined (sun)
+#if defined (ultrix) || defined (AIXV3) || defined (sun) || defined(linux)
 		maxfd = getdtablesize();
 #else
 		maxfd = NOFILE;
diff -u --recursive --new-file olvwm.orig/states.c olvwm/states.c
--- olvwm.orig/states.c	Thu Jan 13 15:36:20 1994
+++ olvwm/states.c	Sat Oct 15 10:04:35 1994
@@ -8,7 +8,7 @@
  */
 
 #ifdef IDENT
-#ident	"@(#)states.c	1.6 olvwm version 07 Jan 1994"
+#ident	"@(#)states.c	1.7 olvwm version 09 Feb 1994"
 #endif
 
 /*
@@ -19,12 +19,15 @@
 
 #include <errno.h>
 #include <stdio.h>
+#ifdef __STDC__
 #include <X11/Intrinsic.h>
+#endif
 #include <X11/Xos.h>
 #include <X11/Xlib.h>
 #include <X11/Xutil.h>
 #include <X11/Xatom.h>
 #include <X11/keysym.h>
+#include <X11/Intrinsic.h>
 
 #include "i18n.h"
 #include "ollocale.h"
@@ -1356,7 +1359,9 @@
 		        (WinFunc(iconInfo,core.setconfigfunc))
 				(iconInfo->core.client->dpy, iconInfo);
 		    }
+#ifdef NOT
 		    else {
+#endif
                         IconShow(cli, iconInfo);
                 	ClientSetWMState(cli, IconicState);
 		        if (cli->groupmask == GROUP_LEADER)
@@ -1367,7 +1372,9 @@
 			    GroupApply(PANEWINOFCLIENT(cli), iconifyOne,
 				       iconInfo, GROUP_DEPENDENT);
 			}
+#ifdef NOT
 		    }
+#endif
                     break;
 
             	case GROUP_DEPENDENT:
diff -u --recursive --new-file olvwm.orig/usleep.c olvwm/usleep.c
--- olvwm.orig/usleep.c	Thu Jan 13 15:36:21 1994
+++ olvwm/usleep.c	Sat Oct 15 10:43:17 1994
@@ -1,15 +1,15 @@
+#ident	"@(#)usleep.c	26.12	93/06/28 SMI"
+
 /*
- *      (c) Copyright 1989 Sun Microsystems, Inc. Sun design patents
- *      pending in the U.S. and foreign countries. See LEGAL_NOTICE
- *      file for terms of the license.
+ *      (c) Copyright 1989 Sun Microsystems, Inc.
  */
 
-#ifdef IDENT
-#ident "@(#)usleep.c	1.2 olvwm version 25 Nov 1992"
-#endif
+/*
+ *      Sun design patents pending in the U.S. and foreign countries. See
+ *      LEGAL_NOTICE file for terms of the license.
+ */
 
 /*
- * Based on @(#)usleep.c	26.8	91/09/14 SMI
  * usleep() compatibility function
  *
  * Under System V, implements usleep() using the interval timer.  Otherwise,
@@ -29,56 +29,5 @@
 olwm_usleep(usec)
 	unsigned int usec;
 {
-#ifdef SYSV
-	struct itimerval	new, old;
-#ifdef USE_BSD_SIGNALS
-	struct sigvec		new_vec, old_vec;
-	int			old_mask;
-#else
-	struct sigaction	new_vec, old_vec;
-#endif
-
-	if (usec == 0)
-	    return 0;
-
-	new.it_interval.tv_sec = 0;
-	new.it_interval.tv_usec = 0; /* We only want one tick */
-	new.it_value.tv_sec = usec / 1000000;
-	new.it_value.tv_usec = usec % 1000000;
-
-#ifdef USE_BSD_SIGNALS
-	new_vec.sv_handler = olwm_do_nothing;
-	new_vec.sv_mask= 0;
-	new_vec.sv_flags = 0;
-
-	old_mask = sigblock(sigmask(SIGALRM));
-	sigvec(SIGALRM, &new_vec, &old_vec);
-#else
-	new_vec.sa_handler = olwm_do_nothing;
-	sigemptyset(&new_vec.sa_mask);
-	new_vec.sa_flags = 0;
-	sighold(SIGALRM);
-	sigaction(SIGALRM, &new_vec, &old_vec);
-#endif
-
-	setitimer(ITIMER_REAL, &new, &old);
-
-#ifdef USE_BSD_SIGNALS
-	sigpause(0);
-	sigvec(SIGALRM, &old_vec, (struct sigvec *)0);
-	sigsetmask(old_mask);
-#else
-	sigpause(SIGALRM);
-	sigaction(SIGALRM, &old_vec, (struct sigaction *)0);
-	sigrelse(SIGALRM);
-#endif
-
-	setitimer(ITIMER_REAL, &old, (struct itimerval *)0);
-	return 0;
-
-#else SYSV
-
 	return usleep(usec);
-
-#endif /* SYSV */
 }
