SMOLNET PORTAL home about changes
iFix runentry to not spawn zombies. - thingmenu - A simple graphical menu launcher for X11.	Err	bitreich.org	70
hgit clone git://bitreich.org/thingmenu	URL:git://bitreich.org/thingmenu	bitreich.org	70
1Log	/scm/thingmenu/log.gph	bitreich.org	70
1Files	/scm/thingmenu/files.gph	bitreich.org	70
1Refs	/scm/thingmenu/refs.gph	bitreich.org	70
1Tags	/scm/thingmenu/tag	bitreich.org	70
1LICENSE	/scm/thingmenu/file/LICENSE.gph	bitreich.org	70
i---	Err	bitreich.org	70
1commit 811e5fc9b529d6efa2833e58e9a08165490f3281	/scm/thingmenu/commit/811e5fc9b529d6efa2833e58e9a08165490f3281.gph	bitreich.org	70
1parent bcb369a656d09ae2c2bb76d99622afc9ba33474b	/scm/thingmenu/commit/bcb369a656d09ae2c2bb76d99622afc9ba33474b.gph	bitreich.org	70
hAuthor: Christoph Lohmann <20h@r-36.net>	URL:mailto:20h@r-36.net	bitreich.org	70
iDate:   Fri, 24 May 2019 19:30:12 +0200	Err	bitreich.org	70
i	Err	bitreich.org	70
iFix runentry to not spawn zombies.	Err	bitreich.org	70
i	Err	bitreich.org	70
iThanks to Platon Ryzhikov <ihummer63@yandex.ru> for reporting!	Err	bitreich.org	70
i	Err	bitreich.org	70
iDiffstat:	Err	bitreich.org	70
i  M thingmenu.c                         |      25 +++++++++++++------------	Err	bitreich.org	70
i	Err	bitreich.org	70
i1 file changed, 13 insertions(+), 12 deletions(-)	Err	bitreich.org	70
i---	Err	bitreich.org	70
1diff --git a/thingmenu.c b/thingmenu.c	/scm/thingmenu/file/thingmenu.c.gph	bitreich.org	70
i@@ -524,21 +524,22 @@ void	Err	bitreich.org	70
i runentry(Entry *e)	Err	bitreich.org	70
i {	Err	bitreich.org	70
i         char *shell;	Err	bitreich.org	70
i+        int pid;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        if (fork()) {	Err	bitreich.org	70
i-                if (oneshot || e->forceexit) {	Err	bitreich.org	70
i-                        running = False;	Err	bitreich.org	70
i-                }	Err	bitreich.org	70
i-                return;	Err	bitreich.org	70
i-        }	Err	bitreich.org	70
i-        if (fork())	Err	bitreich.org	70
i-                exit(0);	Err	bitreich.org	70
i+        if (oneshot || e->forceexit)	Err	bitreich.org	70
i+                running = False;	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        shell = getenv("SHELL");	Err	bitreich.org	70
i-        if (!shell)	Err	bitreich.org	70
i-                shell = "/bin/sh";	Err	bitreich.org	70
i+        switch (pid = fork()) {	Err	bitreich.org	70
i+        case -1:	Err	bitreich.org	70
i+                return;	Err	bitreich.org	70
i+        case 0:	Err	bitreich.org	70
i+                shell = getenv("SHELL");	Err	bitreich.org	70
i+                if (!shell)	Err	bitreich.org	70
i+                        shell = "/bin/sh";	Err	bitreich.org	70
i 	Err	bitreich.org	70
i-        execlp(shell, basename(shell), "-c", e->cmd, (char *)NULL);	Err	bitreich.org	70
i+                execlp(shell, basename(shell), "-c", e->cmd, (char *)NULL);	Err	bitreich.org	70
i+                break;	Err	bitreich.org	70
i+        }	Err	bitreich.org	70
i }	Err	bitreich.org	70
i 	Err	bitreich.org	70
i void	Err	bitreich.org	70
.
Response: text/plain
Original URLgopher://bitreich.org/0/scm/thingmenu/commit/811e5fc9b529...
Content-Typetext/plain; charset=utf-8