sites

public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log | Files | Refs

st-workingdir-20200317-51e19ea.diff (2395B)


      1 From ae14b869d7bc0e0cd8ed16157837ad09aaacacc0 Mon Sep 17 00:00:00 2001
      2 From: David Gricar <coppie@protonmail.com>
      3 Date: Tue, 17 Mar 2020 13:38:05 +0100
      4 Subject: [PATCH] Add switch to provide initial working directory
      5 
      6 This patch adds -p switch which takes one argument 'path' and can be
      7 used to set the initial working directory of the new st instance.
      8 It acts the same as running 'cd path' command after starting the st
      9 instance.
     10 ---
     11  st.1 |  8 ++++++++
     12  x.c  | 13 +++++++++----
     13  2 files changed, 17 insertions(+), 4 deletions(-)
     14 
     15 diff --git a/st.1 b/st.1
     16 index e8d6059..a901122 100644
     17 --- a/st.1
     18 +++ b/st.1
     19 @@ -6,6 +6,8 @@ st \- simple terminal
     20  .RB [ \-aiv ]
     21  .RB [ \-c
     22  .IR class ]
     23 +.RB [ \-d
     24 +.IR path ]
     25  .RB [ \-f
     26  .IR font ]
     27  .RB [ \-g
     28 @@ -30,6 +32,8 @@ st \- simple terminal
     29  .RB [ \-aiv ]
     30  .RB [ \-c
     31  .IR class ]
     32 +.RB [ \-d
     33 +.IR path ]
     34  .RB [ \-f
     35  .IR font ]
     36  .RB [ \-g
     37 @@ -58,6 +62,10 @@ disable alternate screens in terminal
     38  .BI \-c " class"
     39  defines the window class (default $TERM).
     40  .TP
     41 +.BI \-d " path"
     42 +changes the working directory to
     43 +.IR path .
     44 +.TP
     45  .BI \-f " font"
     46  defines the
     47  .I font
     48 diff --git a/x.c b/x.c
     49 index 48a6676..fab2ddc 100644
     50 --- a/x.c
     51 +++ b/x.c
     52 @@ -250,6 +250,7 @@ static char *opt_io    = NULL;
     53  static char *opt_line  = NULL;
     54  static char *opt_name  = NULL;
     55  static char *opt_title = NULL;
     56 +static char *opt_dir   = NULL;
     57  
     58  static int oldbutton = 3; /* button event on startup: 3 = release */
     59  
     60 @@ -1958,12 +1959,12 @@ run(void)
     61  void
     62  usage(void)
     63  {
     64 -	die("usage: %s [-aiv] [-c class] [-f font] [-g geometry]"
     65 -	    " [-n name] [-o file]\n"
     66 +	die("usage: %s [-aiv] [-c class] [-d path] [-f font]"
     67 +	    " [-g geometry] [-n name] [-o file]\n"
     68  	    "          [-T title] [-t title] [-w windowid]"
     69  	    " [[-e] command [args ...]]\n"
     70 -	    "       %s [-aiv] [-c class] [-f font] [-g geometry]"
     71 -	    " [-n name] [-o file]\n"
     72 +	    "       %s [-aiv] [-c class] [-d path] [-f font]"
     73 +	    " [-g geometry] [-n name] [-o file]\n"
     74  	    "          [-T title] [-t title] [-w windowid] -l line"
     75  	    " [stty_args ...]\n", argv0, argv0);
     76  }
     77 @@ -2015,6 +2016,9 @@ main(int argc, char *argv[])
     78  	case 'v':
     79  		die("%s " VERSION "\n", argv0);
     80  		break;
     81 +	case 'd':
     82 +		opt_dir = EARGF(usage());
     83 +		break;
     84  	default:
     85  		usage();
     86  	} ARGEND;
     87 @@ -2034,6 +2038,7 @@ run:
     88  	xinit(cols, rows);
     89  	xsetenv();
     90  	selinit();
     91 +	chdir(opt_dir);
     92  	run();
     93  
     94  	return 0;
     95 -- 
     96 2.25.1
     97