nicm 
							
						 
					 
					
						
						
							
						
						3db0d50df4 
					 
					
						
						
							
							The private use area at U+E000 to U+F8FF is not very useful if it is  
						
						 
						
						... 
						
						
						
						width 0, make it width 1 instead. 
						
						
					 
					
						2015-11-14 12:03:23 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						205d15e82d 
					 
					
						
						
							
							All these return values from utf8_* are confusing, use an enum.  
						
						 
						
						
						
						
					 
					
						2015-11-14 11:45:43 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						f401791a56 
					 
					
						
						
							
							Rename a variable in utf8_combine for consistency and use 0xfffd for  
						
						 
						
						... 
						
						
						
						unknown Unicode. 
						
						
					 
					
						2015-11-14 11:13:44 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						dab63b029e 
					 
					
						
						
							
							Couple of assignments to remove compiler warnings.  
						
						 
						
						
						
						
					 
					
						2015-11-14 10:57:59 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						64333e3ef8 
					 
					
						
						
							
							Be more strict about invalid UTF-8.  
						
						 
						
						
						
						
					 
					
						2015-11-14 10:56:31 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						c56b81a2ce 
					 
					
						
						
							
							Push stdout and stderr to clients more aggressively, and add an event to  
						
						 
						
						... 
						
						
						
						continue if the send fails. 
						
						
					 
					
						2015-11-14 09:41:06 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						908e6bb68f 
					 
					
						
						
							
							Log more of UTF-8 input.  
						
						 
						
						
						
						
					 
					
						2015-11-14 08:25:12 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						c4893d8efd 
					 
					
						
						
							
							Log option names in fatal() for missing option.  
						
						 
						
						
						
						
					 
					
						2015-11-13 16:06:43 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						88aa1c8dc3 
					 
					
						
						
							
							Two spacing and spelling nits.  
						
						 
						
						
						
						
					 
					
						2015-11-13 12:18:52 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						531869bd92 
					 
					
						
						
							
							Add window_visible_layout which ignores zoomed panes and use it for  
						
						 
						
						... 
						
						
						
						control mode (which needs to know all panes), from George Nachman. 
						
						
					 
					
						2015-11-13 10:00:26 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						c5689a5a40 
					 
					
						
						
							
							Long overdue change to the way we store cells in the grid: now, instead  
						
						 
						
						... 
						
						
						
						of storing a full grid_cell with UTF-8 data and everything, store a new
type grid_cell_entry. This can either be the cell itself (for ASCII
cells), or an offset into an extended array (per line) for UTF-8
data.
This avoid a large (8 byte) overhead on non-UTF-8 cells (by far the
majority for most users) without the complexity of the shadow array we
had before. Grid memory without any UTF-8 is about half.
The disadvantage that cells can no longer be modified in place and need
to be copied out of the grid and back but it turned out to be lot less
complicated than I expected. 
						
						
					 
					
						2015-11-13 08:09:28 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						e71a915412 
					 
					
						
						
							
							Rename overly-long utf8data to ud throughout.  
						
						 
						
						
						
						
					 
					
						2015-11-12 22:04:37 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						f2d03f4fdd 
					 
					
						
						
							
							grid_put_utf8 is unused, remove it.  
						
						 
						
						
						
						
					 
					
						2015-11-12 14:50:57 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						a209ea3953 
					 
					
						
						
							
							Add utf8_padcstr and use it to align columns in list-keys.  
						
						 
						
						
						
						
					 
					
						2015-11-12 12:43:36 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								jmc 
							
						 
					 
					
						
						
							
						
						1da7475d0e 
					 
					
						
						
							
							tweak previous; ok nicm  
						
						 
						
						
						
						
					 
					
						2015-11-12 12:36:34 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						d6daf37df4 
					 
					
						
						
							
							Tidy utf8.c a little: build table on first use, and make utf8_width take  
						
						 
						
						... 
						
						
						
						a u_int rather than splitting and then combining again in utf8_split. 
						
						
					 
					
						2015-11-12 12:19:57 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						0cc812ae34 
					 
					
						
						
							
							tmux is UTF-8, so if $TMUX is set (tmux running in tmux), the client is  
						
						 
						
						... 
						
						
						
						UTF-8. Also try to make the existing checks more readable. 
						
						
					 
					
						2015-11-12 11:24:08 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						c41673f3fa 
					 
					
						
						
							
							If we know the terminal outside tmux is not UTF-8, replace UTF-8 in  
						
						 
						
						... 
						
						
						
						error messages and whatnot with underscores the same as we do when we
