patch: workingdir

This commit is contained in:
frosty 2024-08-19 22:56:27 +00:00
parent 4d63ceec5f
commit 142a94876f
2 changed files with 17 additions and 4 deletions

8
st.1
View file

@ -6,6 +6,8 @@ st \- simple terminal
.RB [ \-aiv ] .RB [ \-aiv ]
.RB [ \-c .RB [ \-c
.IR class ] .IR class ]
.RB [ \-d
.IR path ]
.RB [ \-f .RB [ \-f
.IR font ] .IR font ]
.RB [ \-g .RB [ \-g
@ -32,6 +34,8 @@ st \- simple terminal
.RB [ \-aiv ] .RB [ \-aiv ]
.RB [ \-c .RB [ \-c
.IR class ] .IR class ]
.RB [ \-d
.IR path ]
.RB [ \-f .RB [ \-f
.IR font ] .IR font ]
.RB [ \-g .RB [ \-g
@ -62,6 +66,10 @@ disable alternate screens in terminal
.BI \-c " class" .BI \-c " class"
defines the window class (default $TERM). defines the window class (default $TERM).
.TP .TP
.BI \-d " path"
changes the working directory to
.IR path .
.TP
.BI \-f " font" .BI \-f " font"
defines the defines the
.I font .I font

13
x.c
View file

@ -264,6 +264,7 @@ static char *opt_io = NULL;
static char *opt_line = NULL; static char *opt_line = NULL;
static char *opt_name = NULL; static char *opt_name = NULL;
static char *opt_title = NULL; static char *opt_title = NULL;
static char *opt_dir = NULL;
static uint buttons; /* bit field of pressed buttons */ static uint buttons; /* bit field of pressed buttons */
@ -2205,12 +2206,12 @@ run(void)
void void
usage(void) usage(void)
{ {
die("usage: %s [-aiv] [-c class] [-f font] [-g geometry]" die("usage: %s [-aiv] [-c class] [-d path] [-f font]"
" [-n name] [-o file]\n" " [-g geometry] [-n name] [-o file]\n"
" [-T title] [-t title] [-w windowid]" " [-T title] [-t title] [-w windowid]"
" [[-e] command [args ...]]\n" " [[-e] command [args ...]]\n"
" %s [-aiv] [-c class] [-f font] [-g geometry]" " %s [-aiv] [-c class] [-d path] [-f font]"
" [-n name] [-o file]\n" " [-g geometry] [-n name] [-o file]\n"
" [-T title] [-t title] [-w windowid] -l line" " [-T title] [-t title] [-w windowid] -l line"
" [stty_args ...]\n", argv0, argv0); " [stty_args ...]\n", argv0, argv0);
} }
@ -2270,6 +2271,9 @@ main(int argc, char *argv[])
if (!(defaultfontsize > 0)) if (!(defaultfontsize > 0))
usage(); usage();
break; break;
case 'd':
opt_dir = EARGF(usage());
break;
default: default:
usage(); usage();
} ARGEND; } ARGEND;
@ -2289,6 +2293,7 @@ run:
xinit(cols, rows); xinit(cols, rows);
xsetenv(); xsetenv();
selinit(); selinit();
chdir(opt_dir);
run(); run();
return 0; return 0;