diff options
author | David Gricar <coppie@protonmail.com> | 2024-02-01 05:13:29 +0300 |
---|---|---|
committer | Robin Haberkorn <robin.haberkorn@googlemail.com> | 2024-02-03 16:08:20 +0300 |
commit | a8a9fdc32ffc5ee6e3953322a48e0a8dbceff5a7 (patch) | |
tree | 037bfcc7b4a5af660a594a35a1bd332e2a0e4774 | |
parent | 9846a56bd7fdc86bf788db04bbbcbde7b7eb9952 (diff) | |
download | st-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.1 | 8 | ||||
-rw-r--r-- | x.c | 13 |
2 files changed, 17 insertions, 4 deletions
@@ -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 @@ -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; |