Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						dd46f634fe 
					 
					
						
						
							
							Now we are correctly not redrawing the whole pane on linefeed, redo the  
						
						 
						
						... 
						
						
						
						last-cursor-position code to move to the right position when panes reach EOL. 
						
						
					 
					
						2009-10-21 16:52:30 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						af2b0f452c 
					 
					
						
						
							
							Tweak descriptions for up/down pane to be clearer.  
						
						 
						
						
						
						
					 
					
						2009-10-21 13:48:27 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9b5da97e6f 
					 
					
						
						
							
							Don't redraw the scroll region on linefeed/reverse index unless it is necessary  
						
						 
						
						... 
						
						
						
						(the cursor is at the bottom/top). Should fix slow cursor movement when using
vi in a pane spotted by pirofti@. 
						
						
					 
					
						2009-10-21 13:42:44 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						683ddbc466 
					 
					
						
						
							
							Some terminals don't correctly clear their let's-wrap flag after changing the  
						
						 
						
						... 
						
						
						
						scroll region (which moves the cursor to 0,0). This means that if the cursor
was at the edge of the screen, any further output after scroll region change
incorrectly causes a line wrap. Add a workaround to move the cursor to position
0 if it is at the screen edge before changing scroll region. 
						
						
					 
					
						2009-10-21 09:36:53 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						7825871d6a 
					 
					
						
						
							
							Getting the read and write ends of the pipe the right way round is usually  
						
						 
						
						... 
						
						
						
						recommended. DOH. 
						
						
					 
					
						2009-10-21 07:24:23 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9afb0d739e 
					 
					
						
						
							
							%zu not %u, doh.  
						
						 
						
						
						
						
					 
					
						2009-10-20 22:17:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						6f2169037e 
					 
					
						
						
							
							Sort out stdout before stdin/stderr in case the stdout side of the pipe got one  
						
						 
						
						... 
						
						
						
						of their fds. 
						
						
					 
					
						2009-10-20 22:15:32 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						480f5d3184 
					 
					
						
						
							
							Correctly nuke the EOL $ marker when scrolling, reported by martynas@, thanks.  
						
						 
						
						
						
						
					 
					
						2009-10-20 21:35:25 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						1af09d6330 
					 
					
						
						
							
							Try to reduce the UTF-8 mess.  
						
						 
						
						... 
						
						
						
						Get rid of passing around u_char[4]s and define a struct utf8_data which has
character data, size (sequence length) and width. Move UTF-8 character
collection into two functions utf8_open/utf8_append in utf8.c which fill in
this struct and use these functions from input.c and the various functions in
screen-write.c.
Space for rather more data than is necessary for one UTF-8 sequence is in the
utf8_data struct because screen_write_copy is still nasty and needs to reinject
the character (after combining) into screen_write_cell. 
						
						
					 
					
						2009-10-20 19:18:28 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						62f234ce3b 
					 
					
						
						
							
							UTF-8 combined character fixes.  
						
						 
						
						... 
						
						
						
						Thai can have treble combinations (1 x width=1 then 2 x width=0) so bump the
UTF-8 cell data size to 9 and alter the code to allow this.
Also break off the combining code into a separate function, handle any further
combining beyond the buffer size by replacing the character with _s, and when
redrawing the UTF-8 character don't assume the first part has just been
printed, redraw the entire line. 
						
						
					 
					
						2009-10-20 17:33:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						387f4d42cc 
					 
					
						
						
							
							Move the check for whether to force a line wrapper lower down into the tty code  
						
						 
						
						... 
						
						
						
						where it has access to the tty width, which is what should have been checked. 
						
						
					 
					
						2009-10-20 16:32:23 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						d1e6388fed 
					 
					
						
						
							
							Nuke stray blank line.  
						
						 
						
						
						
						
					 
					
						2009-10-20 14:22:57 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						2afe395ff2 
					 
					
						
						
							
							Stop updating the screen when not in output mode, stops copy mode getting  
						
						 
						
						... 
						
						
						
						confused. 
						
						
					 
					
						2009-10-19 13:18:13 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						daa26079ee 
					 
					
						
						
							
							Always move the cursor position on !xenl terminals, since there is no invisible  
						
						 
						
						... 
						
						
						
						last cursor position.
Also nuke an unused variable. 
						
						
					 
					
						2009-10-17 08:35:38 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						fe26b5d25f 
					 
					
						
						
							
							Don't print wide characters at screen width - 1. Matches uterm behaviour and  
						
						 
						
						... 
						
						
						
						is probably a better idea anyway. 
						
						
					 
					
						2009-10-17 08:32:18 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						43d62c1ae3 
					 
					
						
						
							
							Instead of having a complicated check to see if the cursor is in the last  
						
						 
						
						... 
						
						
						
						position to avoid an explicit wrap, actually move it there.
