This changes -f to be the parameter for the font. Now -f is -o. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 5dfd5df4fe566beb17069e6390236854f6ace58f
 (DIR) parent 9cae1eb0ded2e1ca604753893e2307531ef73afc
 (HTM) 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:
         M st.1                                |      33 ++++++++++++++++++++-----------
         M st.c                                |      42 +++++++++++++++++++------------
       
       2 files changed, 47 insertions(+), 28 deletions(-)
       ---
 (DIR) 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
 (DIR) 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;
                        }
                }