aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Gricar <coppie@protonmail.com>2024-02-01 05:13:29 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-02-03 16:08:20 +0300
commita8a9fdc32ffc5ee6e3953322a48e0a8dbceff5a7 (patch)
tree037bfcc7b4a5af660a594a35a1bd332e2a0e4774
parent9846a56bd7fdc86bf788db04bbbcbde7b7eb9952 (diff)
downloadst-fork-a8a9fdc32ffc5ee6e3953322a48e0a8dbceff5a7.tar.gz
Add switch to provide initial working directory
This patch adds -p switch which takes one argument 'path' and can be used to set the initial working directory of the new st instance. It acts the same as running 'cd path' command after starting the st instance. Source: https://st.suckless.org/patches/workingdir/
-rw-r--r--st.18
-rw-r--r--x.c13
2 files changed, 17 insertions, 4 deletions
diff --git a/st.1 b/st.1
index 39120b4..b82beb3 100644
--- a/st.1
+++ b/st.1
@@ -6,6 +6,8 @@ st \- simple terminal
.RB [ \-aiv ]
.RB [ \-c
.IR class ]
+.RB [ \-d
+.IR path ]
.RB [ \-f
.IR font ]
.RB [ \-g
@@ -30,6 +32,8 @@ st \- simple terminal
.RB [ \-aiv ]
.RB [ \-c
.IR class ]
+.RB [ \-d
+.IR path ]
.RB [ \-f
.IR font ]
.RB [ \-g
@@ -58,6 +62,10 @@ disable alternate screens in terminal
.BI \-c " class"
defines the window class (default $TERM).
.TP
+.BI \-d " path"
+changes the working directory to
+.IR path .
+.TP
.BI \-f " font"
defines the
.I font
diff --git a/x.c b/x.c
index b36fb8c..2131095 100644
--- a/x.c
+++ b/x.c
@@ -251,6 +251,7 @@ static char *opt_io = NULL;
static char *opt_line = NULL;
static char *opt_name = NULL;
static char *opt_title = NULL;
+static char *opt_dir = NULL;
static uint buttons; /* bit field of pressed buttons */
@@ -2017,12 +2018,12 @@ run(void)
void
usage(void)
{
- die("usage: %s [-aiv] [-c class] [-f font] [-g geometry]"
- " [-n name] [-o file]\n"
+ die("usage: %s [-aiv] [-c class] [-d path] [-f font]"
+ " [-g geometry] [-n name] [-o file]\n"
" [-T title] [-t title] [-w windowid]"
" [[-e] command [args ...]]\n"
- " %s [-aiv] [-c class] [-f font] [-g geometry]"
- " [-n name] [-o file]\n"
+ " %s [-aiv] [-c class] [-d path] [-f font]"
+ " [-g geometry] [-n name] [-o file]\n"
" [-T title] [-t title] [-w windowid] -l line"
" [stty_args ...]\n", argv0, argv0);
}
@@ -2074,6 +2075,9 @@ main(int argc, char *argv[])
case 'v':
die("%s " VERSION "\n", argv0);
break;
+ case 'd':
+ opt_dir = EARGF(usage());
+ break;
default:
usage();
} ARGEND;
@@ -2093,6 +2097,7 @@ run:
xinit(cols, rows);
xsetenv();
selinit();
+ chdir(opt_dir);
run();
return 0;