nicm 
							
						 
					 
					
						
						
							
						
						8a838b0372 
					 
					
						
						
							
							Add support for overlay popup boxes to show text or output temporarily  
						
						... 
						
						
						
						above the normal layout. These work similarly to menus and are created
with the display-popup command. 
						
						
					 
					
						2020-03-24 08:09:43 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						e8273a993e 
					 
					
						
						
							
							Add a flag to run a background process in a pty as well, not used for  
						
						... 
						
						
						
						anything yet. 
						
						
					 
					
						2020-03-19 13:43:18 +00:00 
						 
				 
			
				
					
						
							
							
								deraadt 
							
						 
					 
					
						
						
							
						
						4ff7bc3eb3 
					 
					
						
						
							
							When system calls indicate an error they return -1, not some arbitrary  
						
						... 
						
						
						
						value < 0.  errno is only updated in this case.  Change all (most?)
callers of syscalls to follow this better, and let's see if this strictness
helps us in the future. 
						
						
					 
					
						2019-06-28 13:35:05 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						749f67b7d8 
					 
					
						
						
							
							evbuffer_new and bufferevent_new can both fail (when malloc fails) and  
						
						... 
						
						
						
						return NULL. GitHub issue 1547. 
						
						
					 
					
						2018-11-19 13:35:40 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						d5b92ac37e 
					 
					
						
						
							
							Do not printf NULL.  
						
						
						
						
					 
					
						2018-10-28 16:10:02 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						228e1a3951 
					 
					
						
						
							
							Use same working directory rules for jobs as new windows rather than  
						
						... 
						
						
						
						always starting in home, GitHub issue 1488. 
						
						
					 
					
						2018-09-27 07:43:18 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						f38b5a1b58 
					 
					
						
						
							
							all_jobs can be static.  
						
						
						
						
					 
					
						2018-08-23 18:39:12 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						bceccc6b63 
					 
					
						
						
							
							Move job struct into job.c.  
						
						
						
						
					 
					
						2018-08-23 15:45:05 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						19f3a5c612 
					 
					
						
						
							
							Add a missing client-detached hook when the server shuts down, and do  
						
						... 
						
						
						
						not exit until jobs started from run-shell/if-shell have finished (add a
job flags member and a flag to indicate other jobs). GitHub issue 1245. 
						
						
					 
					
						2018-03-08 08:09:10 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						932f6cfbfc 
					 
					
						
						
							
							Because ignore SIGCHLD early, letting signal_del restore it doesn't work  
						
						... 
						
						
						
						correctly, so set it explicitly back to default (and the others for good
measure). 
						
						
					 
					
						2017-07-14 18:49:07 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						51112221ee 
					 
					
						
						
							
							Block signals between forking and clearing signal handlers (or calling  
						
						... 
						
						
						
						event_reinit) - if the child gets a signal and fires the libevent signal
handler during this period it could write a signal into the parent's
signal pipe. GitHub issue 1001 from Aaron van Geffen. 
						
						
					 
					
						2017-07-12 10:04:51 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						0453ad0146 
					 
					
						
						
							
							Move signal code into proc.c.  
						
						
						
						
					 
					
						2017-07-12 09:24:17 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						248aa54bfd 
					 
					
						
						
							
							Style and spacing nits.  
						
						
						
						
					 
					
						2017-05-31 17:56:48 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						c48d09ec88 
					 
					
						
						
							
							Do not update TERM into config file parsing has finished.  
						
						
						
						
					 
					
						2017-04-25 15:35:10 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						0b44ad99b5 
					 
					
						
						
							
							If a #() command doesn't exit, use its most recent line of output (it  
						
						... 
						
						
						
						must be a full line). Don't let it redraw the status line more than once
