Selection now handles empty lines less counter-intuitively.
Now, when you are selecting a region, you will get all empty lines that happen to be in it, including trailing ones. Last line terminator is omitted as it previously was, though. Signed-off-by: Christoph Lohmann <20h@r-36.net>master
							parent
							
								
									da182612b7
								
							
						
					
					
						commit
						e5ff746430
					
				
							
								
								
									
										7
									
								
								st.c
								
								
								
								
							
							
						
						
									
										7
									
								
								st.c
								
								
								
								
							| 
						 | 
					@ -752,7 +752,7 @@ bpress(XEvent *e) {
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
selcopy(void) {
 | 
					selcopy(void) {
 | 
				
			||||||
	char *str, *ptr;
 | 
						char *str, *ptr;
 | 
				
			||||||
	int x, y, bufsize, isselected = 0, size;
 | 
						int x, y, bufsize, size;
 | 
				
			||||||
	Glyph *gp, *last;
 | 
						Glyph *gp, *last;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if(sel.bx == -1) {
 | 
						if(sel.bx == -1) {
 | 
				
			||||||
| 
						 | 
					@ -763,7 +763,6 @@ selcopy(void) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		/* append every set & selected glyph to the selection */
 | 
							/* append every set & selected glyph to the selection */
 | 
				
			||||||
		for(y = sel.b.y; y < sel.e.y + 1; y++) {
 | 
							for(y = sel.b.y; y < sel.e.y + 1; y++) {
 | 
				
			||||||
			isselected = 0;
 | 
					 | 
				
			||||||
			gp = &term.line[y][0];
 | 
								gp = &term.line[y][0];
 | 
				
			||||||
			last = gp + term.col;
 | 
								last = gp + term.col;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -774,8 +773,6 @@ selcopy(void) {
 | 
				
			||||||
			for(x = 0; gp <= last; x++, ++gp) {
 | 
								for(x = 0; gp <= last; x++, ++gp) {
 | 
				
			||||||
				if(!selected(x, y)) {
 | 
									if(!selected(x, y)) {
 | 
				
			||||||
					continue;
 | 
										continue;
 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					isselected = 1;
 | 
					 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				size = utf8size(gp->c);
 | 
									size = utf8size(gp->c);
 | 
				
			||||||
| 
						 | 
					@ -792,7 +789,7 @@ selcopy(void) {
 | 
				
			||||||
			 * st.
 | 
								 * st.
 | 
				
			||||||
			 * FIXME: Fix the computer world.
 | 
								 * FIXME: Fix the computer world.
 | 
				
			||||||
			 */
 | 
								 */
 | 
				
			||||||
			if(isselected && y < sel.e.y)
 | 
								if(y < sel.e.y)
 | 
				
			||||||
				*ptr++ = '\n';
 | 
									*ptr++ = '\n';
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		*ptr = 0;
 | 
							*ptr = 0;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in New Issue