summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@gmail.com>2013-10-23 19:02:56 +0200
committerDavid Herrmann <dh.herrmann@gmail.com>2013-10-23 19:02:56 +0200
commit24dec422ed037c51a15164feaf5fabdbe9b66b42 (patch)
tree1e6f1e6d07a324c8b48ba0642710f440e26d644a
parent0219fa1c29d8b0901fc314ef9f48a215f27cdb08 (diff)
Run $SHELL or _PATH_BSHELL with -i instead of /bin/sh
Try $SHELL first, then _PATH_BSHELL and path -i as default parameter (login shell) instead of /bin/sh. Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
-rw-r--r--src/wlterm.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/wlterm.c b/src/wlterm.c
index 48b4703..1d30e83 100644
--- a/src/wlterm.c
+++ b/src/wlterm.c
@@ -33,6 +33,7 @@
#include <errno.h>
#include <gtk/gtk.h>
#include <libtsm.h>
+#include <paths.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdio.h>
@@ -127,7 +128,11 @@ static void log_tsm(void *data, const char *file, int line, const char *fn,
static void __attribute__((noreturn)) term_run_child(struct term *term)
{
- char **argv = (char*[]){ "/bin/sh", NULL };
+ char **argv = (char*[]){
+ getenv("SHELL") ? : _PATH_BSHELL,
+ "-i",
+ NULL
+ };
execve(argv[0], argv, environ);
exit(1);