Don't do this GNU extension stuff. Index: src/icesh.cc --- src/icesh.cc.orig +++ src/icesh.cc @@ -2558,6 +2558,8 @@ void IceSh::doSync() bool IceSh::colormaps() { + void (*previous)(int); + if ( !isAction("colormaps", 0)) return false; @@ -2566,7 +2568,7 @@ bool IceSh::colormaps() tlog("colormaps"); running = true; - sighandler_t previous = signal(SIGINT, catcher); + previous = signal(SIGINT, catcher); while (running) { int n = 0; Colormap* map = XListInstalledColormaps(display, root, &n); @@ -2760,11 +2762,13 @@ void IceSh::monitors() bool IceSh::guiEvents() { + void (*previous)(int); + if ( !isAction("guievents", 0)) return false; running = true; - sighandler_t previous = signal(SIGINT, catcher); + previous = signal(SIGINT, catcher); XSelectInput(display, root, PropertyChangeMask); while (running) { if (XPending(display)) {