a second.
Requested by someone about 10 years ago... 
						
						
					 
					
						2017-04-20 09:20:22 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						dbfee6a468 
					 
					
						
						
							
							Move server_fill_environ into environ.c and move some other common code  
						
						... 
						
						
						
						into it. 
						
						
					 
					
						2017-03-09 17:02:38 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						c426e485e5 
					 
					
						
						
							
							Loads more static, except for cmd-*.c and window-*.c.  
						
						
						
						
					 
					
						2016-10-10 21:29:23 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						995af0e2b7 
					 
					
						
						
							
							I no longer use my SourceForge address so replace it.  
						
						
						
						
					 
					
						2016-01-19 15:59:12 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						577c0e3e5a 
					 
					
						
						
							
							Use __unused rather than rolling our own.  
						
						
						
						
					 
					
						2015-11-18 14:27:44 +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 
							
						 
					 
					
						
						
							
						
						bf9c933cae 
					 
					
						
						
							
							Like options, move the environ struct into environ.c.  
						
						
						
						
					 
					
						2015-10-28 09:51:55 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						021cdbe1c0 
					 
					
						
						
							
							Use an explicit job state instead of avoid closing our side of the  
						
						... 
						
						
						
						socketpair and setting it to -1 to mark when the other side is
closed. This avoids closing it while the libevent bufferevent still has
it (it could try to add it to the polled set which some mechanisms don't
like). Fixes part a problem reported by Bruno Sutic. 
						
						
					 
					
						2015-06-17 16:44:49 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						583b4ab72b 
					 
					
						
						
							
							Set working directory for run-shell and if-shell.  
						
						
						
						
					 
					
						2015-04-24 22:19:36 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						900f6fc17e 
					 
					
						
						
							
							Tidy up some includes.  
						
						
						
						
					 
					
						2014-10-20 23:27:14 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						a47d2397df 
					 
					
						
						
							
							Don't leak socketpair file descriptors if fork fails. Spotted by Balazs  
						
						... 
						
						
						
						Kezes. 
						
						
					 
					
						2014-04-14 22:27:30 +00:00 
						 
				 
			
				
					
						
							
							
								nicm 
							
						 
					 
					
						
						
							
						
						99e3cbc526 
					 
					
						
						
							
							Use format_get_command() and some spacing tweaks.  
						
						
						
						
					 
					
						2013-10-10 12:35:30 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						88428cff3a 
					 
					
						
						
							
							%zu format for size_t.  
						
						
						
						
					 
					
						2013-04-17 08:41:41 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9fcda95a6f 
					 
					
						
						
							
							Set EV_WRITE for jobs or run/if-shell jobs can hang. From Chris Johnsen.  
						
						
						
						
					 
					
						2013-04-10 12:20:35 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						d28a39d01d 
					 
					
						
						
							
							Extend jobs to support writing and use that for copy-pipe instead of  
						
						... 
						
						
						
						popen, from Chris Johnsen. 
						
						
					 
					
						2013-03-25 11:43:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						8d59b189cc 
					 
					
						
						
							
							No more lint means no more ARGSUSED.  
						
						
						
						
					 
					
						2013-03-22 10:31:22 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						df912e3540 
					 
					
						
						
							
							xfree is not particularly helpful, remove it. From Thomas Adam.  
						
						
						
						
					 
					
						2012-07-10 11:53:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						9bbc63ed65 
					 
					
						
						
							
							Call bufferevent_free before closing file descriptor associated with it  
						
						... 
						
						
						
						or bugs in $EventMechanism on $OtherOS makes libevent get it's knickers
in a twist. From Dylan Alex Simon. 
						
						
					 
					
						2012-01-29 02:22:11 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						db7a89b1ee 
					 
					
						
						
							
							Simplify the way jobs work and drop the persist type, so all jobs are  
						
						... 
						
						
						
						fire-and-forget.
