Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						6dc6333323 
					 
					
						
						
							
							Use strlcpy instead of strncpy, pointed out by deraadt.  
						
						 
						
						
						
						
					 
					
						2009-10-26 21:10:24 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						353f2a2ad4 
					 
					
						
						
							
							Don't do anything in the client callback if the client has already died to  
						
						 
						
						... 
						
						
						
						avoid a use-after-free (the callback is used twice, once for the client itself
and once for the tty). Fixes crashes seen by Han Boetes. 
						
						
					 
					
						2009-10-26 20:47:00 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						53957dcbaa 
					 
					
						
						
							
							Nuke accidentally-committed debugging statement.  
						
						 
						
						
						
						
					 
					
						2009-10-26 18:16:32 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						e831649b64 
					 
					
						
						
							
							Not all terminals swap CSI and SS3 on ctrl, so remove that.  
						
						 
						
						... 
						
						
						
						Also mark the rxvt special-cases as such until terminfo is updated to have
kLFT5, kRIT5 etc. 
						
						
					 
					
						2009-10-26 17:59:46 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						fd2ef18a70 
					 
					
						
						
							
							Rewrite xterm-keys code (both input and output) so that works (doesn't always  
						
						 
						
						... 
						
						
						
						output the same modifiers, accepts all the possible input keys) and is more
understandable. 
						
						
					 
					
						2009-10-26 17:46:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						c92c2bfb10 
					 
					
						
						
							
							Support the (mostly new) function key+modifier caps (kIC-kIC7). Most of these  
						
						 
						
						... 
						
						
						
						will be caught (soon) by the xterm keys code in xterm itself but some other
descriptions such as rxvt define them as well. 
						
						
					 
					
						2009-10-26 16:00:51 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						bbca6fe5b0 
					 
					
						
						
							
							On second thoughts, drop the rxvt output entirely.  
						
						 
						
						
						
						
					 
					
						2009-10-26 14:30:57 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						5cce40d4c3 
					 
					
						
						
							
							Set the output code for ctrl+cursor keys correctly, and disable (comment)  
						
						 
						
						... 
						
						
						
						rxvt-style output. 
						
						
					 
					
						2009-10-26 14:27:13 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						d0aa883e07 
					 
					
						
						
							
							As we always put the cursor keys into application mode, assume keys sent  
						
						 
						
						... 
						
						
						
						with CSI have ctrl.
Also add a couple of comments. 
						
						
					 
					
						2009-10-26 13:58:02 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						fcd3b260ac 
					 
					
						
						
							
							Tidy up table.  
						
						 
						
						
						
						
					 
					
						2009-10-26 13:41:46 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						a0ec4a11ee 
					 
					
						
						
							
							Drop INPUTKEY_CTRL and just handle it as part of the table.  
						
						 
						
						
						
						
					 
					
						2009-10-26 13:34:26 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						25d2000625 
					 
					
						
						
							
							Add or fix some comments.  
						
						 
						
						
						
						
					 
					
						2009-10-26 13:29:24 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						b3604dcf83 
					 
					
						
						
							
							Tidy up table.  
						
						 
						
						
						
						
					 
					
						2009-10-26 13:22:30 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						db4452d307 
					 
					
						
						
							
							Rename keypad keys to something more useful.  
						
						 
						
						
						
						
					 
					
						2009-10-26 13:13:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						10a656eedb 
					 
					
						
						
							
							Remove the xterm-keys code which is broken (a replacement is coming but some  
						
						 
						
						... 
						
						
						
						more cleanup is needed first). 
						
						
					 
					
						2009-10-26 13:02:53 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						3c9619bb0a 
					 
					
						
						
							
							Don't try to continue processing a client if the session has been destroyed.  
						
						 
						
						
						
						
					 
					
						2009-10-25 22:00:15 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						48b6d18e7f 
					 
					
						
						
							
							Remove -d from tmux.1 as well.  
						
						 
						
						
						
						
					 
					
						2009-10-25 21:12:15 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						3a7636ff0f 
					 
					
						
						
							
							Remove the -d flag to tmux and just use op/AX to detect default colours.  
						
						 
						
						... 
						
						
						
						Irritatingly, although op can be used to tell if a terminal supports default
colours, it can't be used to set them because in some terminfo descriptions it
resets attributes as a side-effect (acts as sgr0) and in others it doesn't, so
it is not possible to determine reliably what the terminal state will be
afterwards. So if AX is missing and op is present, tmux just sends sgr0.
Anyone using -d for a terminal who finds they actually needed it can replace it
using terminal-overrides, but please let me know as it is probably an omission
from terminfo. 
						
						
					 
					
						2009-10-25 21:11:21 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						5bed597e61 
					 
					
						
						
							
							+time.h.  
						
						 
						
						
						
						
					 
					
						2009-10-25 17:51:07 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						7b4f0398c3 
					 
					
						
						
							
							[ is a punctuation character and should be escaped with Ql. Although the  
						
						 
						
						... 
						
						
						
						current groff version we have seems to handle it fine, other versions are not
so tolerant. 
						
						
					 
					
						2009-10-25 01:10:57 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						385236e967 
					 
					
						
						
							
							Bring a comment into line with reality.  
						
						 
						
						
						
						
					 
					
						2009-10-24 21:18:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						df818c1b69 
					 
					
						
						
							
							-a option to kill all except current pane. From Tiago Cunha, thanks!  
						
						 
						
						
						
						
					 
					
						2009-10-24 10:12:39 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						c2b8f3b55a 
					 
					
						
						
							
							Support the bright fg/bg colour SGR 90-97 and 100-107.  
						
						 
						
						... 
						
						
						
						Reported by Tim Allen. 
						
						
					 
					
						2009-10-23 15:48:39 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						1f22a199fb 
					 
					
						
						
							
							Redraw checks have to after handling input or pane redraw flags set by key  
						
						 
						
						... 
						
						
						
						presses will not be acted on. 
						
						
					 
					
						2009-10-22 21:01:52 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9c40a4edc5 
					 
					
						
						
							
							The client buffers have to be checked after every event in order to catch the  
						
						 
						
						... 
						
						
						
						escape timers and properly reset the cursor. 
						
						
					 
					
						2009-10-22 20:04:21 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						eddcc3dfa9 
					 
					
						
						
							
							Split the server code handling clients, jobs and windows off into separate  
						
						 
						
						... 
						
						
						
						files from server.c (merging server-msg.c into the client file) and rather than
iterating over each set after poll(), allow a callback to be specified when the
fd is added and just walk once over the returned pollfds calling each callback
where needed.
More to come, getting this in so it is tested. 
						
						
					 
					
						2009-10-22 19:41:51 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						fd35b6f836 
					 
					
						
						
							
							Only redraw the pane when changing mode, not the entire window.  
						
						 
						
						
						
						
					 
					
						2009-10-22 12:30:00 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						eb0c33cba4 
					 
					
						
						
							
							Merge prepare_cmd into main as it is short and only called once.  
						
						 
						
						
						
						
					 
					
						2009-10-22 10:04:07 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						284b94662a 
					 
					
						
						
							
							Tidy identify message send into a separate function.  
						
						 
						
						
						
						
					 
					
						2009-10-21 21:11:55 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						d69b364b5f 
					 
					
						
						
							
							Don't try to unsuspend a client if it isn't suspended.  
						
						 
						
						
						
						
					 
					
						2009-10-21 20:16:40 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						90ad041fa5 
					 
					
						
						
							
							Client tidying: get rid of client_ctx struct in favour of two variables in  
						
						 
						
						... 
						
						
						
						client.c, and move the functions in client-fn.c into other files. 
						
						
					 
					
						2009-10-21 20:11:47 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						59e667906f 
					 
					
						
						
							
							Unused variable.  
						
						 
						
						
						
						
					 
					
						2009-10-21 19:27:09 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						a22c06a2d6 
					 
					
						
						
							
							Remove unused function.  
						
						 
						
						
						
						
					 
					
						2009-10-21 18:20:16 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9a4855295b 
					 
					
						
						
							
							Nuke dead store.  
						
						 
						
						
						
						
					 
					
						2009-10-21 18:12:31 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								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