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