draw UTF-8 characters as part of the screen. 
						
						
					 
					
						2015-11-12 11:10:50 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						1b86f520ea 
					 
					
						
						
							
							Nuke the utf8 and status-utf8 options and make tmux only a UTF-8  
						
						 
						
						... 
						
						
						
						terminal. We still support non-UTF-8 terminals outside tmux, but inside
it is always UTF-8 (as when the utf8 and status-utf8 options were on). 
						
						
					 
					
						2015-11-12 11:09:11 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						a0f3999ce7 
					 
					
						
						
							
							Remove the mouse_utf8_flag format as well.  
						
						 
						
						
						
						
					 
					
						2015-11-12 11:07:10 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						69e0b8326a 
					 
					
						
						
							
							Support UTF-8 key bindings by expanding the key type from int to  
						
						 
						
						... 
						
						
						
						uint64_t and converting UTF-8 to Unicode on input and the reverse on
output. (This allows key bindings, there are still omissions - the
largest being that the various prompts do not accept UTF-8.) 
						
						
					 
					
						2015-11-12 11:05:34 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						7062b0e65d 
					 
					
						
						
							
							Default history-file should be "" not NULL, from Greg Onufe.  
						
						 
						
						
						
						
					 
					
						2015-11-12 08:19:18 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						00c34df186 
					 
					
						
						
							
							Drop mouse-utf8 option and always turn on UTF-8 mouse if the client says  
						
						 
						
						... 
						
						
						
						it supports UTF-8. 
						
						
					 
					
						2015-11-11 23:23:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						6f3475c6c7 
					 
					
						
						
							
							If realpath() fails just try the original path.  
						
						 
						
						
						
						
					 
					
						2015-11-10 22:33:47 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						005e462e01 
					 
					
						
						
							
							Handle absolute paths properly, and don't use resolved path in  
						
						 
						
						... 
						
						
						
						realpath() fails. 
						
						
					 
					
						2015-11-10 22:29:33 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						dcdccf8333 
					 
					
						
						
							
							Same bug as last commit, but in the other copy of the loop in this file...  
						
						 
						
						
						
						
					 
					
						2015-11-05 23:32:21 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								schwarze 
							
						 
					 
					
						
						
							
						
						e9b58d9de4 
					 
					
						
						
							
							Update the internal wcwidth(3) table of tmux(1) to match the data  
						
						 
						
						... 
						
						
						
						in /usr/src/share/locale/ctype/en_US.UTF-8.src, with one single
exception:  Keep U+00AD SOFT HYPHEN at width 1 rather than moving
it to width 0, a tradition already observed in the old
https://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c  .
While here, manually rebalance the btree for optimal lookup speed.
OK nicm@ 
						
						
					 
					
						2015-11-05 16:44:25 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						5577535891 
					 
					
						
						
							
							Pass through right click if mouse is on, from Patrick Palka.  
						
						 
						
						
						
						
					 
					
						2015-11-05 11:05:30 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						455284f1c0 
					 
					
						
						
							
							Detach the client we are looping over, from Thomas Adam.  
						
						 
						
						
						
						
					 
					
						2015-11-03 15:07:36 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						ba7fb49fb9 
					 
					
						
						
							
							Fall back silently to ~ or / rather than checking -c with access(), this  
						
						 
						
						... 
						
						
						
						was the old behaviour. 
						
						
					 
					
						2015-10-31 14:51:15 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						b0a99e85b6 
					 
					
						
						
							
							Don't shift version out of peerid, it is needed later.  
						
						 
						
						
						
						
					 
					
						2015-10-31 13:43:38 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						abb4e9e2fa 
					 
					
						
						
							
							The output log is only useful once and it means creating a file, so open  
						
						 
						
						... 
						
						
						
						it once at startup instead of in every call to tty_open. 
						
						
					 
					
						2015-10-31 13:12:03 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						01defc9f49 
					 
					
						
						
							
							Because pledge(2) does not allow us to pass directory file descriptors  
						
						 
						
						... 
						
						
						
						around, we can't use file descriptors for the working directory because
