|
@ -27,6 +27,10 @@ |
|
|
#include <X11/Xft/Xft.h> |
|
|
#include <X11/Xft/Xft.h> |
|
|
#include <fontconfig/fontconfig.h> |
|
|
#include <fontconfig/fontconfig.h> |
|
|
|
|
|
|
|
|
|
|
|
#include "arg.h" |
|
|
|
|
|
|
|
|
|
|
|
char *argv0; |
|
|
|
|
|
|
|
|
#define Glyph Glyph_ |
|
|
#define Glyph Glyph_ |
|
|
#define Font Font_ |
|
|
#define Font Font_ |
|
|
#define Draw XftDraw * |
|
|
#define Draw XftDraw * |
|
@ -41,10 +45,6 @@ |
|
|
#include <libutil.h> |
|
|
#include <libutil.h> |
|
|
#endif |
|
|
#endif |
|
|
|
|
|
|
|
|
#define USAGE \ |
|
|
|
|
|
"st " VERSION " (c) 2010-2013 st engineers\n" \ |
|
|
|
|
|
"usage: st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]" \ |
|
|
|
|
|
" [-t title] [-w windowid] [-e command ...]\n" |
|
|
|
|
|
|
|
|
|
|
|
/* XEMBED messages */ |
|
|
/* XEMBED messages */ |
|
|
#define XEMBED_FOCUS_IN 4 |
|
|
#define XEMBED_FOCUS_IN 4 |
|
@ -3308,70 +3308,66 @@ run(void) { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
|
usage(void) { |
|
|
|
|
|
die("%s " VERSION " (c) 2010-2013 st engineers\n" \ |
|
|
|
|
|
"usage: st [-a] [-v] [-c class] [-f font] [-g geometry] [-o file]" \ |
|
|
|
|
|
" [-t title] [-w windowid] [-e command ...]\n", argv0); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
int |
|
|
int |
|
|
main(int argc, char *argv[]) { |
|
|
main(int argc, char *argv[]) { |
|
|
int i, bitm, xr, yr; |
|
|
|
|
|
|
|
|
int bitm, xr, yr; |
|
|
uint wr, hr; |
|
|
uint wr, hr; |
|
|
|
|
|
|
|
|
xw.fw = xw.fh = xw.fx = xw.fy = 0; |
|
|
xw.fw = xw.fh = xw.fx = xw.fy = 0; |
|
|
xw.isfixed = False; |
|
|
xw.isfixed = False; |
|
|
|
|
|
|
|
|
for(i = 1; i < argc; i++) { |
|
|
|
|
|
switch(argv[i][0] != '-' || argv[i][2] ? -1 : argv[i][1]) { |
|
|
|
|
|
case 'a': |
|
|
|
|
|
allowaltscreen = false; |
|
|
|
|
|
break; |
|
|
|
|
|
case 'c': |
|
|
|
|
|
if(++i < argc) |
|
|
|
|
|
opt_class = argv[i]; |
|
|
|
|
|
break; |
|
|
|
|
|
case 'e': |
|
|
|
|
|
/* eat all remaining arguments */ |
|
|
|
|
|
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; |
|
|
|
|
|
|
|
|
|
|
|
bitm = XParseGeometry(argv[i], &xr, &yr, &wr, &hr); |
|
|
|
|
|
if(bitm & XValue) |
|
|
|
|
|
xw.fx = xr; |
|
|
|
|
|
if(bitm & YValue) |
|
|
|
|
|
xw.fy = yr; |
|
|
|
|
|
if(bitm & WidthValue) |
|
|
|
|
|
xw.fw = (int)wr; |
|
|
|
|
|
if(bitm & HeightValue) |
|
|
|
|
|
xw.fh = (int)hr; |
|
|
|
|
|
if(bitm & XNegative && xw.fx == 0) |
|
|
|
|
|
xw.fx = -1; |
|
|
|
|
|
if(bitm & XNegative && xw.fy == 0) |
|
|
|
|
|
xw.fy = -1; |
|
|
|
|
|
|
|
|
|
|
|
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; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
ARGBEGIN { |
|
|
|
|
|
case 'a': |
|
|
|
|
|
allowaltscreen = false; |
|
|
|
|
|
break; |
|
|
|
|
|
case 'c': |
|
|
|
|
|
opt_class = EARGF(usage()); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'e': |
|
|
|
|
|
/* eat all remaining arguments */ |
|
|
|
|
|
opt_cmd = &argv[1]; |
|
|
|
|
|
goto run; |
|
|
|
|
|
case 'f': |
|
|
|
|
|
opt_font = EARGF(usage()); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'g': |
|
|
|
|
|
bitm = XParseGeometry(EARGF(usage()), &xr, &yr, &wr, &hr); |
|
|
|
|
|
if(bitm & XValue) |
|
|
|
|
|
xw.fx = xr; |
|
|
|
|
|
if(bitm & YValue) |
|
|
|
|
|
xw.fy = yr; |
|
|
|
|
|
if(bitm & WidthValue) |
|
|
|
|
|
xw.fw = (int)wr; |
|
|
|
|
|
if(bitm & HeightValue) |
|
|
|
|
|
xw.fh = (int)hr; |
|
|
|
|
|
if(bitm & XNegative && xw.fx == 0) |
|
|
|
|
|
xw.fx = -1; |
|
|
|
|
|
if(bitm & XNegative && xw.fy == 0) |
|
|
|
|
|
xw.fy = -1; |
|
|
|
|
|
|
|
|
|
|
|
if(xw.fh != 0 && xw.fw != 0) |
|
|
|
|
|
xw.isfixed = True; |
|
|
|
|
|
break; |
|
|
|
|
|
case 'o': |
|
|
|
|
|
opt_io = EARGF(usage()); |
|
|
|
|
|
break; |
|
|
|
|
|
case 't': |
|
|
|
|
|
opt_title = EARGF(usage()); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'w': |
|
|
|
|
|
opt_embed = EARGF(usage()); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'v': |
|
|
|
|
|
default: |
|
|
|
|
|
usage(); |
|
|
|
|
|
} ARGEND; |
|
|
|
|
|
|
|
|
run: |
|
|
run: |
|
|
setlocale(LC_CTYPE, ""); |
|
|
setlocale(LC_CTYPE, ""); |
|
|