Some UTF-8 fixes to come. 
						
						
					 
					
						2009-10-17 08:24:46 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						70355021d8 
					 
					
						
						
							
							When checking whether the region will scroll and the cursor position is thus  
						
						 
						
						... 
						
						
						
						unsuitable for using CUD/CUU, check the current cursor position not the target
position. 
						
						
					 
					
						2009-10-16 19:09:40 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						dba0d54cf5 
					 
					
						
						
							
							The pane pty name isn't useful for anything so show the pane number instead.  
						
						 
						
						
						
						
					 
					
						2009-10-15 07:05:38 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						1a3c334c75 
					 
					
						
						
							
							cmd_find_client shouldn't die when there is an empty slot in the clients  
						
						 
						
						... 
						
						
						
						array. DOH. 
						
						
					 
					
						2009-10-14 20:52:28 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						adad557499 
					 
					
						
						
							
							Don't allow cmd_lookup_client to test clients without a session.  
						
						 
						
						
						
						
					 
					
						2009-10-14 09:29:10 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						ad566a86de 
					 
					
						
						
							
							Move lines into the history when scrolling even if the scroll region is not  
						
						 
						
						... 
						
						
						
						the entire screen.
Allows ircII users to see history, prompted by naddy. 
						
						
					 
					
						2009-10-13 15:38:37 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						71dc6e04e8 
					 
					
						
						
							
							Handle DECCOLM by just emulating its side-effect of clearing the screen.  
						
						 
						
						
						
						
					 
					
						2009-10-13 15:23:13 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						38df960e68 
					 
					
						
						
							
							Add mode keys to move the cursor to the top, middle and bottom of the screen.  
						
						 
						
						... 
						
						
						
						H/M/L in vi mode and M-R/M-r in emacs (bottom of screen not bound in emacs). 
						
						
					 
					
						2009-10-13 13:45:56 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						0907ca1931 
					 
					
						
						
							
							Do this in a better way - print messages when exiting with nonzero.  
						
						 
						
						... 
						
						
						
						Also remove the login shell information from server-info, only the client
should care about it. 
						
						
					 
					
						2009-10-13 13:15:26 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						760e39e405 
					 
					
						
						
							
							Don't print exit messages when used as a login shell, requested by martynas@ a  
						
						 
						
						... 
						
						
						
						while back. 
						
						
					 
					
						2009-10-13 13:11:06 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						5d78371628 
					 
					
						
						
							
							Don't try to use \n across scroll region when doing \r\n either.  
						
						 
						
						
						
						
					 
					
						2009-10-13 08:37:15 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9294cb099f 
					 
					
						
						
							
							When a session is unattached, reset its activity timer to prevent it locking  
						
						 
						
						... 
						
						
						
						instantly when reattached. 
						
						
					 
					
						2009-10-13 06:14:08 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						4dcb5040a0 
					 
					
						
						
							
							Instead of using something sort of similar for both newline checks, use  
						
						 
						
						... 
						
						
						
						something the same. Doesn't fix the bug I'm looking for though :-/. 
						
						
					 
					
						2009-10-13 00:44:16 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						d7626cd9d7 
					 
					
						
						
							
							When drawing lines that have wrapped naturally, don't force a newline but  
						
						 
						
						... 
						
						
						
						permit them to wrap naturally again. This allows terminals that use this to
guess where lines start and end for eg mouse selecting (like xterm) to work
correctly.
This was another long-standing issue raised by several people over the last
while.
Thanks to martynas@ for much testing. This was not trivial to get right so
bringing it in for wider testing and adn to fix any further glitches in-tree. 
						
						
					 
					
						2009-10-12 17:19:47 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						8608c6970d 
					 
					
						
						
							
							When backspace is received at the beginning of a line and the previous line was  
						
						 
						
						... 
						
						
						
						wrapped, move the cursor back up to the end of the previous line.
Another one of the forgotten persons requested this quite a while ago (I need
to start noting names on todo items...) when it was quite hard to
implement. Now it is easy and I don't see it can do any harm, so hey presto... 
						
						
					 
					
						2009-10-12 16:59:55 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						693b3d03e6 
					 
					
						
						
							
							Don't run through the column unchanged case if the row was unchanged but there  
						
						 
						
						... 
						
						
						
						were no suitable optimisations, instead make it an else to fall through to
