Fix extra bracketed paste markers when pasting >8kb
Before this patch, when pasting over BUFSIZE (8192 bytes here), st would
do the following:
    \e[200~...8192 bytes...\e[201~\e[200~...remaining bytes...\e[201~
With this patch, the start marker is only sent when the offset is 0 (at
the beginning of selnotify) and the end marker is only sent when the
remaining bytes to read are 0 (at the end).
For short pastes, both conditions are true in the same iteration.
For long pastes, it removes the extra markers in the middle, keeping the
intended wrapping:
    \e[200~...8192 bytes......remaining bytes...\e[201~
Signed-off-by: Christoph Lohmann <20h@r-36.net>
			
			
This commit is contained in:
		
							parent
							
								
									20d53cebc1
								
							
						
					
					
						commit
						4be353e381
					
				
							
								
								
									
										4
									
								
								st.c
								
								
								
								
							
							
						
						
									
										4
									
								
								st.c
								
								
								
								
							|  | @ -1135,10 +1135,10 @@ selnotify(XEvent *e) | |||
| 			*repl++ = '\r'; | ||||
| 		} | ||||
| 
 | ||||
| 		if (IS_SET(MODE_BRCKTPASTE)) | ||||
| 		if (IS_SET(MODE_BRCKTPASTE) && ofs == 0) | ||||
| 			ttywrite("\033[200~", 6); | ||||
| 		ttysend((char *)data, nitems * format / 8); | ||||
| 		if (IS_SET(MODE_BRCKTPASTE)) | ||||
| 		if (IS_SET(MODE_BRCKTPASTE) && rem == 0) | ||||
| 			ttywrite("\033[201~", 6); | ||||
| 		XFree(data); | ||||
| 		/* number of 32-bit chunks returned */ | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue