diff options
Diffstat (limited to 'st.c')
| -rw-r--r-- | st.c | 42 | 
1 files changed, 26 insertions, 16 deletions
@@ -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;  		}  	}  | 
