st-workingdir-20200317-51e19ea.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) 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