Status jobs now managed with two trees of output (new and old), rather
than storing the output in the jobs themselves. When the status line is
processed any jobs which don't appear in the new tree are started and
the output from the old tree displayed. When a job finishes it updates
the new tree with its output and that is used for any subsequent
redraws. When the status interval expires, the new tree is moved to the
old so that all jobs are run again.
This fixes the "#(echo %H:%M:%S)" problem which would lead to thousands
of identical persistent jobs and high memory use (this can still be
achieved by adding "sleep 30" but that is much less likely to happen by
accident). 
						
						
					 
					
						2011-01-26 01:54:56 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						4dfb29fa38 
					 
					
						
						
							
							Use LIST_* not SLIST_*.  
						
						
						
						
					 
					
						2011-01-26 00:11:47 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						b8023044c3 
					 
					
						
						
							
							Set $TMUX without the session when background jobs are run.  
						
						
						
						
					 
					
						2011-01-23 11:03:43 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						69cb1f830e 
					 
					
						
						
							
							Move all calls to fcntl(...O_NONBLOCK) into a function and clear the  
						
						... 
						
						
						
						flag on the stdio file descriptors before closing them (fixes things
like "tmux ls && cat"). 
						
						
					 
					
						2011-01-08 01:52:36 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						f56b4ec2ff 
					 
					
						
						
							
							Trying to set FD_CLOEXEC on every fd is a lost cause, just use  
						
						... 
						
						
						
						closefrom() before exec. 
						
						
					 
					
						2010-10-16 08:31:55 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						e3be9b1951 
					 
					
						
						
							
							Do not call event_del() for signals after fork(), just use sigaction()  
						
						... 
						
						
						
						directly instead - calling libevent functions after fork() w/o
event_reinit() is a bad idea, even if in this case it was harmless. 
						
						
					 
					
						2010-08-19 18:29:01 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						c4a2fdf15b 
					 
					
						
						
							
							Put this back in with the initialisation in the right order.  
						
						
						
						
					 
					
						2010-05-04 17:28:16 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						af5e0bd15a 
					 
					
						
						
							
							Revert last change, it appears to be broken somehow.  
						
						
						
						
					 
					
						2010-05-04 08:48:06 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						ec1d37b1b2 
					 
					
						
						
							
							Make signal handler setup/teardown two common functions instead of six,  
						
						... 
						
						
						
						and reset SIGCHLD after fork to fix problems with some shells. From
Romain Francois. 
						
						
					 
					
						2010-05-03 16:06:32 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						b02cd35354 
					 
					
						
						
							
							Run job commands explicitly in the global enviroment (which can be  
						
						... 
						
						
						
						modified with setenv -g) rather than with the environment tmux started
with. 
						
						
					 
					
						2010-04-04 19:02:09 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						6ac3343617 
					 
					
						
						
							
							Typo fix from Tim van der Molen.  
						
						
						
						
					 
					
						2010-02-24 19:13:38 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						15a64b805e 
					 
					
						
						
							
							Massive spaces->tabs and trailing whitespace cleanup, hopefully for the last  
						
						... 
						
						
						
						time now I've configured emacs to make them displayed in really annoying
colours... 
						
						
					 
					
						2009-12-03 22:50:09 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						4ca857e0e9 
					 
					
						
						
							
							Remove a couple of unused arguments where possible, and add /* ARGSUSED */ to  
						
						... 
						
						
						
						the rest to reduce lint output. 
						
						
					 
					
						2009-11-26 21:37:13 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						abb728684b 
					 
					
						
						
							
							Add back JOB_PERSIST checks that got lost.  
						
						
						
						
					 
					
						2009-11-04 21:10:49 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						4d6091379b 
					 
					
						
						
							
							Switch jobs over to use a bufferevent.  
						
						
						
						
					 
					
						2009-11-04 21:04:43 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						abf3a5d50e 
					 
					
						
						
							
							Initial changes to move tmux to libevent.  
						
						... 
						
						
						
						This moves the client-side loops are pretty much fully over to event-based only
(tmux.c and client.c) but server-side (server.c and friends) treats libevent as
a sort of clever poll, waking up after every event to run various things.
Moving the server stuff over to bufferevents and timers and so on will come
later. 
						
						
					 
					
						2009-11-04 20:50:11 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						2f813ef75d 
					 
					
						
						
							
							Add a flag for jobs that shouldn't be freed after they've died and use it for  
						
						... 
						
						
						
						status jobs, then only kill those jobs when status-left, status-right or
set-titles-string is changed.
Fixes problems with changing options from inside #(). 
						
						
					 
					
						2009-11-01 23:20:37 +00:00 
						 
				 
			
				
					
						
							
							
								Nicholas Marriott 
							
						 
					 
					
						
						
							
						
						a22c06a2d6 
					 
					
						
						
							
							Remove unused function.  
						
						
						
						
					 
					
						2009-10-21 18:20:16 +00:00