we will be unable to pass it to a privileged process to tell it where to
read or write files or spawn children. So move tmux back to using
strings for the current working directory. We try to check it exists
with access() when it is set but ultimately fall back to ~ if it fails
at time of use (or / if that fails too). 
						
						
					 
					
						2015-10-31 08:13:58 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						45f3cea263 
					 
					
						
						
							
							Break version check into a separate function, and limit version to 8 bits.  
						
						 
						
						
						
						
					 
					
						2015-10-29 09:35:31 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						bf9c933cae 
					 
					
						
						
							
							Like options, move the environ struct into environ.c.  
						
						 
						
						
						
						
					 
					
						2015-10-28 09:51:55 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						44657bf932 
					 
					
						
						
							
							Move struct options into options.c.  
						
						 
						
						
						
						
					 
					
						2015-10-27 15:58:42 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						67c3a014b9 
					 
					
						
						
							
							No more TMPDIR.  
						
						 
						
						
						
						
					 
					
						2015-10-27 14:51:35 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						07b0ea03c3 
					 
					
						
						
							
							Break the common process set up, event loop and imsg dispatch code  
						
						 
						
						... 
						
						
						
						between server and client out into a separate internal API. This will
make it easier to add another process. 
						
						
					 
					
						2015-10-27 13:23:24 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						9952201ca7 
					 
					
						
						
							
							Count brackets in #{?...} so that nested conditional formats work, from  
						
						 
						
						... 
						
						
						
						Daniel De Graaf. 
						
						
					 
					
						2015-10-27 09:28:31 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						17c2c4219d 
					 
					
						
						
							
							The format callback may not always succeed, so we need to check for  
						
						 
						
						... 
						
						
						
						NULL. From Patrick Palka. 
						
						
					 
					
						2015-10-27 09:18:06 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						3fc001d0a2 
					 
					
						
						
							
							Use copy-mode -et= in WheelUpPane binding, from Patrick Palka.  
						
						 
						
						
						
						
					 
					
						2015-10-27 09:15:21 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						640c6fdd5f 
					 
					
						
						
							
							If a mouse event has no key binding, pass it through to the pane it  
						
						 
						
						... 
						
						
						
						happened in, not the active pane like normal key presses. Fixes problems
seen by Enrico Ghirardi. 
						
						
					 
					
						2015-10-26 23:16:18 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						380a1ea8ef 
					 
					
						
						
							
							Default bindings for mouse wheel on status line to change window (like  
						
						 
						
						... 
						
						
						
						we had before), from Patrick Palka. 
						
						
					 
					
						2015-10-26 23:06:18 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						b85be36d1c 
					 
					
						
						
							
							Handle unknown keys more gracefully, return a string instead of NULL.  
						
						 
						
						
						
						
					 
					
						2015-10-26 22:03:04 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						a22fe33aa0 
					 
					
						
						
							
							Some extra logging of where keys are actually going.  
						
						 
						
						
						
						
					 
					
						2015-10-26 17:17:06 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								jmc 
							
						 
					 
					
						
						
							
						
						c582f7d177 
					 
					
						
						
							
							space before punctuation;  
						
						 
						
						
						
						
					 
					
						2015-10-26 00:15:37 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						e65306d8e7 
					 
					
						
						
							
							Extend the modifiers allowed before formats: as well as the existing  
						
						 
						
						... 
						
						
						
						#{=10:...}  length limit, add #{t:...} to convert a time_t format to a
string, #{b:...} for basename and #{d:...} for dirname. Remove all the
foo_string time formats as they can now be replaced by "t:", for example
#{window_activity_string} becomes #{t:window_activity}. 
						
						
					 
					
						2015-10-25 22:29:17 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						3faa51a0ca 
					 
					
						
						
							
							Pass output from jobs through format_expand() so they are expanded again  
						
						 
						
						... 
						
						
						
						(this was the previous behaviour). 
						
						
					 
					
						2015-10-25 08:59:26 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								deraadt 
							
						 
					 
					
						
						
							
						
						3034a71488 
					 
					
						
						
							
							Let's see if anyone screams about not being able to specify $TMPDIR  
						
						 
						
						... 
						
						
						
						for their tmux sockets.
(Over the years, I have seen $TMPDIR set up worse than /tmp many times,
and don't know how this practice infected other parts of the system.
Nothing uses tmpdir(3), nor a huge-temporary-file program like sort.)
ok nicm 
						
						
					 
					
						2015-10-25 07:48:16 +00:00  
					
					
						 
						
						
							
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								nicm 
							
						 
					 
					
						
						
							
						
						2e2b8a95bd 
					 
					
						
						
							
							Pasting mouse escape sequences is unlikely, so skip them when working  
						
						 
						
						... 
						
						
						
						out whether the user is pasting. 
						
						
					 
					
						2015-10-23 23:46:36 +00:00