Nicholas Marriott
88555d96d5
Document the -k flag to new-window.
2009-07-12 23:45:03 +00:00
Nicholas Marriott
9e49ec6cd3
Creating a key binding which replaces itself (such as "bind x bind x lsw")
...
frees the command list bound to the key while it is still being executed,
leading to a use after free. To prevent this, create a dead keys list and defer
freeing replaced or removed key bindings until the main loop when the key
binding will have finished executing.
Found by Johan Friis when creating a key binding to reload his configuration
file.
2009-07-12 17:33:18 +00:00
Nicholas Marriott
22d51ec1ea
Add a "back to indentation" key in copy mode to move the cursor to the first
...
non-whitespace character. ^ with vi and M-m with emacs key bindings. Another
from Kalle Olavi Niemitalo, thanks.
2009-07-12 16:15:34 +00:00
Nicholas Marriott
fa8333eddb
Merge three copies of identical code to move the cursor x position into a
...
single function, from Kalle Olavi Niemitalo.
2009-07-12 16:12:34 +00:00
Nicholas Marriott
22355ce947
If it exist, load a system-wide configuration file /etc/tmux.conf before any
...
user-specified one.
2009-07-12 16:07:56 +00:00
Nicholas Marriott
bd098c273b
Limit the history to hlimit not hlimit - 1. This makes a history-limit setting
...
of 0 work as expected.
2009-07-11 20:11:18 +00:00
Nicholas Marriott
e415ead361
Add -r to the synopsis of the paste-buffer command, prompted by jmc.
2009-07-11 20:04:19 +00:00
Nicholas Marriott
2f7198246e
When pasting, translate \n into \r. This matches xterm and putty's behaviour,
...
and makes emacs happy when pasting into some modes. A new -r (raw) flag to
paste-buffer pastes without the translation.
From Kalle Olavi Niemitalo, thanks!
2009-07-11 19:14:56 +00:00
Nicholas Marriott
289320a9b1
Copy was using the real line length which after resize can be larger than the
...
screen width. When built with -DDEBUG, this made the grid bounds checking code
kill the server. Restrict copying to the actual width.
From Kalle Olavi Niemitalo, thanks.
2009-07-11 19:09:24 +00:00
Nicholas Marriott
4cbbbddf22
paste-buffer -d was not documented. From Kalle Olavi Niemitalo.
2009-07-10 19:01:40 +00:00
Nicholas Marriott
9cd5ba40d3
Redraw the status line after renaming a session (it may contain the name).
2009-07-10 17:34:51 +00:00
Nicholas Marriott
4a6d62e401
Don't send initialisation strings is1/2/3 (barely anything else does) and move
...
smcup to the first and rmcup to the last sequences output to the terminal. This
allows tmux to use the alternate screen (smcup/rmcup) when available.
2009-07-10 07:11:59 +00:00
Nicholas Marriott
daa1faa905
Add a default-terminal option to set the starting value of $TERM in new
...
windows.
This is "screen" by default and must be either that or something closely
related. This does makes it easier to customise it if necessary.
2009-07-10 05:50:54 +00:00
Nicholas Marriott
25d5734496
Document display-time option which seems to have been missed.
2009-07-10 05:43:01 +00:00
Nicholas Marriott
58361eb965
When the terminal size is reduced horizontally, don't truncate lines to the new
...
width, so that if the same lines are later increased in size the content
reappears.
2009-07-09 22:48:20 +00:00
Nicholas Marriott
5f2f07ed8a
Cursor up and down should be limited by the scroll region (cuu should stop at
...
the scroll region top if starting from below it and cud stop at the bottom if
starting from above). Fixes another vttest test.
2009-07-09 17:57:11 +00:00
Nicholas Marriott
81181bfb72
New command, if-shell (alias if). Executes the tmux command in the second
...
argument if the shell command in the first succeeds, for example:
if "[ -e ~/.tmux.conf.alt ]" "source .tmux.conf.alt"
Written by Tiago Cunha, many thanks.
2009-07-09 15:47:49 +00:00
Nicholas Marriott
24e1327d0d
Stop in the right place so all the lines selected are copied. Reported by Kalle
...
Olavi Niemitalo, thanks.
2009-07-09 15:02:00 +00:00
Nicholas Marriott
29f9d5f335
Don't leak FILE * on malloc failure. From ivoire at users dot sourceforge dot net.
2009-07-09 09:54:56 +00:00
Nicholas Marriott
86c93c6e34
Change inserting and deleting lines inside the scroll region to properly clear
...
lines that should be inserted/deleted but not moved. Fixes problems with mutt
reported by Brian Lewis, thanks.
2009-07-09 07:58:14 +00:00
Nicholas Marriott
643c219d18
Tidy by removing unused argument from grid_view_{insert,delete}_line_region
...
functions (currently don't fully work, this is to make fix easier).
2009-07-09 00:29:32 +00:00
Nicholas Marriott
f63761eabc
Fix two memory leaks when assigning shell variables in configuration
...
file/command prompt. From Tiago Cunha.
2009-07-08 16:04:56 +00:00
Nicholas Marriott
8c497ecac0
When reinitialising the screen, do not omit to clear the last line.
2009-07-08 05:56:11 +00:00
Nicholas Marriott
084d07f4eb
Just appending -l to $SHELL to create a login shell is wrong: -l is not POSIX,
...
and some people may use shells which do not support it. Instead, make an empty
default-command option mean a login shell, and fork it with a - in argv[0]
which is the method used by login(1).
Also fix the automatic-rename code to handle this correctly and to strip a
leading - if present.
2009-07-08 05:26:45 +00:00
Nicholas Marriott
b4efd1ca89
Don't let ambiguous commands override an exact alias match: eg if commands
...
"abc-1", "abc-2", "abc-3" exist and "abc-3" has the alias "abc", "tmux abc"
should execute abc-3, not complain about the command being ambiguous.
Not a problem at the moment but will be soon.
2009-07-07 21:23:22 +00:00
Nicholas Marriott
923ccfa2e8
Rename the global options variables to be shorter and to make session options
...
clear. No functional change, getting this out of the way to make later options
changes easier.
2009-07-07 19:49:19 +00:00
Nicholas Marriott
474fdebb7a
Handle empty or unset TERM correctly; also fix a fatal() message while here.
2009-07-07 17:24:32 +00:00
Nicholas Marriott
9ced016cbc
When sending a "protocol mismatch" error message, tell the client to exit
...
afterwards, otherwise it hangs.
2009-07-07 12:34:47 +00:00
Nicholas Marriott
e538d4adae
The fix for default-path (use target session options instead of global options)
...
is required here as well, doh.
2009-07-07 07:01:10 +00:00
Nicholas Marriott
eb424cf63d
Minor fix: look for default-path in the options for the specified session first
...
rather than just the global options. From Brandon Mercer, thanks.
2009-07-07 06:58:49 +00:00
Nicholas Marriott
69e150b7e3
Add a section summarising how options work, make the distinction between window
...
and session options clearer, and fix the incorrect synopses and descriptions of
show-options and show-window-options.
2009-07-06 19:50:04 +00:00
Nicholas Marriott
fe5edad1fc
Fix two copy/paste bugs: forbid zero-length buffers to prevent a fatal error
...
when trying to paste them, found by me, and miscalculation of the start/end
causing random fatal errors when copying in copy-mode, reported by sthen.
ok sthen "put it in" deraadt
2009-07-02 16:15:43 +00:00
Nicholas Marriott
4c5c125173
When unlocking the server, don't try to clear the prompt on clients without a
...
prompt (such as the one issuing the unlock request).
This caused the server to die if the wrong password was entered when unlocking
from the command line with -U (nasty).
2009-06-30 13:40:30 +00:00
Nicholas Marriott
68e06fb6b7
Fix two errors with character/line insertion and deletion: the maximum number
...
of characters which may be inserted or deleted is the screen width, not one
less (and similarly for lines and height); and if characters or lines are
deleted by moving the ones that follow, the space at the end needs to be
cleared.
This appears to solve long-standing redraw issues most visible when using the
force-width option then scrolling in view(1) or unwrapping lines in emacs.
2009-06-29 21:30:50 +00:00
Nicholas Marriott
003e8e65f7
Don't try to page up with scroll-mode -u or copy-mode -u unless the mode was
...
successfully changed - if already in a different mode, it would corrupt the
mode data.
2009-06-29 07:11:20 +00:00
Nicholas Marriott
710393e388
Use gmtime_r so the current time isn't overwritten, the minute comparison works
...
and the clock is actually updated. It was already used for lock-server but not
here.
2009-06-27 14:40:22 +00:00
Nicholas Marriott
2660692fb1
Copy the 256-colour flag into the tty saved cell as well as the actual colour,
...
otherwise colour 8 isn't reset properly.
2009-06-27 12:57:14 +00:00
Nicholas Marriott
916669a244
Add missing spaces before some alias closing brackets, otherwise they are
...
shown in the wrong style.
2009-06-26 22:47:06 +00:00
Nicholas Marriott
46f80d01ff
After logging (if enabled) is switched to file, there is no reason to keep
...
stdin/stdout/stderr active, so dup them to /dev/null.
2009-06-26 22:12:19 +00:00
Nicholas Marriott
b11b1dd1c0
Remove some unused function declarations; no binary change.
2009-06-26 19:44:36 +00:00
Nicholas Marriott
1ec736a3dc
Status line fixes: don't truncate status-right now the length calculation is
...
done for UTF-8, limit to the maximum length correctly when printing, and always
print a space even if the left string is longer than the width available.
2009-06-26 15:13:39 +00:00
Nicholas Marriott
c506e7f711
Also #ifndef nitems here, caught by Thomas Jeunet.
2009-06-26 10:55:37 +00:00
Nicholas Marriott
eb8ab96980
Remove some dead assignments, found by sthen with clang.
2009-06-25 22:09:20 +00:00
Nicholas Marriott
e225ce0fd7
#ifndef nitems to avoid redefining it if it is already in a header.
2009-06-25 22:08:15 +00:00
Nicholas Marriott
e8c10f5b34
Use the pane flags not the window flags. Doh.
2009-06-25 08:08:18 +00:00
Marc Espie
5050171f6b
diagflags for diags
...
okay nicm@
2009-06-25 07:42:41 +00:00
Nicholas Marriott
dbbb297d5f
If getcwd() fails, use the user's home directory, or /, instead of failing with
...
an error.
2009-06-25 06:54:32 +00:00
Nicholas Marriott
be17ac1eb2
lines variable can be -1 (to be ignored), so should be signed. Found by lint.
2009-06-25 06:48:23 +00:00
Nicholas Marriott
40c242a6d5
Remove error about using -L and -S together which was never displayed as
...
logging wasn't yet enabled, was unnecessary, and contradicted the man page
which says using -S will cause -L to be ignored.
2009-06-25 06:40:25 +00:00
Nicholas Marriott
a7075f1c66
tmux doesn't and won't need syslog logging, so remove it and some other unused
...
functions found by lint.
Also move a couple of internal function declarations into file scope.
2009-06-25 06:23:10 +00:00