st

fork of suckless's simple terminal
Index Commits Files Refs README LICENSE
commit 5dfd5df4fe566beb17069e6390236854f6ace58f
parent 9cae1eb0ded2e1ca604753893e2307531ef73afc
Author: Christoph Lohmann <20h@r-36.net>
Date:   Sun, 30 Sep 2012 20:23:10 +0200

This changes -f to be the parameter for the font. Now -f is -o.

The parameters were reordered according to the alphabet too.
Diffstat:
Mst.1 | 33+++++++++++++++++++++------------
Mst.c | 42++++++++++++++++++++++++++----------------
2 files changed, 47 insertions(+), 28 deletions(-)
diff --git a/st.1 b/st.1
@@ -5,15 +5,17 @@ st \- simple terminal
 .B st
 .RB [ \-c
 .IR class ]
+.RB [ \-f
+.IR font ]
 .RB [ \-g
 .IR geometry ]
+.RB [ \-o
+.IR file ]
 .RB [ \-t 
 .IR title ]
 .RB [ \-w 
 .IR windowid ]
 .RB [ \-v ]
-.RB [ \-f
-.IR file ]
 .RB [ \-e
 .IR command ...]
 .SH DESCRIPTION
@@ -21,26 +23,33 @@ st \- simple terminal
 is a simple terminal emulator.
 .SH OPTIONS
 .TP
-.BI \-t " title"
-defines the window title (default 'st').
-.TP
 .BI \-c " class"
 defines the window class (default $TERM).
 .TP
+.BI \-f " font"
+defines the
+.I font
+to use when st is run.
+.TP
+.BI \-g " geometry"
+defines the X11 geometry string, which will fixate the height and width of st. 
+.TP
+.BI \-o " file"
+writes all the I/O to
+.I file.
+This feature is useful when recording st sessions. A value of "-" means
+standard output.
+.TP
+.BI \-t " title"
+defines the window title (default 'st').
+.TP
 .BI \-w " windowid"
 embeds st within the window identified by 
 .I windowid
 .TP
-.B \-g " geometry"
-defines the X11 geometry string, which will fixate the height and width of st. 
 .B \-v
 prints version information to stderr, then exits.
 .TP
-.BI \-f " file"
-writes all the I/O to
-.I file.
-This feature is useful when recording st sessions.
-.TP
 .BI \-e " program " [ " arguments " "... ]"
 st executes
 .I program
diff --git a/st.c b/st.c
@@ -39,8 +39,8 @@
 
 #define USAGE \
     "st " VERSION " (c) 2010-2012 st engineers\n" \
-    "usage: st [-t title] [-c class] [-g geometry]" \
-    " [-w windowid] [-v] [-f file] [-e command...]\n"
+    "usage: st [-v] [-c class] [-f font] [-g geometry] [-o file]" \
+    " [-t title] [-w windowid] [-e command ...]\n"
 
 /* XEMBED messages */
 #define XEMBED_FOCUS_IN  4
@@ -365,11 +365,12 @@ static int cmdfd;
 static pid_t pid;
 static Selection sel;
 static int iofd = -1;
-static char **opt_cmd  = NULL;
-static char *opt_io    = NULL;
+static char **opt_cmd = NULL;
+static char *opt_io = NULL;
 static char *opt_title = NULL;
 static char *opt_embed = NULL;
 static char *opt_class = NULL;
+static char *opt_font = NULL;
 
 void *
 xmalloc(size_t len) {
@@ -2087,7 +2088,7 @@ xinit(void) {
     xw.vis = XDefaultVisual(xw.dpy, xw.scr);
 
     /* font */
-    initfonts(FONT);
+    initfonts((opt_font != NULL)? opt_font : FONT);
 
     /* XXX: Assuming same size for bold font */
     xw.cw = dc.font.rbearing - dc.font.lbearing;
@@ -2503,22 +2504,19 @@ main(int argc, char *argv[]) {
 
     for(i = 1; i < argc; i++) {
         switch(argv[i][0] != '-' || argv[i][2] ? -1 : argv[i][1]) {
-        case 't':
-            if(++i < argc) opt_title = argv[i];
-            break;
         case 'c':
-            if(++i < argc) opt_class = argv[i];
-            break;
-        case 'w':
-            if(++i < argc) opt_embed = argv[i];
-            break;
-        case 'f':
-            if(++i < argc) opt_io = argv[i];
+            if(++i < argc)
+                opt_class = argv[i];
             break;
         case 'e':
             /* eat every remaining arguments */
-            if(++i < argc) opt_cmd = &argv[i];
+            if(++i < argc)
+                opt_cmd = &argv[i];
             goto run;
+        case 'f':
+            if(++i < argc)
+                opt_font = argv[i];
+            break;
         case 'g':
             if(++i >= argc)
                 break;
@@ -2540,9 +2538,21 @@ main(int argc, char *argv[]) {
             if(xw.fh != 0 && xw.fw != 0)
                 xw.isfixed = True;
             break;
+        case 'o':
+            if(++i < argc)
+                opt_io = argv[i];
+            break;
+        case 't':
+            if(++i < argc)
+                opt_title = argv[i];
+            break;
         case 'v':
         default:
             die(USAGE);
+        case 'w':
+            if(++i < argc)
+                opt_embed = argv[i];
+            break;
         }
     }