| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -32,7 +32,7 @@ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define USAGE \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"st-" VERSION ", (c) 2010 st engineers\n" \ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"usage: st [-t title] [-c class] [-e cmd] [-v]\n" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						"usage: st [-t title] [-c class] [-v] [-e cmd]\n" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					/* Arbitrary sizes */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#define ESC_TITLE_SIZ 256 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -152,6 +152,7 @@ typedef struct { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						int ex, ey; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						struct {int x, y;}  b, e; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						char *clip; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						Atom xtarget; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} Selection; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					#include "config.h" | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -370,6 +371,9 @@ selinit(void) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sel.mode = 0; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sel.bx = -1; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sel.clip = NULL; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						sel.xtarget = XInternAtom(xw.dpy, "UTF8_STRING", 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(sel.xtarget == None) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							sel.xtarget = XA_STRING; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					static inline int  | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -453,7 +457,7 @@ selnotify(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					selpaste() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XConvertSelection(xw.dpy, XA_PRIMARY, XA_STRING, XA_PRIMARY, xw.win, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						XConvertSelection(xw.dpy, XA_PRIMARY, sel.xtarget, XA_PRIMARY, xw.win, CurrentTime); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					void | 
				
			
			
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
				 | 
				
					@ -474,7 +478,7 @@ selrequest(XEvent *e) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						xa_targets = XInternAtom(xw.dpy, "TARGETS", 0); | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if(xsre->target == xa_targets) { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							/* respond with the supported type */ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Atom string = XA_STRING; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Atom string = sel.xtarget; | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XChangeProperty(xsre->display, xsre->requestor, xsre->property, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									XA_ATOM, 32, PropModeReplace, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
									(unsigned char *) &string, 1); | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |