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>
This commit is contained in:
		
							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; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user