OpenBSD CVS

CVS log for src/usr.bin/tmux/cmd-set-option.c


[BACK] Up to [local] / src / usr.bin / tmux

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.141 / (download) - annotate - [select for diffs], Wed Aug 25 08:51:55 2021 UTC (2 years, 8 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, HEAD
Changes since 1.140: +17 -5 lines
Diff to previous 1.140 (colored)

Validate command argument types (string or command list) and give more
useful error messages.

Revision 1.140 / (download) - annotate - [select for diffs], Sat Aug 21 10:22:39 2021 UTC (2 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.139: +4 -4 lines
Diff to previous 1.139 (colored)

Add args parsing callback for some future work, currently unused.

Revision 1.139 / (download) - annotate - [select for diffs], Fri Aug 20 19:50:17 2021 UTC (2 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.138: +13 -9 lines
Diff to previous 1.138 (colored)

Hide struct args behind a couple of accessor functions.

Revision 1.138 / (download) - annotate - [select for diffs], Tue Dec 15 08:31:50 2020 UTC (3 years, 5 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.137: +18 -5 lines
Diff to previous 1.137 (colored)

Make synchronize-panes a pane option and add -U flag to set-option to
unset an option on all panes. GitHub issue 2491 from Rostislav Nesin.

Revision 1.137 / (download) - annotate - [select for diffs], Tue Jun 16 08:18:34 2020 UTC (3 years, 11 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.136: +2 -11 lines
Diff to previous 1.136 (colored)

d and D keys to reset to default in customize mode.

Revision 1.136 / (download) - annotate - [select for diffs], Sat May 16 16:50:55 2020 UTC (4 years ago) by nicm
Branch: MAIN
Changes since 1.135: +1 -2 lines
Diff to previous 1.135 (colored)

Move lazy resize from the pane to the window, there is no point in
resizing the window unless it is the current window, and if we do and
don't resize the pane until later there are problems if the size changes
from A to B then back to A.

Revision 1.135 / (download) - annotate - [select for diffs], Sat May 16 16:02:24 2020 UTC (4 years ago) by nicm
Branch: MAIN
Changes since 1.134: +11 -207 lines
Diff to previous 1.134 (colored)

Add a customize mode where keys and options may be browsed and changed,
includes adding a brief description of each option. Bound to "C" by
default.

Revision 1.134 / (download) - annotate - [select for diffs], Sat May 16 15:01:31 2020 UTC (4 years ago) by nicm
Branch: MAIN
Changes since 1.133: +29 -30 lines
Diff to previous 1.133 (colored)

Drop having a separate type for style options and make them all strings,
which allows formats to be expanded. Any styles without a '#{' are still
validated when they are set but any with a '#{' are not. Formats are not
expanded usefully in many cases yet, that will be changed later.

To make this work, a few other changes:

- set-option -a with a style option automatically appends a ",".

- OSC 10 and 11 don't set the window-style option anymore, instead the
  fg and bg are stored in the pane struct and act as the defaults that
  can be overridden by window-style.

- status-fg and -bg now override status-style instead of trying to keep
  them in sync.

Revision 1.133 / (download) - annotate - [select for diffs], Mon Apr 13 20:54:15 2020 UTC (4 years, 1 month ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7
Changes since 1.132: +1 -2 lines
Diff to previous 1.132 (colored)

Missed a few warnings in previous.

Revision 1.132 / (download) - annotate - [select for diffs], Mon Apr 13 20:51:57 2020 UTC (4 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.131: +5 -5 lines
Diff to previous 1.131 (colored)

Make client -c and -t handling common in cmd-queue.c and try to be
clearer about whether the client is the target client (must have a
session) or not.

Revision 1.131 / (download) - annotate - [select for diffs], Mon Apr 13 10:59:58 2020 UTC (4 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.130: +7 -7 lines
Diff to previous 1.130 (colored)

Also move cmdq_item and cmdq_list into cmd-queue.c (this is to make its
use more clearly defined and preparation for some future work).

Revision 1.130 / (download) - annotate - [select for diffs], Mon Apr 13 08:26:27 2020 UTC (4 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.129: +5 -5 lines
Diff to previous 1.129 (colored)

Make struct cmd local to cmd.c and move it out of tmux.h.

Revision 1.129 / (download) - annotate - [select for diffs], Mon Apr 13 07:25:33 2020 UTC (4 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.128: +4 -4 lines
Diff to previous 1.128 (colored)

Change so that the appropriate hooks for windows and panes belong to
pane/window options rather than all being session options. This is
useful for example to create a pane that is automatically closed on some
condition. From Anindya Mukherjee.

Revision 1.128 / (download) - annotate - [select for diffs], Tue Mar 17 11:10:12 2020 UTC (4 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.127: +8 -1 lines
Diff to previous 1.127 (colored)

Ignore default-shell (and use /bin/sh) if it invalid not just if it is
tmux itself, also refuse to set the option to something invalid in the
first place. GitHub issue 2120.

Revision 1.127 / (download) - annotate - [select for diffs], Thu Jun 20 11:59:59 2019 UTC (4 years, 11 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_6_BASE, OPENBSD_6_6
Changes since 1.126: +8 -7 lines
Diff to previous 1.126 (colored)

Add a per-pane option set. Pane options inherit from window options (so
there should be no change to existing behaviour) and are set and shown
with set-option -p and show-options -p.

Change remain-on-exit and window-style/window-active-style to be pane
options (some others will be changed later).

This makes select-pane -P and -g unnecessary so no longer document them
(they still work) and no longer document set-window-option and
show-window-options in favour of set-option -w and show-options -w.

Revision 1.126 / (download) - annotate - [select for diffs], Thu Jun 20 07:41:29 2019 UTC (4 years, 11 months ago) by nicm
Branch: MAIN
Changes since 1.125: +7 -50 lines
Diff to previous 1.125 (colored)

Add a helper function to work out option table from name.

Revision 1.125 / (download) - annotate - [select for diffs], Fri Apr 26 11:38:51 2019 UTC (5 years ago) by nicm
Branch: MAIN
Changes since 1.124: +35 -6 lines
Diff to previous 1.124 (colored)

Merge hooks into options and make each one an array option. This allows
multiple commands to be easily bound to one hook. set-hook and
show-hooks remain but they are now variants of set-option and
show-options. show-options now has a -H flag to show hooks (by default
they are not shown).

Revision 1.124 / (download) - annotate - [select for diffs], Tue Apr 23 20:36:55 2019 UTC (5 years ago) by nicm
Branch: MAIN
Changes since 1.123: +1 -3 lines
Diff to previous 1.123 (colored)

Indicate an array option with a flag rather than a special type so that
in future will not have to be strings.

Revision 1.123 / (download) - annotate - [select for diffs], Mon Mar 18 21:46:01 2019 UTC (5 years, 2 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_5_BASE, OPENBSD_6_5
Changes since 1.122: +13 -12 lines
Diff to previous 1.122 (colored)

The individual -fg, -bg and -attr options have been deprecated (in
favour of -style), undocumented and hidden from show-options since
2014. Remove them, except for status-fg and status-bg.

Revision 1.122 / (download) - annotate - [select for diffs], Mon Mar 18 11:58:40 2019 UTC (5 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.121: +5 -7 lines
Diff to previous 1.121 (colored)

Make array options a sparse tree instead of an array of char * and
remove the size limit.

Revision 1.121 / (download) - annotate - [select for diffs], Sat Mar 16 17:14:07 2019 UTC (5 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.120: +2 -2 lines
Diff to previous 1.120 (colored)

Tidy and rename some bits of status line code.

Revision 1.120 / (download) - annotate - [select for diffs], Thu Oct 18 08:38:01 2018 UTC (5 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.119: +14 -3 lines
Diff to previous 1.119 (colored)

Support for windows larger than visible on the attached client. This has
been a limitation for a long time.

There are two new options, window-size and default-size, and a new
command, resize-window. The force-width and force-height options and the
session_width and session_height formats have been removed.

The new window-size option tells tmux how to work out the size of
windows: largest means it picks the size of the largest session,
smallest the smallest session (similar to the old behaviour) and manual
means that it does not automatically resize windows. The default is
currently largest but this may change. aggressive-resize modifies the
choice of session for largest and smallest as it did before.

If a window is in a session attached to a client that is too small, only
part of the window is shown. tmux attempts to keep the cursor visible,
so the part of the window displayed is changed as the cursor moves (with
a small delay, to try and avoid excess redrawing when applications
redraw status lines or similar that are not currently visible). The
offset of the visible portion of the window is shown in status-right.

Drawing windows which are larger than the client is not as efficient as
those which fit, particularly when the cursor moves, so it is
recommended to avoid using this on slow machines or networks (set
window-size to smallest or manual).

The resize-window command can be used to resize a window manually. If it
is used, the window-size option is automatically set to manual for the
window (undo this with "setw -u window-size"). resize-window works in a
similar way to resize-pane (-U -D -L -R -x -y flags) but also has -a and
-A flags. -a sets the window to the size of the smallest client (what it
would be if window-size was smallest) and -A the largest.

For the same behaviour as force-width or force-height, use resize-window
-x or -y, and "setw -u window-size" to revert to automatic sizing..

If the global window-size option is set to manual, the default-size
option is used for new windows. If -x or -y is used with new-session,
that sets the default-size option for the new session.

The maximum size of a window is 10000x10000. But expect applications to
complain and much higher memory use if making a window excessively
big. The minimum size is the size required for the current layout
including borders.

The refresh-client command can be used to pan around a window, -U -D -L
-R moves up, down, left or right and -c returns to automatic cursor
tracking. The position is reset when the current window is changed.

Revision 1.119 / (download) - annotate - [select for diffs], Fri Dec 22 10:18:51 2017 UTC (6 years, 4 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3
Changes since 1.118: +4 -2 lines
Diff to previous 1.118 (colored)

Do not try to set default value on user options (they don't have one),
from Charles Howard in GitHub issue 1161.

Revision 1.118 / (download) - annotate - [select for diffs], Thu Sep 7 13:18:44 2017 UTC (6 years, 8 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.117: +2 -2 lines
Diff to previous 1.117 (colored)

Do not fail if unset an option that is already unset, reported by Thomas
Sattler.

Revision 1.117 / (download) - annotate - [select for diffs], Fri Jun 23 15:36:52 2017 UTC (6 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.116: +7 -1 lines
Diff to previous 1.116 (colored)

Add user-keys option to allow user-defined keys to be set, from Dan
Aloni.

Revision 1.116 / (download) - annotate - [select for diffs], Wed May 31 17:56:48 2017 UTC (6 years, 11 months ago) by nicm
Branch: MAIN
Changes since 1.115: +2 -2 lines
Diff to previous 1.115 (colored)

Style and spacing nits.

Revision 1.115 / (download) - annotate - [select for diffs], Wed May 10 13:05:41 2017 UTC (7 years ago) by nicm
Branch: MAIN
Changes since 1.114: +36 -26 lines
Diff to previous 1.114 (colored)

Expand formats in option names and add -F flag to do so in option values as well.

Revision 1.114 / (download) - annotate - [select for diffs], Sat Apr 22 10:22:39 2017 UTC (7 years ago) by nicm
Branch: MAIN
Changes since 1.113: +4 -4 lines
Diff to previous 1.113 (colored)

Get rid of the extra layer of flags and cmd_prepare() and just store the
CMD_FIND_* flags in the cmd_entry and call it for the command. Commands
with special requirements call it themselves and update the target for
hooks to use.

Revision 1.113 / (download) - annotate - [select for diffs], Sat Apr 22 06:13:30 2017 UTC (7 years ago) by nicm
Branch: MAIN
Changes since 1.112: +18 -12 lines
Diff to previous 1.112 (colored)

Memory leaks, from David CARLIER.

Revision 1.112 / (download) - annotate - [select for diffs], Thu Feb 16 10:53:25 2017 UTC (7 years, 3 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.111: +2 -2 lines
Diff to previous 1.111 (colored)

Style nits.

Revision 1.111 / (download) - annotate - [select for diffs], Fri Feb 3 21:01:02 2017 UTC (7 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.110: +3 -1 lines
Diff to previous 1.110 (colored)

Cache status line position to reduce option lookups during output.

Revision 1.110 / (download) - annotate - [select for diffs], Wed Jan 25 23:50:51 2017 UTC (7 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.109: +5 -3 lines
Diff to previous 1.109 (colored)

Clear option before adding to array if no -a, reported by Michael
Nickerson.

Revision 1.109 / (download) - annotate - [select for diffs], Tue Jan 24 20:24:54 2017 UTC (7 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.108: +16 -16 lines
Diff to previous 1.108 (colored)

Fix set -u on array options.

Revision 1.108 / (download) - annotate - [select for diffs], Tue Jan 24 19:11:46 2017 UTC (7 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.107: +13 -7 lines
Diff to previous 1.107 (colored)

If given an array option without an index either show or set all items,
and support -a for array options. Allow the separator for set to be
specified in the options table (will be used for backwards compatibility
later).

Revision 1.107 / (download) - annotate - [select for diffs], Mon Jan 16 14:49:14 2017 UTC (7 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.106: +5 -5 lines
Diff to previous 1.106 (colored)

getopt() has a struct option so just return to using options_entry.

Revision 1.106 / (download) - annotate - [select for diffs], Sun Jan 15 20:50:34 2017 UTC (7 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.105: +5 -1 lines
Diff to previous 1.105 (colored)

-q flag now needs to be checked in a couple more places.

Revision 1.105 / (download) - annotate - [select for diffs], Sun Jan 15 20:48:41 2017 UTC (7 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.104: +210 -378 lines
Diff to previous 1.104 (colored)

Major tidy up and rework of options tree and set-option/show-options
commands this pushes more of the code into options.c and ties it more
closely to the options table rather than having an unnecessary
split. Also add support for array options (will be used later). Only
(intentional) user visible change is that show-options output is now
passed through vis(3) with VIS_DQ so quotes are escaped.

Revision 1.104 / (download) - annotate - [select for diffs], Thu Jan 12 15:36:35 2017 UTC (7 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.103: +11 -23 lines
Diff to previous 1.103 (colored)

Simplify appending to string options.

Revision 1.103 / (download) - annotate - [select for diffs], Wed Jan 11 14:56:44 2017 UTC (7 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.102: +3 -5 lines
Diff to previous 1.102 (colored)

Some tidying and tweaks to options code.

Revision 1.102 / (download) - annotate - [select for diffs], Fri Nov 4 18:56:25 2016 UTC (7 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.101: +3 -1 lines
Diff to previous 1.101 (colored)

Do not try to set the CHANGED flag on windows with no active pane, fixes
problem reported by Nelo-T Wallus.

Revision 1.101 / (download) - annotate - [select for diffs], Sun Oct 16 19:04:05 2016 UTC (7 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.100: +83 -83 lines
Diff to previous 1.100 (colored)

Mass rename struct cmd_q to struct cmdq_item and related.

Revision 1.100 / (download) - annotate - [select for diffs], Fri Oct 14 22:14:22 2016 UTC (7 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.99: +3 -3 lines
Diff to previous 1.99 (colored)

Add CMD_AFTERHOOK flag to the easy commands that don't need any special handling.

Revision 1.99 / (download) - annotate - [select for diffs], Mon Oct 10 21:51:39 2016 UTC (7 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.98: +31 -31 lines
Diff to previous 1.98 (colored)

Add static in cmd-* and fix a few other nits.

Revision 1.98 / (download) - annotate - [select for diffs], Sun Oct 9 07:58:35 2016 UTC (7 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.97: +20 -3 lines
Diff to previous 1.97 (colored)

Handle NULL window or session for user options.

Revision 1.97 / (download) - annotate - [select for diffs], Mon Sep 26 09:02:34 2016 UTC (7 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.96: +16 -11 lines
Diff to previous 1.96 (colored)

Support set -a (append) with user options, suggested by Xandor Schiefer.

Revision 1.96 / (download) - annotate - [select for diffs], Mon May 30 09:50:20 2016 UTC (7 years, 11 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.95: +6 -1 lines
Diff to previous 1.95 (colored)

Cache the window styles and do not look up the window-style options
unless they have changed.

Revision 1.95 / (download) - annotate - [select for diffs], Fri Apr 29 15:00:48 2016 UTC (8 years ago) by nicm
Branch: MAIN
Changes since 1.94: +7 -1 lines
Diff to previous 1.94 (colored)

Add option to include status text in the pane borders. If
pane-border-status is set to "top" or "bottom" (rather than "off"),
every pane has a permanent top or bottom border containing the text from
pane-border-format.

Based on a diff sent long ago by Jonathan Slenders, mostly rewritten and
simplified by me.

Revision 1.94 / (download) - annotate - [select for diffs], Thu Mar 3 14:15:22 2016 UTC (8 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.93: +20 -20 lines
Diff to previous 1.93 (colored)

show-* and set-* need to handle a missing target.

Revision 1.93 / (download) - annotate - [select for diffs], Tue Jan 19 15:59:12 2016 UTC (8 years, 4 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.92: +2 -2 lines
Diff to previous 1.92 (colored)

I no longer use my SourceForge address so replace it.

Revision 1.92 / (download) - annotate - [select for diffs], Mon Dec 14 00:31:54 2015 UTC (8 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.91: +7 -3 lines
Diff to previous 1.91 (colored)

Instead of combined flags for -c, -s, -t, split into different sets
using an enum and simplify the parsing code.

Revision 1.91 / (download) - annotate - [select for diffs], Sun Dec 13 21:53:57 2015 UTC (8 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.90: +17 -11 lines
Diff to previous 1.90 (colored)

Use member names in cmd_entry definitions so I stop getting confused
about the order.

Revision 1.90 / (download) - annotate - [select for diffs], Sun Dec 13 14:32:38 2015 UTC (8 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.89: +12 -22 lines
Diff to previous 1.89 (colored)

Instead of every command resolving the target (-t or -s) itself, prepare
the state (client, session, winlink, pane) for it it before entering the
command. Each command provides some flags that tell the prepare step
what it is expecting.

This is a requirement for having hooks on commands (for example, if you
hook "select-window -t1:2", the hook command should to operate on window
1:2 not whatever it thinks is the current window), and should allow some
other target improvements.

The old cmd_find_* functions remain for the moment but that layer will
be dropped later.

Joint work with Thomas Adam.

Revision 1.89 / (download) - annotate - [select for diffs], Sat Dec 12 18:32:24 2015 UTC (8 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.88: +5 -1 lines
Diff to previous 1.88 (colored)

Add key-table option to set the default key table for a session, allows
different key bindings for different sessions and a few other things.

Revision 1.88 / (download) - annotate - [select for diffs], Sat Dec 12 18:19:00 2015 UTC (8 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.87: +3 -2 lines
Diff to previous 1.87 (colored)

Allow prefix and prefix2 to be set to None to disable (useful if you
would rather bind the prefix in the root table).

Revision 1.87 / (download) - annotate - [select for diffs], Fri Nov 20 12:01:19 2015 UTC (8 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.86: +8 -8 lines
Diff to previous 1.86 (colored)

Instead of separate tables for different types of options, give each
option a scope type (server, session, window) in one table.

Revision 1.86 / (download) - annotate - [select for diffs], Wed Nov 18 14:27:44 2015 UTC (8 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.85: +8 -8 lines
Diff to previous 1.85 (colored)

Use __unused rather than rolling our own.

Revision 1.85 / (download) - annotate - [select for diffs], Thu Nov 12 11:05:34 2015 UTC (8 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.84: +2 -2 lines
Diff to previous 1.84 (colored)

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.)

Revision 1.84 / (download) - annotate - [select for diffs], Tue Oct 27 15:58:42 2015 UTC (8 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.83: +13 -13 lines
Diff to previous 1.83 (colored)

Move struct options into options.c.

Revision 1.83 / (download) - annotate - [select for diffs], Mon Sep 14 13:22:02 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.82: +1 -2 lines
Diff to previous 1.82 (colored)

Remove some extra blank lines.

Revision 1.82 / (download) - annotate - [select for diffs], Sat Aug 29 08:30:54 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.81: +3 -1 lines
Diff to previous 1.81 (colored)

Move alerts onto events rather than checking every loop.

Revision 1.81 / (download) - annotate - [select for diffs], Sat Aug 29 00:29:15 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.80: +2 -4 lines
Diff to previous 1.80 (colored)

Better take on reducing the name timer. Again check for name changes in
the main loop after events that may have changed the pane, but do so at
most once every 500 millis. If the pane changed too soon, use a timer to
ensure that a check happens later.

Revision 1.80 / (download) - annotate - [select for diffs], Fri Aug 28 16:10:46 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.79: +3 -1 lines
Diff to previous 1.79 (colored)

Revert previous; we do need a timer, until I have a better idea. We
can't do the name check every loop, because that is too expensive, and
we can't make sure it only happens infrequently because we have no idea
when the next change will happen.

Revision 1.79 / (download) - annotate - [select for diffs], Fri Aug 28 15:51:48 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.78: +2 -4 lines
Diff to previous 1.78 (colored)

We now only checking for name changes when the active pane has changed,
but that can only happen when we have already been woken up by a read
event, so there is no need for a timer, we can just check the changed
flag on the end of that read event (we already loop over the windows to
check for bells etc anyway).

Revision 1.78 / (download) - annotate - [select for diffs], Fri Aug 28 13:12:20 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.77: +2 -2 lines
Diff to previous 1.77 (colored)

Per-session timers for locking, and remove the global one-second timer.

Revision 1.77 / (download) - annotate - [select for diffs], Fri Aug 28 12:16:28 2015 UTC (8 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.76: +5 -2 lines
Diff to previous 1.76 (colored)

Run status update on a per-client timer at status-interval.

Revision 1.76 / (download) - annotate - [select for diffs], Mon Jul 27 08:45:45 2015 UTC (8 years, 9 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.75: +6 -3 lines
Diff to previous 1.75 (colored)

Make -q suppress ambiguous option warnings too, from Cam Hutchison.

Revision 1.75 / (download) - annotate - [select for diffs], Thu Jun 4 14:29:33 2015 UTC (8 years, 11 months ago) by nicm
Branch: MAIN
Changes since 1.74: +15 -6 lines
Diff to previous 1.74 (colored)

Make unsetting a global option restore it to the default. Diff lying
around for a while, I have forgotten who suggested it :-/.

Revision 1.74 / (download) - annotate - [select for diffs], Fri Apr 24 23:17:11 2015 UTC (9 years ago) by nicm
Branch: MAIN
Changes since 1.73: +3 -5 lines
Diff to previous 1.73 (colored)

Convert clients list into a TAILQ.

Revision 1.73 / (download) - annotate - [select for diffs], Fri Apr 24 21:38:18 2015 UTC (9 years ago) by nicm
Branch: MAIN
Changes since 1.72: +29 -17 lines
Diff to previous 1.72 (colored)

Allow choice options (multiple states) to be toggled between states 0
and 1.

Revision 1.72 / (download) - annotate - [select for diffs], Wed Apr 22 15:30:11 2015 UTC (9 years ago) by nicm
Branch: MAIN
Changes since 1.71: +2 -4 lines
Diff to previous 1.71 (colored)

Change the windows array into an RB tree and fix some places where we
were only looking at the first winlink for a window in a session.

Revision 1.71 / (download) - annotate - [select for diffs], Mon Oct 20 22:29:25 2014 UTC (9 years, 7 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.70: +1 -3 lines
Diff to previous 1.70 (colored)

Instead of setting up the default keys by building the key struct
directly with a helper function in the cmd_entry, include a table of
bind-key commands and pass them through the command parser and a
temporary cmd_q.

As well as being smaller, this will allow default bindings to be command
sequences which will probably be needed soon.

Revision 1.70 / (download) - annotate - [select for diffs], Mon Sep 1 21:50:18 2014 UTC (9 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.69: +3 -3 lines
Diff to previous 1.69 (colored)

Various minor style and spacing nits.

Revision 1.69 / (download) - annotate - [select for diffs], Thu Apr 17 14:45:49 2014 UTC (10 years, 1 month ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6
Changes since 1.68: +17 -9 lines
Diff to previous 1.68 (colored)

Some more long lines.

Revision 1.68 / (download) - annotate - [select for diffs], Thu Apr 17 07:55:43 2014 UTC (10 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.67: +1 -13 lines
Diff to previous 1.67 (colored)

Remove the "info" message mechanism, this was only used for about five
mostly useless and annoying messages. Change those commands to silence
on success like all the others. Still accept the -q command line flag
and "quiet" server option for now.

Revision 1.67 / (download) - annotate - [select for diffs], Thu Apr 17 07:51:38 2014 UTC (10 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.66: +19 -9 lines
Diff to previous 1.66 (colored)

Extend the -q flag to set-option to suppress errors about unknown
options - this will allow options to be removed more easily.

Revision 1.66 / (download) - annotate - [select for diffs], Mon Feb 17 18:12:47 2014 UTC (10 years, 3 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.65: +5 -3 lines
Diff to previous 1.65 (colored)

Don't crash when given a invalid colour, reported by Felix Rosencrantz,
fix from Thomas Adam.

Revision 1.65 / (download) - annotate - [select for diffs], Fri Feb 14 13:59:01 2014 UTC (10 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.64: +2 -2 lines
Diff to previous 1.64 (colored)

Style nit - no space between function name and bracket.

Revision 1.64 / (download) - annotate - [select for diffs], Tue Jan 28 23:07:09 2014 UTC (10 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.63: +29 -1 lines
Diff to previous 1.63 (colored)

Allow replacing each of the many sets of separate foo-{fg,bg,attr}
options with a single foo-style option. For example:

    set -g status-fg yellow
    set -g status-bg red
    set -g status-attr blink

Becomes:

    set -g status-style fg=yellow,bg=red,blink

The -a flag to set can be used to add to rather than replace a style. So:

    set -g status-bg red

Becomes:

    set -ag status-style bg=red

Currently this is fully backwards compatible (all *-{fg,bg,attr} options
remain) but the plan is to deprecate them over time.

From Tiago Cunha.

Revision 1.63 / (download) - annotate - [select for diffs], Thu Oct 10 12:00:23 2013 UTC (10 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.62: +1 -3 lines
Diff to previous 1.62 (colored)

Remove the barely-used and unnecessary command check() function.

Revision 1.62 / (download) - annotate - [select for diffs], Fri Jul 5 15:10:38 2013 UTC (10 years, 10 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.61: +13 -3 lines
Diff to previous 1.61 (colored)

Clarify error messages when setting options, from Thomas Adam.

Revision 1.61 / (download) - annotate - [select for diffs], Sun Mar 24 09:55:02 2013 UTC (11 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.60: +16 -6 lines
Diff to previous 1.60 (colored)

Add a -o option to set-option to prevent setting an option already set,
from Thiago Padilha.

Revision 1.60 / (download) - annotate - [select for diffs], Sun Mar 24 09:54:10 2013 UTC (11 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.59: +62 -59 lines
Diff to previous 1.59 (colored)

Add a command queue to standardize and simplify commands that call other
commands and allow a command to block execution of subsequent
commands. This allows run-shell and if-shell to be synchronous which has
been much requested.

Each client has a default command queue and commands are consumed one at
a time from it. A command may suspend execution from the queue by
returning CMD_RETURN_WAIT and then resume it by calling cmd_continue() -
for example run-shell does this from the callback that is fired after
the job is freed.

When the command queue becomes empty, command clients are automatically
exited (unless attaching). A callback is also fired - this is used for
nested commands in, for example, if-shell which can block execution of
the client's cmdq until a new cmdq becomes empty.

Also merge all the old error/info/print functions together and lose the
old curclient/cmdclient distinction - a cmdq is bound to one client (or
none if in the configuration file), this is a command client if
c->session is NULL otherwise an attached client.

Revision 1.59 / (download) - annotate - [select for diffs], Thu Mar 21 16:17:01 2013 UTC (11 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.58: +66 -2 lines
Diff to previous 1.58 (colored)

Add user options, prefixed with @. May be set to any arbitrary string.

Revision 1.58 / (download) - annotate - [select for diffs], Thu Mar 21 16:15:52 2013 UTC (11 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.57: +2 -2 lines
Diff to previous 1.57 (colored)

Add -v to set and setw to show only option value.

Revision 1.57 / (download) - annotate - [select for diffs], Wed Jul 11 07:10:15 2012 UTC (11 years, 10 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2
Changes since 1.56: +12 -12 lines
Diff to previous 1.56 (colored)

Make command exec functions return an enum rather than -1/0/1 values and
add a new value to mean "leave client running but don't attach" to fix
problems with using some commands in a command sequence. Most of the
work by Thomas Adam, problem reported by "jspenguin" on SF bug 3535531.

Revision 1.56 / (download) - annotate - [select for diffs], Tue Jul 10 11:53:01 2012 UTC (11 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.55: +2 -2 lines
Diff to previous 1.55 (colored)

xfree is not particularly helpful, remove it. From Thomas Adam.

Revision 1.55 / (download) - annotate - [select for diffs], Sun Apr 8 06:47:26 2012 UTC (12 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.54: +14 -1 lines
Diff to previous 1.54 (colored)

Do not fire name timer when automatic-rename is off, from Tim Ruehsen a
while ago.

Revision 1.54 / (download) - annotate - [select for diffs], Sat Mar 17 21:33:33 2012 UTC (12 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.53: +11 -8 lines
Diff to previous 1.53 (colored)

Add -q option to set-option to turn off info message, from marcel partap.

Revision 1.53 / (download) - annotate - [select for diffs], Sat Feb 25 12:57:42 2012 UTC (12 years, 2 months ago) by nicm
Branch: MAIN
Changes since 1.52: +2 -38 lines
Diff to previous 1.52 (colored)

Allow a single option to be specified to show-options to show just that
option.

Revision 1.52 / (download) - annotate - [select for diffs], Sat Jan 21 08:40:09 2012 UTC (12 years, 4 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_1_BASE, OPENBSD_5_1
Changes since 1.51: +12 -24 lines
Diff to previous 1.51 (colored)

Drop the ability to have a list of keys in the prefix in favour of two
separate options, prefix and prefix2. This simplifies the code and gets
rid the data options type which was only used for this one option.

Also add a -2 flag to send-prefix to send the secondary prefix key,
fixing a cause of minor irritation.

People who want three prefix keys are out of luck :-).

Revision 1.51 / (download) - annotate - [select for diffs], Tue Apr 5 19:37:01 2011 UTC (13 years, 1 month ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_5_0_BASE, OPENBSD_5_0
Changes since 1.50: +2 -2 lines
Diff to previous 1.50 (colored)

Add a flag to cmd_find_session so that attach-session can prefer
unattached sessions when choosing the most recently used (if -t is not
given). Suggested by claudio@.

Revision 1.50 / (download) - annotate - [select for diffs], Tue Mar 29 21:09:13 2011 UTC (13 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.49: +66 -41 lines
Diff to previous 1.49 (colored)

For convenience, work out what type of option is being set by name
regardless of the -s or -w flags (these remain documented however).

Revision 1.49 / (download) - annotate - [select for diffs], Tue Mar 29 21:07:08 2011 UTC (13 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.48: +1 -14 lines
Diff to previous 1.48 (colored)

Checking for particular options and redrawing is not necessary as we
already redraw unconditionally.

Revision 1.48 / (download) - annotate - [select for diffs], Tue Mar 29 20:31:22 2011 UTC (13 years, 1 month ago) by nicm
Branch: MAIN
Changes since 1.47: +2 -6 lines
Diff to previous 1.47 (colored)

Update an out-of-date and inaccurate comment.

Revision 1.47 / (download) - annotate - [select for diffs], Wed Jan 26 01:54:56 2011 UTC (13 years, 3 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.46: +3 -22 lines
Diff to previous 1.46 (colored)

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).

Revision 1.46 / (download) - annotate - [select for diffs], Tue Jan 4 02:03:41 2011 UTC (13 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.45: +13 -2 lines
Diff to previous 1.45 (colored)

Now that parsing is common, merge some of the small, related commands
together to use the same code.

Also add some arguments (such as -n and -p) to some commands to match
existing commands.

Revision 1.45 / (download) - annotate - [select for diffs], Tue Jan 4 01:58:12 2011 UTC (13 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.44: +2 -2 lines
Diff to previous 1.44 (colored)

argc will be 1 not 2 with no option value.

Revision 1.44 / (download) - annotate - [select for diffs], Tue Jan 4 00:42:47 2011 UTC (13 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.43: +110 -97 lines
Diff to previous 1.43 (colored)

Clean up and simplify tmux command argument parsing.

Originally, tmux commands were parsed in the client process into a
struct with the command data which was then serialised and sent to the
server to be executed. The parsing was later moved into the server (an
argv was sent from the client), but the parse step and intermediate
struct was kept.

This change removes that struct and the separate parse step. Argument
parsing and printing is now common to all commands (in arguments.c) with
each command left with just an optional check function (to validate the
arguments at parse time), the exec function and a function to set up any
key bindings (renamed from the old init function).

This is overall more simple and consistent.

There should be no changes to any commands behaviour or syntax although
as this touches every command please watch for any unexpected changes.

Revision 1.43 / (download) - annotate - [select for diffs], Sat Jan 1 16:51:21 2011 UTC (13 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.42: +197 -368 lines
Diff to previous 1.42 (colored)

Move the user-visible parts of all options (names, types, limit, default
values) together into one set of tables in options-table.c. Also clean
up and simplify cmd-set-options.c and move a common print function into
option-table.c.

Revision 1.42 / (download) - annotate - [select for diffs], Thu Dec 30 23:16:18 2010 UTC (13 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.41: +3 -3 lines
Diff to previous 1.41 (colored)

Change from a per-session stack of buffers to one global stack which is
much more convenient and also simplifies lot of code. This renders
copy-buffer useless and makes buffer-limit now a server option.

By Tiago Cunha.

Revision 1.41 / (download) - annotate - [select for diffs], Sun Dec 19 18:35:08 2010 UTC (13 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.40: +3 -1 lines
Diff to previous 1.40 (colored)

Add other-pane-height and other-pane-width options, allowing the width
or height of the smaller panes in the main-horizontal and main-vertical
layouts to be set. Mostly from David Goodlad.

Revision 1.40 / (download) - annotate - [select for diffs], Mon Dec 6 22:51:02 2010 UTC (13 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.39: +3 -1 lines
Diff to previous 1.39 (colored)

Add an option to alert (monitor) for silence (lack of activity) in a
window. From Thomas Adam.

Revision 1.39 / (download) - annotate - [select for diffs], Sun Sep 26 20:43:30 2010 UTC (13 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.38: +3 -1 lines
Diff to previous 1.38 (colored)

Two new options:

- server option "exit-unattached" makes the server exit when no clients
  are attached, even if sessions are present;

- session option "destroy-unattached" destroys a session once no clients
  are attached to it.

These are useful for preventing tmux remaining in the background where
it is undesirable and when using tmux as a login shell to keep a limit
on new sessions.

Revision 1.38 / (download) - annotate - [select for diffs], Wed Sep 1 21:06:51 2010 UTC (13 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.37: +2 -1 lines
Diff to previous 1.37 (colored)

Reset running jobs when the status line is enabled or disabled as well,
some people have it bound to a key.

Revision 1.37 / (download) - annotate - [select for diffs], Sun Jun 27 00:22:22 2010 UTC (13 years, 10 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.36: +2 -1 lines
Diff to previous 1.36 (colored)

New option, detach-on-destroy, to set what happens to a client when the session
it is attached to is destroyed. If on (the default), it is detached; if off, it
is switched to the most recently active session.

Revision 1.36 / (download) - annotate - [select for diffs], Fri May 14 19:03:09 2010 UTC (14 years ago) by nicm
Branch: MAIN
Changes since 1.35: +4 -1 lines
Diff to previous 1.35 (colored)

Colour+attribute options for status line alerts, from Alex Alexander.

Revision 1.35 / (download) - annotate - [select for diffs], Mon Feb 22 20:41:16 2010 UTC (14 years, 2 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.34: +2 -1 lines
Diff to previous 1.34 (colored)

Option to set the characters considered word separators in copy mode, from
Micah Cowan.

Revision 1.34 / (download) - annotate - [select for diffs], Mon Feb 8 00:14:38 2010 UTC (14 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.33: +2 -1 lines
Diff to previous 1.33 (colored)

Add an option to disable the smcup/rmcup alternate screen behaviour inside
tmux. From clemens fischer.

Revision 1.33 / (download) - annotate - [select for diffs], Thu Feb 4 18:20:16 2010 UTC (14 years, 3 months ago) by nicm
Branch: MAIN
Changes since 1.32: +2 -1 lines
Diff to previous 1.32 (colored)

Option to display the active pane in a different colour with the display-panes
command. From Paul Hoffman, thanks.

Revision 1.32 / (download) - annotate - [select for diffs], Sun Jan 3 12:51:05 2010 UTC (14 years, 4 months ago) by nicm
Branch: MAIN
Changes since 1.31: +5 -1 lines
Diff to previous 1.31 (colored)

Options to set the colour of the pane borders, with different colours for the
active pane.

Revision 1.31 / (download) - annotate - [select for diffs], Mon Dec 14 10:43:41 2009 UTC (14 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.30: +2 -1 lines
Diff to previous 1.30 (colored)

New server option, escape-time, to set the timeout used to detect if escapes
are alone or part of a function key or meta sequence.

Revision 1.30 / (download) - annotate - [select for diffs], Fri Dec 11 13:58:48 2009 UTC (14 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.29: +2 -1 lines
Diff to previous 1.29 (colored)

Use quiet variable, and add missing sentinel to options array.

Revision 1.29 / (download) - annotate - [select for diffs], Thu Dec 10 09:16:52 2009 UTC (14 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.28: +11 -4 lines
Diff to previous 1.28 (colored)

Add "server options" which are server-wide and not bound to a session or
window. Set and displayed with "set -s" and "show -s".

Currently the only option is "quiet" (like command-line -q, allowing it to be
set from .tmux.conf), but others will come along.

Revision 1.28 / (download) - annotate - [select for diffs], Thu Dec 3 22:50:10 2009 UTC (14 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.27: +13 -13 lines
Diff to previous 1.27 (colored)

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...

Revision 1.27 / (download) - annotate - [select for diffs], Thu Dec 3 17:44:02 2009 UTC (14 years, 5 months ago) by nicm
Branch: MAIN
Changes since 1.26: +337 -19 lines
Diff to previous 1.26 (colored)

Eliminate duplicate code and ease the passage for server-wide options by adding
a -w flag to set-option and show-options and making setw and showw aliases to
set -w and show -w.

Note: setw and showw are still there, but now aliases for set -w and show -w.

Revision 1.26 / (download) - annotate - [select for diffs], Wed Nov 18 13:16:33 2009 UTC (14 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.25: +2 -1 lines
Diff to previous 1.25 (colored)

Add a per-client log of status line messages displayed while that client
exists. A new message-limit session option sets the maximum number of entries
and a command, show-messages, shows the log (bound to ~ by default).

This (and prompt history) might be better as a single global log but until
there are global options it is easier for them to be per client.

Revision 1.25 / (download) - annotate - [select for diffs], Fri Nov 13 19:53:29 2009 UTC (14 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.24: +6 -6 lines
Diff to previous 1.24 (colored)

Get rid of the ugly CMD_CHFLAG macro and use a const string (eg "dDU") in the
command entry structs and a couple of functions to check/set the flags.

Revision 1.24 / (download) - annotate - [select for diffs], Sun Nov 1 23:20:37 2009 UTC (14 years, 6 months ago) by nicm
Branch: MAIN
Changes since 1.23: +32 -6 lines
Diff to previous 1.23 (colored)

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 #().

Revision 1.23 / (download) - annotate - [select for diffs], Sat Oct 10 15:03:01 2009 UTC (14 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.22: +5 -2 lines
Diff to previous 1.22 (colored)

Rather than running status-left, status-right and window title #() with popen
immediately every redraw, queue them up and run them in the background,
starting each once every status-interval. The actual status line uses the
output from the last run.

This brings several advantages:

- tmux itself may be called from inside #() without causing the server to hang;
- likewise, sleep or similar doesn't cause the server to block;
- commands aren't run excessively often when redrawing;
- commands shared by status-left and status-right, or used multiple times, will
  only be run once.

run-shell and if-shell still use system()/popen() but will be changed over to
use this too later.

Revision 1.22 / (download) - annotate - [select for diffs], Sat Oct 10 14:51:16 2009 UTC (14 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.21: +2 -1 lines
Diff to previous 1.21 (colored)

New option, mouse-select-pane. If on, the mouse may be used to select the
current pane.

Suggested by sthen@ and also by someone else ages ago who I have forgotten.

Revision 1.21 / (download) - annotate - [select for diffs], Sat Oct 10 09:46:11 2009 UTC (14 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.20: +2 -1 lines
Diff to previous 1.20 (colored)

Support for individual session idle time locking. May be enabled by turning off
the lock-server option (it is on by default). When this is off, each session
locks when it has been idle for the lock-after-time setting. When on, the
entire server locks when ALL sessions have been idle for their individual
lock-after-time settings.

This replaces one global-only option (lock-after-time) with another
(lock-server), but the default behaviour is usually preferable so there don't
seem to be many alternatives.

Diff/idea largely from Thomas Adam, tweaked by me.

Revision 1.20 / (download) - annotate - [select for diffs], Wed Sep 23 06:18:47 2009 UTC (14 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.19: +2 -1 lines
Diff to previous 1.19 (colored)

Remove the internal tmux locking and instead detach each client and run the
command specified by a new option "lock-command" (by default "lock -np") in
each client.

This means each terminal has to be unlocked individually but simplifies the
code and allows the system password to be used to unlock.

Note that the set-password command is gone, so it will need to be removed from
configuration files, and the -U command line flag has been removed.

This is the third protocol version change so again it is best to stop the tmux
server before upgrading.

Revision 1.19 / (download) - annotate - [select for diffs], Tue Sep 22 12:38:10 2009 UTC (14 years, 7 months ago) by nicm
Branch: MAIN
Changes since 1.18: +4 -4 lines
Diff to previous 1.18 (colored)

Permit multiple prefix keys to be defined, separated by commas, for example:

set -g prefix ^a,^b

Any key in the list acts as the prefix. The send-prefix command always sends
the first key in the list.

Revision 1.18 / (download) - annotate - [select for diffs], Fri Sep 18 15:19:27 2009 UTC (14 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.17: +2 -1 lines
Diff to previous 1.17 (colored)

New option, set-titles-string, to allow the window title to be specified (as
for status-left/right) if set-titles is on. Also only update the title when the
status line is being redrawn.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Sep 1 13:09:49 2009 UTC (14 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.16: +2 -1 lines
Diff to previous 1.16 (colored)

When using tmux as a login shell, there is currently no way to specify a shell
to be used as a login shell inside tmux, so add a default-shell session option.
This sets the shell invoked as a login shell when the default-command option is
empty.

The default option value is whichever of $SHELL, getpwuid(getuid())'s pw_shell
or /bin/sh is valid first.

Based on a diff from martynas@, changed by me to be a session option rather
than a window option.

Revision 1.16 / (download) - annotate - [select for diffs], Mon Aug 31 20:46:19 2009 UTC (14 years, 8 months ago) by nicm
Branch: MAIN
Changes since 1.15: +3 -1 lines
Diff to previous 1.15 (colored)

Add a new display-panes command, with two options (display-panes-colour and
display-panes-time), which displays a visual indication of the number of each
pane.

Revision 1.15 / (download) - annotate - [select for diffs], Thu Aug 13 20:11:58 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.14: +2 -1 lines
Diff to previous 1.14 (colored)

Add a base-index session option to specify the first index checked when looking
for an index for a new window.

Revision 1.14 / (download) - annotate - [select for diffs], Tue Aug 11 12:53:37 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.13: +20 -20 lines
Diff to previous 1.13 (colored)

Add flags for 1+2 and 2 arguments to the generic target code, use it for
cmd-set-environment/option/window-option and remove the generic options
parsing.

Revision 1.13 / (download) - annotate - [select for diffs], Sat Aug 8 21:52:43 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.12: +2 -1 lines
Diff to previous 1.12 (colored)

Infrastructure and commands to manage the environment for processes started
within tmux.

There is a global environment, copied from the external environment when the
server is started and each sesssion has an (initially empty) session
environment which overrides it.

New commands set-environment and show-environment manipulate or display the
environments.

A new session option, update-environment, is a space-separated list of
variables which are updated from the external environment into the session
environment every time a new session is created - the default is DISPLAY.

Revision 1.12 / (download) - annotate - [select for diffs], Sat Aug 8 20:36:42 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.11: +7 -1 lines
Diff to previous 1.11 (colored)

Options to set the colours and attributes for status-left/-right. From Thomas
Adam, thanks.

Revision 1.11 / (download) - annotate - [select for diffs], Tue Aug 4 18:45:57 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.10: +5 -4 lines
Diff to previous 1.10 (colored)

Add a -a flag to set-option and set-window-option to append to an existing
string value, useful for terminal-overrides.

Revision 1.10 / (download) - annotate - [select for diffs], Mon Aug 3 14:10:54 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.9: +3 -2 lines
Diff to previous 1.9 (colored)

Add a terminal-overrides session option allowing individual terminfo(5) entries
to be overridden. The 88col/256col checks are now moved into the default
setting and out of the code.

Also remove a couple of old workarounds for xterm and rxvt which are no longer
necessary (tmux can emulate them if missing).

Revision 1.9 / (download) - annotate - [select for diffs], Sun Jul 26 12:58:44 2009 UTC (14 years, 9 months ago) by nicm
Branch: MAIN
Changes since 1.8: +1 -3 lines
Diff to previous 1.8 (colored)

Make all messages sent between the client and server fixed size.

This is the first of two changes to make the protocol more resilient and less
sensitive to other changes in the code, particularly with commands. The client
now packs argv into a buffer and sends it to the server for parsing, rather
than doing it itself and sending the parsed command data.

As a side-effect this also removes a lot of now-unused command marshalling
code.

Mixing a server without this change and a client with or vice versa will cause
tmux to hang or crash, please ensure that tmux is entirely killed before
upgrading.

Revision 1.8 / (download) - annotate - [select for diffs], Mon Jul 20 14:32:09 2009 UTC (14 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.7: +6 -1 lines
Diff to previous 1.7 (colored)

Add a status-justify option to allow the window list in the status line to be
positioned at the left, centre, or right.

Revision 1.7 / (download) - annotate - [select for diffs], Sat Jul 18 14:59:25 2009 UTC (14 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.6: +4 -1 lines
Diff to previous 1.6 (colored)

Add three new session options: visual-activity, visual-bell, visual-content. If
these are enabled (and the monitor-activity, bell-actio and monitor-content
options are configurated appropriately), when activity, a bell, or content is
detected, a message is shown.

Also tidy up the bell/activity/content code in server.c slightly and fix a
couple of errors.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Jul 15 07:50:34 2009 UTC (14 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.5: +7 -7 lines
Diff to previous 1.5 (colored)

Having to update NSETOPTION/NSETWINDOWOPTION when adding new options is a bit
annoying and it is only use for iterating, so use a sentinel to mark the end of
each array instead. Different fix for a problem pointed out by Kalle Olavi
Niemitalo.

Revision 1.5 / (download) - annotate - [select for diffs], Mon Jul 13 23:11:35 2009 UTC (14 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.4: +5 -5 lines
Diff to previous 1.4 (colored)

Having fixed flags for single-character getopt options is a bit hard to
maintain and is only going to get worse as more are used. So instead, add a new
uint64_t member to cmd_entry which is a bitmask of upper and lowercase options
accepted by the command.

This means new single character options can be used without the need to add it
explicitly to the list.

Revision 1.4 / (download) - annotate - [select for diffs], Fri Jul 10 05:50:54 2009 UTC (14 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.3: +2 -1 lines
Diff to previous 1.3 (colored)

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.

Revision 1.3 / (download) - annotate - [select for diffs], Tue Jul 7 19:49:19 2009 UTC (14 years, 10 months ago) by nicm
Branch: MAIN
Changes since 1.2: +2 -2 lines
Diff to previous 1.2 (colored)

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.

Revision 1.2 / (download) - annotate - [select for diffs], Wed Jun 3 16:54:26 2009 UTC (14 years, 11 months ago) by nicm
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.1: +2 -1 lines
Diff to previous 1.1 (colored)

New session option, status-utf8, to control the interpretation of top-bit-set
characters in status-left and status-right (if on, they are treated as UTF-8;
otherwise passed through).

Revision 1.1 / (download) - annotate - [select for diffs], Mon Jun 1 22:58:49 2009 UTC (14 years, 11 months ago) by nicm
Branch: MAIN

Import tmux, a terminal multiplexor allowing (among other things) a single
terminal to be switched between several different windows and programs
displayed on one terminal be detached from one terminal and moved to another.

ok deraadt pirofti

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.