aboutsummaryrefslogtreecommitdiff
path: root/st.c
diff options
context:
space:
mode:
Diffstat (limited to 'st.c')
-rw-r--r--st.c42
1 files changed, 26 insertions, 16 deletions
diff --git a/st.c b/st.c
index 710cf34..59fb06c 100644
--- a/st.c
+++ b/st.c
@@ -39,8 +39,8 @@
39 39
40#define USAGE \ 40#define USAGE \
41 "st " VERSION " (c) 2010-2012 st engineers\n" \ 41 "st " VERSION " (c) 2010-2012 st engineers\n" \
42 "usage: st [-t title] [-c class] [-g geometry]" \ 42 "usage: st [-v] [-c class] [-f font] [-g geometry] [-o file]" \
43 " [-w windowid] [-v] [-f file] [-e command...]\n" 43 " [-t title] [-w windowid] [-e command ...]\n"
44 44
45/* XEMBED messages */ 45/* XEMBED messages */
46#define XEMBED_FOCUS_IN 4 46#define XEMBED_FOCUS_IN 4
@@ -365,11 +365,12 @@ static int cmdfd;
365static pid_t pid; 365static pid_t pid;
366static Selection sel; 366static Selection sel;
367static int iofd = -1; 367static int iofd = -1;
368static char **opt_cmd = NULL; 368static char **opt_cmd = NULL;
369static char *opt_io = NULL; 369static char *opt_io = NULL;
370static char *opt_title = NULL; 370static char *opt_title = NULL;
371static char *opt_embed = NULL; 371static char *opt_embed = NULL;
372static char *opt_class = NULL; 372static char *opt_class = NULL;
373static char *opt_font = NULL;
373 374
374void * 375void *
375xmalloc(size_t len) { 376xmalloc(size_t len) {
@@ -2087,7 +2088,7 @@ xinit(void) {
2087 xw.vis = XDefaultVisual(xw.dpy, xw.scr); 2088 xw.vis = XDefaultVisual(xw.dpy, xw.scr);
2088 2089
2089 /* font */ 2090 /* font */
2090 initfonts(FONT); 2091 initfonts((opt_font != NULL)? opt_font : FONT);
2091 2092
2092 /* XXX: Assuming same size for bold font */ 2093 /* XXX: Assuming same size for bold font */
2093 xw.cw = dc.font.rbearing - dc.font.lbearing; 2094 xw.cw = dc.font.rbearing - dc.font.lbearing;
@@ -2503,22 +2504,19 @@ main(int argc, char *argv[]) {
2503 2504
2504 for(i = 1; i < argc; i++) { 2505 for(i = 1; i < argc; i++) {
2505 switch(argv[i][0] != '-' || argv[i][2] ? -1 : argv[i][1]) { 2506 switch(argv[i][0] != '-' || argv[i][2] ? -1 : argv[i][1]) {
2506 case 't':
2507 if(++i < argc) opt_title = argv[i];
2508 break;
2509 case 'c': 2507 case 'c':
2510 if(++i < argc) opt_class = argv[i]; 2508 if(++i < argc)
2511 break; 2509 opt_class = argv[i];
2512 case 'w':
2513 if(++i < argc) opt_embed = argv[i];
2514 break;
2515 case 'f':
2516 if(++i < argc) opt_io = argv[i];
2517 break; 2510 break;
2518 case 'e': 2511 case 'e':
2519 /* eat every remaining arguments */ 2512 /* eat every remaining arguments */
2520 if(++i < argc) opt_cmd = &argv[i]; 2513 if(++i < argc)
2514 opt_cmd = &argv[i];
2521 goto run; 2515 goto run;
2516 case 'f':
2517 if(++i < argc)
2518 opt_font = argv[i];
2519 break;
2522 case 'g': 2520 case 'g':
2523 if(++i >= argc) 2521 if(++i >= argc)
2524 break; 2522 break;
@@ -2540,9 +2538,21 @@ main(int argc, char *argv[]) {
2540 if(xw.fh != 0 && xw.fw != 0) 2538 if(xw.fh != 0 && xw.fw != 0)
2541 xw.isfixed = True; 2539 xw.isfixed = True;
2542 break; 2540 break;
2541 case 'o':
2542 if(++i < argc)
2543 opt_io = argv[i];
2544 break;
2545 case 't':
2546 if(++i < argc)
2547 opt_title = argv[i];
2548 break;
2543 case 'v': 2549 case 'v':
2544 default: 2550 default:
2545 die(USAGE); 2551 die(USAGE);
2552 case 'w':
2553 if(++i < argc)
2554 opt_embed = argv[i];
2555 break;
2546 } 2556 }
2547 } 2557 }
2548 2558