add -w option to embed st. (thx nodus cursorius)
This commit is contained in:
		
							
								
								
									
										6
									
								
								st.1
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								st.1
									
									
									
									
									
								
							@@ -7,6 +7,8 @@ st \- simple terminal
 | 
			
		||||
.IR class ]
 | 
			
		||||
.RB [ \-t 
 | 
			
		||||
.IR title ]
 | 
			
		||||
.RB [ \-w 
 | 
			
		||||
.IR windowid ]
 | 
			
		||||
.RB [ \-v ]
 | 
			
		||||
.RB [ \-e
 | 
			
		||||
.IR command ...]
 | 
			
		||||
@@ -21,6 +23,10 @@ defines the window title (default 'st').
 | 
			
		||||
.BI \-c " class"
 | 
			
		||||
defines the window class (default $TERM).
 | 
			
		||||
.TP
 | 
			
		||||
.BI \-w " windowid"
 | 
			
		||||
embeds st within the window identified by 
 | 
			
		||||
.I windowid
 | 
			
		||||
.TP
 | 
			
		||||
.B \-v
 | 
			
		||||
prints version information to stderr, then exits.
 | 
			
		||||
.TP
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								st.c
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								st.c
									
									
									
									
									
								
							@@ -35,7 +35,7 @@
 | 
			
		||||
 | 
			
		||||
#define USAGE \
 | 
			
		||||
	"st-" VERSION ", (c) 2010-2011 st engineers\n" \
 | 
			
		||||
	"usage: st [-t title] [-c class] [-v] [-e command...]\n"
 | 
			
		||||
	"usage: st [-t title] [-c class] [-w windowid] [-v] [-e command...]\n"
 | 
			
		||||
 | 
			
		||||
/* Arbitrary sizes */
 | 
			
		||||
#define ESC_TITLE_SIZ 256
 | 
			
		||||
@@ -260,6 +260,7 @@ static pid_t pid;
 | 
			
		||||
static Selection sel;
 | 
			
		||||
static char **opt_cmd  = NULL;
 | 
			
		||||
static char *opt_title = NULL;
 | 
			
		||||
static char *opt_embed = NULL;
 | 
			
		||||
static char *opt_class = NULL;
 | 
			
		||||
 | 
			
		||||
int
 | 
			
		||||
@@ -1606,6 +1607,7 @@ void
 | 
			
		||||
xinit(void) {
 | 
			
		||||
	XSetWindowAttributes attrs;
 | 
			
		||||
	Cursor cursor;
 | 
			
		||||
	Window parent;
 | 
			
		||||
 | 
			
		||||
	if(!(xw.dpy = XOpenDisplay(NULL)))
 | 
			
		||||
		die("Can't open display\n");
 | 
			
		||||
@@ -1636,7 +1638,8 @@ xinit(void) {
 | 
			
		||||
		| ButtonMotionMask | ButtonPressMask | ButtonReleaseMask;
 | 
			
		||||
	attrs.colormap = xw.cmap;
 | 
			
		||||
 | 
			
		||||
	xw.win = XCreateWindow(xw.dpy, XRootWindow(xw.dpy, xw.scr), 0, 0,
 | 
			
		||||
	parent = opt_embed ? strtol(opt_embed, NULL, 0) : XRootWindow(xw.dpy, xw.scr);
 | 
			
		||||
	xw.win = XCreateWindow(xw.dpy, parent, 0, 0,
 | 
			
		||||
			xw.w, xw.h, 0, XDefaultDepth(xw.dpy, xw.scr), InputOutput,
 | 
			
		||||
			XDefaultVisual(xw.dpy, xw.scr),
 | 
			
		||||
			CWBackPixel | CWBorderPixel | CWBitGravity | CWEventMask
 | 
			
		||||
@@ -1943,6 +1946,9 @@ main(int argc, char *argv[]) {
 | 
			
		||||
		case 'c':
 | 
			
		||||
			if(++i < argc) opt_class = argv[i];
 | 
			
		||||
			break;
 | 
			
		||||
		case 'w':
 | 
			
		||||
			if(++i < argc) opt_embed = argv[i];
 | 
			
		||||
			break;
 | 
			
		||||
		case 'e': 
 | 
			
		||||
			/* eat every remaining arguments */
 | 
			
		||||
			if(++i < argc) opt_cmd = &argv[i];
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user