aboutsummaryrefslogtreecommitdiff
path: root/x11-wm
diff options
context:
space:
mode:
authorDoug Barton <dougb@FreeBSD.org>2012-02-27 01:56:49 +0000
committerDoug Barton <dougb@FreeBSD.org>2012-02-27 01:56:49 +0000
commit85d11db043c7e82c2a78f6f98ecdb7d0f9a153c6 (patch)
tree9337015a7a033a514e6f5805bb99a01f03549b5d /x11-wm
parentaec309fbc809216dbbc4cde06cbba586b836d474 (diff)
downloadports-85d11db043c7e82c2a78f6f98ecdb7d0f9a153c6.tar.gz
ports-85d11db043c7e82c2a78f6f98ecdb7d0f9a153c6.zip
Add what I hope is a more robust fix for the problem of not being able
to restore a session. Building WindowMaker with clang found these problems, including the one genuine typo in osdep_bsd.c that seems to be responsible for (most/all?) of the session restoration problem. Patch still under discussion upstream, but I feel comfortable bumping PORTREVISION at this point because these are actual bugs that need fixing, and it 100% solves the restoration problem for me at least.
Notes
Notes: svn path=/head/; revision=292287
Diffstat (limited to 'x11-wm')
-rw-r--r--x11-wm/windowmaker/Makefile4
-rw-r--r--x11-wm/windowmaker/files/patch-clang-warnings94
2 files changed, 95 insertions, 3 deletions
diff --git a/x11-wm/windowmaker/Makefile b/x11-wm/windowmaker/Makefile
index e742e8609323..fb3c0c7f5082 100644
--- a/x11-wm/windowmaker/Makefile
+++ b/x11-wm/windowmaker/Makefile
@@ -6,7 +6,7 @@
PORTNAME?= windowmaker
PORTVERSION= 0.95.2
-PORTREVISION?= 0
+PORTREVISION?= 1
CATEGORIES= x11-wm windowmaker
MASTER_SITES= http://windowmaker.org/pub/%SUBDIR%/ \
http://dougbarton.us/Downloads/
@@ -73,8 +73,6 @@ pre-patch:
${WRKSRC}/WPrefs.app/Paths.c
@${REINPLACE_CMD} -e "s#WPrefs#${PREFIX}/GNUstep/Applications/WPrefs.app/WPrefs#" \
${WRKSRC}/util/wmgenmenu.c
- @${REINPLACE_CMD} -e "764s#wPreferences.flags.restarting == 0#!wPreferences.flags.restarting#" \
- ${WRKSRC}/src/startup.c
post-install:
@${MKDIR} ${PREFIX}/GNUstep/Applications/WPrefs.app/xpm
diff --git a/x11-wm/windowmaker/files/patch-clang-warnings b/x11-wm/windowmaker/files/patch-clang-warnings
new file mode 100644
index 000000000000..289696ed4684
--- /dev/null
+++ b/x11-wm/windowmaker/files/patch-clang-warnings
@@ -0,0 +1,94 @@
+diff -ur ../WindowMaker-0.95.2-pre-clang/src/actions.c ./src/actions.c
+--- ../WindowMaker-0.95.2-pre-clang/src/actions.c 2012-02-14 11:36:01.000000000 -0800
++++ ./src/actions.c 2012-02-25 02:29:30.000000000 -0800
+@@ -60,6 +60,9 @@
+ unsigned int *new_width, unsigned int *new_height);
+ static void save_old_geometry(WWindow *wwin);
+
++/* In usermenu.c */
++void wUserMenuRefreshInstances(WMenu * menu, WWindow * wwin);
++
+ /******* Local Variables *******/
+ static struct {
+ int steps;
+diff -ur ../WindowMaker-0.95.2-pre-clang/src/event.c ./src/event.c
+--- ../WindowMaker-0.95.2-pre-clang/src/event.c 2012-02-14 11:36:01.000000000 -0800
++++ ./src/event.c 2012-02-25 02:30:58.000000000 -0800
+@@ -130,9 +130,11 @@
+ static void handleFocusIn(XEvent *event);
+ static void handleMotionNotify(XEvent *event);
+ static void handleVisibilityNotify(XEvent *event);
+-static void handle_inotify_events(int fd, int wd);
+ static void wdelete_death_handler(WMagicNumber id);
+
++#ifdef HAVE_INOTIFY
++static void handle_inotify_events(int fd, int wd);
++#endif
+
+ #ifdef SHAPE
+ static void handleShapeNotify(XEvent *event);
+diff -ur ../WindowMaker-0.95.2-pre-clang/src/osdep_bsd.c ./src/osdep_bsd.c
+--- ../WindowMaker-0.95.2-pre-clang/src/osdep_bsd.c 2012-02-14 11:36:01.000000000 -0800
++++ ./src/osdep_bsd.c 2012-02-25 02:31:25.000000000 -0800
+@@ -85,7 +85,7 @@
+ mib[0] = CTL_KERN;
+ mib[1] = KERN_ARGMAX;
+ mib[2] = 0;
+- mib[4] = 0;
++ mib[3] = 0;
+
+ count = sizeof(argmax);
+ if (sysctl(mib, 2, &argmax, &count, NULL, 0) == -1)
+diff -ur ../WindowMaker-0.95.2-pre-clang/src/usermenu.c ./src/usermenu.c
+--- ../WindowMaker-0.95.2-pre-clang/src/usermenu.c 2012-02-14 11:36:01.000000000 -0800
++++ ./src/usermenu.c 2012-02-25 02:37:25.000000000 -0800
+@@ -82,6 +82,9 @@
+ /*** var ***/
+ extern WPreferences wPreferences;
+
++/* In xmodifier.c */
++int wXModifierFromKey(char *key);
++
+ typedef struct {
+ WScreen *screen;
+ WShortKey *key;
+@@ -133,7 +136,6 @@
+ WUserMenuData *data;
+ KeySym ksym;
+ char *k;
+- char *buffer;
+ char buf[MAX_SHORTCUT_LENGTH], *b;
+ int keycount, i, j, mod;
+
+@@ -283,7 +285,6 @@
+
+ void wUserMenuRefreshInstances(WMenu * menu, WWindow * wwin)
+ {
+- WMenuEntry *entry;
+ int i, j, count, paintflag;
+
+ paintflag = 0;
+@@ -324,13 +325,11 @@
+ static WMenu *readUserMenuFile(WScreen * scr, char *file_name)
+ {
+ WMenu *menu;
+- char *mtitle;
+- WMPropList *plum, *elem, *title, *command, *params;
+- int count, i;
++ WMPropList *plum;
+
+ menu = NULL;
+ plum = WMReadPropListFromFile(file_name);
+- /**/ if (plum) {
++ if (plum) {
+ menu = configureUserMenu(scr, plum);
+ WMReleasePropList(plum);
+ }
+@@ -340,7 +339,6 @@
+ WMenu *wUserMenuGet(WScreen * scr, WWindow * wwin)
+ {
+ WMenu *menu = NULL;
+- char buffer[100];
+ char *path = NULL;
+ char *tmp;
+ if (wwin->wm_instance && wwin->wm_class) {