absolute addressing. 
						
						
					 
					
						2009-10-12 16:41:02 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						eb9826f65d 
					 
					
						
						
							
							If the vertical cursor movement crosses the scroll region, CUU and CUD  
						
						 
						
						... 
						
						
						
						shouldn't be used even if VPA isn't present - in that case CUP should be used. 
						
						
					 
					
						2009-10-12 16:37:43 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						56157444de 
					 
					
						
						
							
							Wrap a couple of long lines.  
						
						 
						
						
						
						
					 
					
						2009-10-12 16:33:39 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						0aab5811ca 
					 
					
						
						
							
							Use absolute movement if right at the end of the line as it isn't a reliable  
						
						 
						
						... 
						
						
						
						place to move from relatively. 
						
						
					 
					
						2009-10-12 14:54:19 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						687c4a9fab 
					 
					
						
						
							
							Use relative cursor movement instead of absolute when possible and when  
						
						 
						
						... 
						
						
						
						supported by the terminal to reduce the size of the output data (generally
about 10-20%). 
						
						
					 
					
						2009-10-12 13:01:18 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						33ae063cae 
					 
					
						
						
							
							Permit attributes to be turned off in #[] by prefixing with "no", for example  
						
						 
						
						... 
						
						
						
						"noblink". 
						
						
					 
					
						2009-10-12 11:08:02 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						762459954f 
					 
					
						
						
							
							Similarly add a tty_cursor_pane function to tidy up most of the calls.  
						
						 
						
						
						
						
					 
					
						2009-10-12 09:29:58 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						972a6f5656 
					 
					
						
						
							
							_absolute is redundant, just use tty_region.  
						
						 
						
						
						
						
					 
					
						2009-10-12 09:16:59 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						f05b32f7ad 
					 
					
						
						
							
							Cleanup: use two functions for region setting, one for absolute and one inside  
						
						 
						
						... 
						
						
						
						pane. 
						
						
					 
					
						2009-10-12 09:09:35 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						0a2a354499 
					 
					
						
						
							
							Like linefeed, don't set the scroll region for reverse index unless it will be  
						
						 
						
						... 
						
						
						
						needed.
While here, also tidy up a couple of long lines and remove an extraneous blank. 
						
						
					 
					
						2009-10-11 22:35:10 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jason McIntyre 
							
						 
					 
					
						
						
							
						
						b4ef3e5071 
					 
					
						
						
							
							punctuation fix;  
						
						 
						
						
						
						
					 
					
						2009-10-11 14:12:10 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						fbb030d7f7 
					 
					
						
						
							
							Set the current window pointer to NULL when killing a winlink that is to be  
						
						 
						
						... 
						
						
						
						replaced with link-window -k. This prevents it being pushed onto the last
window stack and causing a use-after-free.
Only took me an hour to find this :-/... 
						
						
					 
					
						2009-10-11 10:39:27 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						64b5f39656 
					 
					
						
						
							
							Add a pipe-pane command to allow a pane to be piped to a shell command, for  
						
						 
						
						... 
						
						
						
						example:
	pipe-pane 'cat >~/out'
No arguments stops outputing and closes the pipe; the -o flag toggles a pipe
and on and off (useful for key bindings).
Suggested by espie@. 
						
						
					 
					
						2009-10-11 10:04:27 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						325e20d76d 
					 
					
						
						
							
							Convert if-shell over to the background job framework as well.  
						
						 
						
						
						
						
					 
					
						2009-10-11 09:10:57 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						88f3ffe86e 
					 
					
						
						
							
							Remove a debugging leftover and add copyright.  
						
						 
						
						
						
						
					 
					
						2009-10-11 09:04:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						cebc988dd4 
					 
					
						
						
							
							Switch run-shell over to queue the command in the background like #().  
						
						 
						
						
						
						
					 
					
						2009-10-11 08:58:05 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						abedfa77da 
					 
					
						
						
							
							There isn't much point in having a free function if it isn't used.  
						
						 
						
						... 
						
						
						
						Also allow a NULL tree. 
						
						
					 
					
						2009-10-11 07:30:07 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						ff4b4e667a 
					 
					
						
						
							
							Collect status from dead jobs and don't invoke the callback until both  
						
						 
						
						... 
						
						
						
						all input (the socket is closed) and status is available. 
						
						
					 
					
						2009-10-11 07:20:16 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						4bc0f6e7e9 
					 
					
						
						
							
							Clean up by introducing a wrapper struct for mouse clicks rather than passing  
						
						 
						
						... 
						
						
						
						three u_chars around.
As a side-effect this fixes incorrectly rejecting high cursor positions
(because it was comparing them as signed char), reported by Tom Doherty. 
						
						
					 
					
						2009-10-11 07:01:10 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						f68ade7b1d 
					 
					
						
						
							
							Braek some bits out of server_fill_client() that aren't really related to  
						
						 
						
						... 
						
						
						
						polling into their own function. 
						
						
					 
					
						2009-10-11 00:53:14 +00:00