st

My build of suckless' st.
Log | 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; } }