Add sequence for printing the current selection
This is very usefull in order to can select what is sent to the plumber.dev
							parent
							
								
									96c230e476
								
							
						
					
					
						commit
						78f8843bc7
					
				|  | @ -109,6 +109,7 @@ static Shortcut shortcuts[] = { | |||
| 	/* mask                 keysym          function        argument */ | ||||
| 	{ ControlMask,          XK_Print,       toggleprinter,  {.i =  0} }, | ||||
| 	{ ShiftMask,            XK_Print,       printscreen,    {.i =  0} }, | ||||
| 	{ XK_ANY_MOD,           XK_Print,       printsel,       {.i =  0} }, | ||||
| 	{ MODKEY|ShiftMask,     XK_Prior,       xzoom,          {.i = +1} }, | ||||
| 	{ MODKEY|ShiftMask,     XK_Next,        xzoom,          {.i = -1} }, | ||||
| 	{ ShiftMask,            XK_Insert,      selpaste,       {.i =  0} }, | ||||
|  |  | |||
							
								
								
									
										32
									
								
								st.c
								
								
								
								
							
							
						
						
									
										32
									
								
								st.c
								
								
								
								
							|  | @ -314,6 +314,7 @@ static void clippaste(const Arg *); | |||
| static void numlock(const Arg *); | ||||
| static void selpaste(const Arg *); | ||||
| static void xzoom(const Arg *); | ||||
| static void printsel(const Arg *); | ||||
| static void printscreen(const Arg *) ; | ||||
| static void toggleprinter(const Arg *); | ||||
| 
 | ||||
|  | @ -359,6 +360,7 @@ static void strreset(void); | |||
| 
 | ||||
| static int tattrset(int); | ||||
| static void tprinter(char *s, size_t len); | ||||
| static void tdumpsel(void); | ||||
| static void tdumpline(int); | ||||
| static void tdump(void); | ||||
| static void tclearregion(int, int, int, int); | ||||
|  | @ -435,6 +437,7 @@ static void selrequest(XEvent *); | |||
| static void selinit(void); | ||||
| static void selsort(void); | ||||
| static inline bool selected(int, int); | ||||
| static char *getsel(void); | ||||
| static void selcopy(void); | ||||
| static void selscroll(int, int); | ||||
| static void selsnap(int, int *, int *, int); | ||||
|  | @ -955,8 +958,8 @@ bpress(XEvent *e) { | |||
| 	} | ||||
| } | ||||
| 
 | ||||
| void | ||||
| selcopy(void) { | ||||
| char * | ||||
| getsel(void) { | ||||
| 	char *str, *ptr; | ||||
| 	int x, y, bufsize, size, i, ex; | ||||
| 	Glyph *gp, *last; | ||||
|  | @ -1015,7 +1018,12 @@ selcopy(void) { | |||
| 		} | ||||
| 		*ptr = 0; | ||||
| 	} | ||||
| 	xsetsel(str); | ||||
| 	return str; | ||||
| } | ||||
| 
 | ||||
| void | ||||
| selcopy(void) { | ||||
| 	xsetsel(getsel()); | ||||
| } | ||||
| 
 | ||||
| void | ||||
|  | @ -1994,6 +2002,9 @@ csihandle(void) { | |||
| 		case 1: | ||||
| 			tdumpline(term.c.y); | ||||
| 			break; | ||||
| 		case 2: | ||||
| 			tdumpsel(); | ||||
| 			break; | ||||
| 		case 4: | ||||
| 			term.mode &= ~MODE_PRINT; | ||||
| 			break; | ||||
|  | @ -2294,6 +2305,21 @@ printscreen(const Arg *arg) { | |||
| 	tdump(); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| printsel(const Arg *arg) { | ||||
| 	tdumpsel(); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| tdumpsel(void) | ||||
| { | ||||
| 	char *ptr; | ||||
| 
 | ||||
| 	ptr = getsel(); | ||||
| 	tprinter(ptr, strlen(ptr)); | ||||
| 	free(ptr); | ||||
| } | ||||
| 
 | ||||
| void | ||||
| tdumpline(int n) { | ||||
| 	Glyph *bp, *end; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue