diff --git a/spectrwm/.md5sum b/spectrwm/.md5sum index 4fbf8e1f8..150c2dcea 100644 --- a/spectrwm/.md5sum +++ b/spectrwm/.md5sum @@ -1 +1,2 @@ -7698a5b219fdabad07a76ef45b1360d1 spectrwm-2.3.0.tgz +23e32c1e292f2fc94ed88195ffe60023 spectrwm-2.4.0.tgz +1ebde41a8b57b6e116e6effd7a911dc9 spectrwm-fix_unbind.patch diff --git a/spectrwm/Pkgfile b/spectrwm/Pkgfile index 2c06d3b6c..34a3fe686 100644 --- a/spectrwm/Pkgfile +++ b/spectrwm/Pkgfile @@ -4,15 +4,15 @@ # Depends on: xorg-libxrender fontconfig xorg-xcb-util-keysyms xorg-xcb-util-wm name=spectrwm -version=2.3.0 +version=2.4.0 release=1 -source=(https://opensource.conformal.com/snapshots/$name/$name-$version.tgz) +source=(https://opensource.conformal.com/snapshots/$name/$name-$version.tgz + $name-fix_unbind.patch) build () { cd $name-$version/linux + patch -p 1 -d .. -i $SRC/$name-fix_unbind.patch make PREFIX=/usr MANDIR=/usr/man DESTDIR=$PKG install rm $PKG/usr/man/man1/spectrwm_*.1 ln -sf spectrwm $PKG/usr/bin/scrotwm - ln -sf libswmhack.so.0.0 $PKG/usr/lib/libswmhack.so.0 - ln -sf libswmhack.so.0.0 $PKG/usr/lib/libswmhack.so } diff --git a/spectrwm/spectrwm-fix_unbind.patch b/spectrwm/spectrwm-fix_unbind.patch new file mode 100644 index 000000000..7bc81e81a --- /dev/null +++ b/spectrwm/spectrwm-fix_unbind.patch @@ -0,0 +1,64 @@ +commit 844157986de0e1fb9a50c7674eaae527eec23349 +Author: Reginald Kennedy +Date: Sat Nov 16 23:21:15 2013 +0800 + + Fix 'bind[] = ...' not unbinding as expected. + + Fixes #23 + +diff --git a/spectrwm.c b/spectrwm.c +index 34a49be..251b746 100644 +--- a/spectrwm.c ++++ b/spectrwm.c +@@ -6398,6 +6398,9 @@ setconfspawn(const char *selector, const char *value, int flags) + { + char *args; + ++ if (selector == NULL || strlen(selector) == 0) ++ return (1); ++ + args = expand_tilde(value); + + DNPRINTF(SWM_D_SPAWN, "setconfspawn: [%s] [%s]\n", selector, args); +@@ -6646,8 +6649,9 @@ setconfbinding(const char *selector, const char *value, int flags) + /* suppress unused warning since var is needed */ + (void)flags; + +- DNPRINTF(SWM_D_KEY, "setconfbinding: enter\n"); +- if (selector == NULL) { ++ DNPRINTF(SWM_D_KEY, "setconfbinding: enter selector: [%s], " ++ "value: [%s]\n", selector, value); ++ if (selector == NULL || strlen(selector) == 0) { + DNPRINTF(SWM_D_KEY, "setconfbinding: unbind %s\n", value); + if (parsekeys(value, mod_key, &mod, &ks) == 0) { + kfid = KF_INVALID; +@@ -7164,7 +7168,7 @@ setconfquirk(const char *selector, const char *value, int flags) + /* suppress unused warning since var is needed */ + (void)flags; + +- if (selector == NULL) ++ if (selector == NULL || strlen(selector) == 0) + return (0); + + if ((str = strdup(selector)) == NULL) +@@ -7277,9 +7281,6 @@ setconfvalue(const char *selector, const char *value, int flags) + int i, ws_id, num_screens; + char *b, *str; + +- /* suppress unused warning since var is needed */ +- (void)selector; +- + switch (flags) { + case SWM_S_BAR_ACTION: + free(bar_argv[0]); +@@ -7519,7 +7520,9 @@ setconfmodkey(const char *selector, const char *value, int flags) + int + setconfcolor(const char *selector, const char *value, int flags) + { +- setscreencolor(value, ((selector == NULL)?-1:atoi(selector)), flags); ++ setscreencolor(value, ++ (selector == NULL || strlen(selector) == 0) ? -1 : atoi(selector), ++ flags); + return (0); + } +