Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/bsd/tmux/dist CHANGES FROM 3.0 to 3.0a



details:   https://anonhg.NetBSD.org/src/rev/4b3358a348d1
branches:  trunk
changeset: 466922:4b3358a348d1
user:      christos <christos%NetBSD.org@localhost>
date:      Mon Jan 06 20:40:36 2020 +0000

description:
CHANGES FROM 3.0 to 3.0a

* Do not require REG_STARTEND.

* Respawn panes or windows correctly if default-command is set.

* Add missing option for after-kill-pane hook.

* Fix for crash with a format variable that doesn't exist.

* Do not truncate list-keys output on some platforms.

* Do not crash when restoring a layout with only one pane.

CHANGES FROM 2.9 to 3.0

* Workaround invalid layout strings generated by older tmux versions and add
  some additional sanity checks

* xterm 348 now disables margins when resized, so send DECLRMM again after
  resize.

* Add support for the SD (scroll down) escape sequence.

* Expand arguments to C and s format modifiers to match the m modifier.

* Add support for underscore colours (Setulc capability must be added with
  terminal-overrides as described in tmux(1)).

* Add a "fill" style attribute for the fill colour of the drawing area (where
  appropriate).

* New -H flag to send-keys to send literal keys.

* Format variables for pane mouse modes (mouse_utf8_flag and mouse_sgr_flag)
  and for origin mode (origin_flag).

* Add -F to refresh-client for flags for control mode clients, only one flag
  (no-output) supported at the moment.

* Add a few vi(1) keys for menus.

* Add pane options, set with set-option -p and displayed with show-options -p.
  Pane options inherit from window options (so every pane option is also
  a window option). The pane style is now configured by setting window-style
  and window-active-style in the pane options; select-pane -P and -g now change
  the option but are no longer documented.

* Do not document set-window-option and show-window-options. set-option -w and
  show-options -w should be used instead.

* Add a -A flag to show-options to show parent options as well (they are marked
  with a *).

* Resize panes lazily - do not resize unless they are in an attached, active
  window.

* Add regular expression support for the format search, match and substitute
  modifiers and make them able to ignore case. find-window now accepts -r to
  use regular expressions.

* Do not use $TMUX to find the session because for windows in multiple sessions
  it is wrong as often as it is right, and for windows in one session it is
  pointless. Instead use TMUX_PANE if it is present.

* Do not always resize the window back to its original size after applying a
  layout, keep it at the layout size until it must be resized (for example when
  attached and window-size is not manual).

* Add new-session -X and attach-session -x to send SIGHUP to parent when
  detaching (like detach-client -P).

* Support for octal escapes in strings (such as \007) and improve list-keys
  output so it parses correctly if copied into a configuration file.

* INCOMPATIBLE: Add a new {} syntax to the configuration file. This is a string
  similar to single quotes but also includes newlines and allows commands that
  take other commands as string arguments to be expressed more clearly and
  without additional escaping.

  A literal { and } or a string containing { or } must now be escaped or
  quoted, for example '{' and '}' instead of { or }, or 'X#{foo}' instead of
  X#{foo}.

* New <, >, <= and >= comparison operators for formats.

* Improve escaping of special characters in list-keys output.

* INCOMPATIBLE: tmux's configuration parsing has changed to use yacc(1). There
  is one incompatible change: a \ on its own must be escaped or quoted as
  either \\ or '\' (the latter works on older tmux versions).

  Entirely the same parser is now used for parsing the configuration file
  and for string commands. This means that constructs previously only
  available in .tmux.conf, such as %if, can now be used in string commands
  (for example, those given to if-shell - not commands invoked from the
  shell, they are still parsed by the shell itself).

* Add support for the overline attribute (SGR 53). The Smol capability is
  needed in terminal-overrides.

* Add the ability to create simple menus. Introduces new command
  display-menu. Default menus are bound to MouseDown3 on the status line;
  MouseDown3 or M-MouseDown3 on panes; MouseDown3 in tree, client and
  buffer modes; and C-b C-m and C-b M-m.

* Allow panes to be empty (no command). They can be created either by piping to
  split-window -I, or by passing an empty command ('') to split-window. Output
  can be sent to an existing empty window with display-message -I.

* Add keys to jump between matching brackets (emacs C-M-f and C-M-b, vi %).

* Add a -e flag to new-window, split-window, respawn-window, respawn-pane to
  pass environment variables into the newly created process.

* Hooks are now stored in the options tree as array options, allowing them to
  have multiple separate commands. set-hook and show-hooks remain but
  set-option and show-options can now also be used (show-options will only show
  hooks if given the -H flag). Hooks with multiple commands are run in index
  order.

* Automatically scroll if dragging to create a selection with the mouse and the
  cursor reaches the top or bottom line.

* Add -no-clear variants of copy-selection and copy-pipe which do not clear the
  selection after copying. Make copy-pipe clear the selection by default to be
  consistent with copy-selection.

* Add an argument to copy commands to set the prefix for the buffer name, this
  (for example) allows buffers for different sessions to be named separately.

* Update session activity on focus event.

* Pass target from source-file into the config file parser so formats in %if
  and %endif have access to more useful variables.

* Add the ability to infer an option type (server, session, window) from its
  name to show-options (it was already present in set-option).

diffstat:

 external/bsd/tmux/dist/CHANGES              |   139 +
 external/bsd/tmux/dist/COPYING              |     7 +-
 external/bsd/tmux/dist/Makefile.am          |    11 +-
 external/bsd/tmux/dist/Makefile.in          |   113 +-
 external/bsd/tmux/dist/README               |    78 +-
 external/bsd/tmux/dist/arguments.c          |   192 +-
 external/bsd/tmux/dist/attributes.c         |     8 +-
 external/bsd/tmux/dist/cfg.c                |   238 +--
 external/bsd/tmux/dist/cmd-bind-key.c       |    36 +-
 external/bsd/tmux/dist/cmd-break-pane.c     |     2 +
 external/bsd/tmux/dist/cmd-command-prompt.c |    43 +-
 external/bsd/tmux/dist/cmd-confirm-before.c |    44 +-
 external/bsd/tmux/dist/cmd-copy-mode.c      |     8 +-
 external/bsd/tmux/dist/cmd-display-menu.c   |   178 ++
 external/bsd/tmux/dist/cmd-display-panes.c  |   293 ++-
 external/bsd/tmux/dist/cmd-find-window.c    |    81 +-
 external/bsd/tmux/dist/cmd-find.c           |    81 +-
 external/bsd/tmux/dist/cmd-join-pane.c      |    12 +-
 external/bsd/tmux/dist/cmd-kill-session.c   |     4 +-
 external/bsd/tmux/dist/cmd-list-keys.c      |    46 +-
 external/bsd/tmux/dist/cmd-parse.c          |  2056 +++++++++++++++++++++++++++
 external/bsd/tmux/dist/cmd-parse.y          |  1548 ++++++++++++++++++++
 external/bsd/tmux/dist/cmd-refresh-client.c |    62 +-
 external/bsd/tmux/dist/cmd-resize-pane.c    |    12 +-
 external/bsd/tmux/dist/cmd-respawn-pane.c   |    88 +-
 external/bsd/tmux/dist/cmd-respawn-window.c |    80 +-
 external/bsd/tmux/dist/cmd-rotate-window.c  |     4 +-
 external/bsd/tmux/dist/cmd-run-shell.c      |     2 +-
 external/bsd/tmux/dist/cmd-save-buffer.c    |     2 +-
 external/bsd/tmux/dist/cmd-select-pane.c    |    26 +-
 external/bsd/tmux/dist/cmd-select-window.c  |     4 +-
 external/bsd/tmux/dist/cmd-set-option.c     |   107 +-
 external/bsd/tmux/dist/cmd-source-file.c    |    69 +-
 external/bsd/tmux/dist/cmd-swap-pane.c      |    14 +-
 external/bsd/tmux/dist/cmd-swap-window.c    |     2 +-
 external/bsd/tmux/dist/cmd-switch-client.c  |     4 +-
 external/bsd/tmux/dist/cmd.c                |   331 ++-
 external/bsd/tmux/dist/compat.h             |     5 +-
 external/bsd/tmux/dist/configure            |   144 +-
 external/bsd/tmux/dist/configure.ac         |    11 +-
 external/bsd/tmux/dist/control-notify.c     |     8 +-
 external/bsd/tmux/dist/control.c            |    26 +-
 external/bsd/tmux/dist/etc/ylwrap           |   247 +++
 external/bsd/tmux/dist/example_tmux.conf    |     2 +-
 external/bsd/tmux/dist/format-draw.c        |    30 +-
 external/bsd/tmux/dist/key-string.c         |     6 +
 external/bsd/tmux/dist/layout-custom.c      |    81 +-
 external/bsd/tmux/dist/layout-set.c         |    50 +-
 external/bsd/tmux/dist/layout.c             |   163 +-
 external/bsd/tmux/dist/menu.c               |   323 ++++
 external/bsd/tmux/dist/options-table.c      |   104 +-
 external/bsd/tmux/dist/osdep-darwin.c       |     3 +
 external/bsd/tmux/dist/osdep-netbsd.c       |    17 +-
 external/bsd/tmux/dist/regsub.c             |   115 +
 external/bsd/tmux/dist/resize.c             |     5 +-
 external/bsd/tmux/dist/screen-redraw.c      |   212 +--
 external/bsd/tmux/dist/server.c             |    24 +-
 external/bsd/tmux/dist/spawn.c              |   444 +++++
 external/bsd/tmux/dist/xmalloc.c            |     2 +-
 59 files changed, 6677 insertions(+), 1370 deletions(-)

diffs (truncated from 10345 to 300 lines):

diff -r e081f3a6dbf9 -r 4b3358a348d1 external/bsd/tmux/dist/CHANGES
--- a/external/bsd/tmux/dist/CHANGES    Mon Jan 06 20:35:11 2020 +0000
+++ b/external/bsd/tmux/dist/CHANGES    Mon Jan 06 20:40:36 2020 +0000
@@ -1,3 +1,142 @@
+CHANGES FROM 3.0 to 3.0a
+
+* Do not require REG_STARTEND.
+
+* Respawn panes or windows correctly if default-command is set.
+
+* Add missing option for after-kill-pane hook.
+
+* Fix for crash with a format variable that doesn't exist.
+
+* Do not truncate list-keys output on some platforms.
+
+* Do not crash when restoring a layout with only one pane.
+
+CHANGES FROM 2.9 to 3.0
+
+* Workaround invalid layout strings generated by older tmux versions and add
+  some additional sanity checks
+
+* xterm 348 now disables margins when resized, so send DECLRMM again after
+  resize.
+
+* Add support for the SD (scroll down) escape sequence.
+
+* Expand arguments to C and s format modifiers to match the m modifier.
+
+* Add support for underscore colours (Setulc capability must be added with
+  terminal-overrides as described in tmux(1)).
+
+* Add a "fill" style attribute for the fill colour of the drawing area (where
+  appropriate).
+
+* New -H flag to send-keys to send literal keys.
+
+* Format variables for pane mouse modes (mouse_utf8_flag and mouse_sgr_flag)
+  and for origin mode (origin_flag).
+
+* Add -F to refresh-client for flags for control mode clients, only one flag
+  (no-output) supported at the moment.
+
+* Add a few vi(1) keys for menus.
+
+* Add pane options, set with set-option -p and displayed with show-options -p.
+  Pane options inherit from window options (so every pane option is also
+  a window option). The pane style is now configured by setting window-style
+  and window-active-style in the pane options; select-pane -P and -g now change
+  the option but are no longer documented.
+
+* Do not document set-window-option and show-window-options. set-option -w and
+  show-options -w should be used instead.
+
+* Add a -A flag to show-options to show parent options as well (they are marked
+  with a *).
+
+* Resize panes lazily - do not resize unless they are in an attached, active
+  window.
+
+* Add regular expression support for the format search, match and substitute
+  modifiers and make them able to ignore case. find-window now accepts -r to
+  use regular expressions.
+
+* Do not use $TMUX to find the session because for windows in multiple sessions
+  it is wrong as often as it is right, and for windows in one session it is
+  pointless. Instead use TMUX_PANE if it is present.
+
+* Do not always resize the window back to its original size after applying a
+  layout, keep it at the layout size until it must be resized (for example when
+  attached and window-size is not manual).
+
+* Add new-session -X and attach-session -x to send SIGHUP to parent when
+  detaching (like detach-client -P).
+
+* Support for octal escapes in strings (such as \007) and improve list-keys
+  output so it parses correctly if copied into a configuration file.
+
+* INCOMPATIBLE: Add a new {} syntax to the configuration file. This is a string
+  similar to single quotes but also includes newlines and allows commands that
+  take other commands as string arguments to be expressed more clearly and
+  without additional escaping.
+
+  A literal { and } or a string containing { or } must now be escaped or
+  quoted, for example '{' and '}' instead of { or }, or 'X#{foo}' instead of
+  X#{foo}.
+
+* New <, >, <= and >= comparison operators for formats.
+
+* Improve escaping of special characters in list-keys output.
+
+* INCOMPATIBLE: tmux's configuration parsing has changed to use yacc(1). There
+  is one incompatible change: a \ on its own must be escaped or quoted as
+  either \\ or '\' (the latter works on older tmux versions).
+
+  Entirely the same parser is now used for parsing the configuration file
+  and for string commands. This means that constructs previously only
+  available in .tmux.conf, such as %if, can now be used in string commands
+  (for example, those given to if-shell - not commands invoked from the
+  shell, they are still parsed by the shell itself).
+
+* Add support for the overline attribute (SGR 53). The Smol capability is
+  needed in terminal-overrides.
+
+* Add the ability to create simple menus. Introduces new command
+  display-menu. Default menus are bound to MouseDown3 on the status line;
+  MouseDown3 or M-MouseDown3 on panes; MouseDown3 in tree, client and
+  buffer modes; and C-b C-m and C-b M-m.
+
+* Allow panes to be empty (no command). They can be created either by piping to
+  split-window -I, or by passing an empty command ('') to split-window. Output
+  can be sent to an existing empty window with display-message -I.
+
+* Add keys to jump between matching brackets (emacs C-M-f and C-M-b, vi %).
+
+* Add a -e flag to new-window, split-window, respawn-window, respawn-pane to
+  pass environment variables into the newly created process.
+
+* Hooks are now stored in the options tree as array options, allowing them to
+  have multiple separate commands. set-hook and show-hooks remain but
+  set-option and show-options can now also be used (show-options will only show
+  hooks if given the -H flag). Hooks with multiple commands are run in index
+  order.
+
+* Automatically scroll if dragging to create a selection with the mouse and the
+  cursor reaches the top or bottom line.
+
+* Add -no-clear variants of copy-selection and copy-pipe which do not clear the
+  selection after copying. Make copy-pipe clear the selection by default to be
+  consistent with copy-selection.
+
+* Add an argument to copy commands to set the prefix for the buffer name, this
+  (for example) allows buffers for different sessions to be named separately.
+
+* Update session activity on focus event.
+
+* Pass target from source-file into the config file parser so formats in %if
+  and %endif have access to more useful variables.
+
+* Add the ability to infer an option type (server, session, window) from its
+  name to show-options (it was already present in set-option).
+
 CHANGES FROM 2.9 to 2.9a
 
 * Fix bugs in select-pane and the main-horizontal and main-vertical layouts.
diff -r e081f3a6dbf9 -r 4b3358a348d1 external/bsd/tmux/dist/COPYING
--- a/external/bsd/tmux/dist/COPYING    Mon Jan 06 20:35:11 2020 +0000
+++ b/external/bsd/tmux/dist/COPYING    Mon Jan 06 20:40:36 2020 +0000
@@ -1,10 +1,7 @@
 THIS IS FOR INFORMATION ONLY, CODE IS UNDER THE LICENCE AT THE TOP OF ITS FILE.
 
-The README, CHANGES, FAQ and TODO files are licensed under the ISC
-license. Files under examples/ remain copyright their authors unless otherwise
-stated in the file but permission has been received to distribute them with
-tmux. All other files have a license and copyright notice at their start,
-typically:
+The README, CHANGES, FAQ and TODO files are licensed under the ISC license. All
+other files have a license and copyright notice at their start, typically:
 
 Copyright (c) <author>
 
diff -r e081f3a6dbf9 -r 4b3358a348d1 external/bsd/tmux/dist/Makefile.am
--- a/external/bsd/tmux/dist/Makefile.am        Mon Jan 06 20:35:11 2020 +0000
+++ b/external/bsd/tmux/dist/Makefile.am        Mon Jan 06 20:40:36 2020 +0000
@@ -2,7 +2,7 @@
 
 # Obvious program stuff.
 bin_PROGRAMS = tmux
-CLEANFILES = tmux.1.mdoc tmux.1.man
+CLEANFILES = tmux.1.mdoc tmux.1.man cmd-parse.c
 
 # Distribution tarball options.
 EXTRA_DIST = \
@@ -71,6 +71,7 @@
        cmd-confirm-before.c \
        cmd-copy-mode.c \
        cmd-detach-client.c \
+       cmd-display-menu.c \
        cmd-display-message.c \
        cmd-display-panes.c \
        cmd-find-window.c \
@@ -87,12 +88,12 @@
        cmd-list-panes.c \
        cmd-list-sessions.c \
        cmd-list-windows.c \
-       cmd-list.c \
        cmd-load-buffer.c \
        cmd-lock-server.c \
        cmd-move-window.c \
        cmd-new-session.c \
        cmd-new-window.c \
+       cmd-parse.y \
        cmd-paste-buffer.c \
        cmd-pipe-pane.c \
        cmd-queue.c \
@@ -112,14 +113,12 @@
        cmd-send-keys.c \
        cmd-set-buffer.c \
        cmd-set-environment.c \
-       cmd-set-hook.c \
        cmd-set-option.c \
        cmd-show-environment.c \
        cmd-show-messages.c \
        cmd-show-options.c \
        cmd-source-file.c \
        cmd-split-window.c \
-       cmd-string.c \
        cmd-swap-pane.c \
        cmd-swap-window.c \
        cmd-switch-client.c \
@@ -135,7 +134,6 @@
        format-draw.c \
        grid-view.c \
        grid.c \
-       hooks.c \
        input-keys.c \
        input.c \
        job.c \
@@ -145,6 +143,7 @@
        layout-set.c \
        layout.c \
        log.c \
+       menu.c \
        mode-tree.c \
        names.c \
        notify.c \
@@ -152,6 +151,7 @@
        options.c \
        paste.c \
        proc.c \
+       regsub.c \
        resize.c \
        screen-redraw.c \
        screen-write.c \
@@ -160,6 +160,7 @@
        server-fn.c \
        server.c \
        session.c \
+       spawn.c \
        status.c \
        style.c \
        tmux.c \
diff -r e081f3a6dbf9 -r 4b3358a348d1 external/bsd/tmux/dist/Makefile.in
--- a/external/bsd/tmux/dist/Makefile.in        Mon Jan 06 20:35:11 2020 +0000
+++ b/external/bsd/tmux/dist/Makefile.in        Mon Jan 06 20:40:36 2020 +0000
@@ -147,49 +147,49 @@
        cmd-break-pane.$(OBJEXT) cmd-capture-pane.$(OBJEXT) \
        cmd-choose-tree.$(OBJEXT) cmd-command-prompt.$(OBJEXT) \
        cmd-confirm-before.$(OBJEXT) cmd-copy-mode.$(OBJEXT) \
-       cmd-detach-client.$(OBJEXT) cmd-display-message.$(OBJEXT) \
-       cmd-display-panes.$(OBJEXT) cmd-find-window.$(OBJEXT) \
-       cmd-find.$(OBJEXT) cmd-if-shell.$(OBJEXT) \
-       cmd-join-pane.$(OBJEXT) cmd-kill-pane.$(OBJEXT) \
-       cmd-kill-server.$(OBJEXT) cmd-kill-session.$(OBJEXT) \
-       cmd-kill-window.$(OBJEXT) cmd-list-buffers.$(OBJEXT) \
-       cmd-list-clients.$(OBJEXT) cmd-list-keys.$(OBJEXT) \
-       cmd-list-panes.$(OBJEXT) cmd-list-sessions.$(OBJEXT) \
-       cmd-list-windows.$(OBJEXT) cmd-list.$(OBJEXT) \
+       cmd-detach-client.$(OBJEXT) cmd-display-menu.$(OBJEXT) \
+       cmd-display-message.$(OBJEXT) cmd-display-panes.$(OBJEXT) \
+       cmd-find-window.$(OBJEXT) cmd-find.$(OBJEXT) \
+       cmd-if-shell.$(OBJEXT) cmd-join-pane.$(OBJEXT) \
+       cmd-kill-pane.$(OBJEXT) cmd-kill-server.$(OBJEXT) \
+       cmd-kill-session.$(OBJEXT) cmd-kill-window.$(OBJEXT) \
+       cmd-list-buffers.$(OBJEXT) cmd-list-clients.$(OBJEXT) \
+       cmd-list-keys.$(OBJEXT) cmd-list-panes.$(OBJEXT) \
+       cmd-list-sessions.$(OBJEXT) cmd-list-windows.$(OBJEXT) \
        cmd-load-buffer.$(OBJEXT) cmd-lock-server.$(OBJEXT) \
        cmd-move-window.$(OBJEXT) cmd-new-session.$(OBJEXT) \
-       cmd-new-window.$(OBJEXT) cmd-paste-buffer.$(OBJEXT) \
-       cmd-pipe-pane.$(OBJEXT) cmd-queue.$(OBJEXT) \
-       cmd-refresh-client.$(OBJEXT) cmd-rename-session.$(OBJEXT) \
-       cmd-rename-window.$(OBJEXT) cmd-resize-pane.$(OBJEXT) \
-       cmd-resize-window.$(OBJEXT) cmd-respawn-pane.$(OBJEXT) \
-       cmd-respawn-window.$(OBJEXT) cmd-rotate-window.$(OBJEXT) \
-       cmd-run-shell.$(OBJEXT) cmd-save-buffer.$(OBJEXT) \
-       cmd-select-layout.$(OBJEXT) cmd-select-pane.$(OBJEXT) \
-       cmd-select-window.$(OBJEXT) cmd-send-keys.$(OBJEXT) \
-       cmd-set-buffer.$(OBJEXT) cmd-set-environment.$(OBJEXT) \
-       cmd-set-hook.$(OBJEXT) cmd-set-option.$(OBJEXT) \
+       cmd-new-window.$(OBJEXT) cmd-parse.$(OBJEXT) \
+       cmd-paste-buffer.$(OBJEXT) cmd-pipe-pane.$(OBJEXT) \
+       cmd-queue.$(OBJEXT) cmd-refresh-client.$(OBJEXT) \
+       cmd-rename-session.$(OBJEXT) cmd-rename-window.$(OBJEXT) \
+       cmd-resize-pane.$(OBJEXT) cmd-resize-window.$(OBJEXT) \
+       cmd-respawn-pane.$(OBJEXT) cmd-respawn-window.$(OBJEXT) \
+       cmd-rotate-window.$(OBJEXT) cmd-run-shell.$(OBJEXT) \
+       cmd-save-buffer.$(OBJEXT) cmd-select-layout.$(OBJEXT) \
+       cmd-select-pane.$(OBJEXT) cmd-select-window.$(OBJEXT) \
+       cmd-send-keys.$(OBJEXT) cmd-set-buffer.$(OBJEXT) \
+       cmd-set-environment.$(OBJEXT) cmd-set-option.$(OBJEXT) \
        cmd-show-environment.$(OBJEXT) cmd-show-messages.$(OBJEXT) \
        cmd-show-options.$(OBJEXT) cmd-source-file.$(OBJEXT) \
-       cmd-split-window.$(OBJEXT) cmd-string.$(OBJEXT) \
-       cmd-swap-pane.$(OBJEXT) cmd-swap-window.$(OBJEXT) \
-       cmd-switch-client.$(OBJEXT) cmd-unbind-key.$(OBJEXT) \
-       cmd-wait-for.$(OBJEXT) cmd.$(OBJEXT) colour.$(OBJEXT) \
-       control-notify.$(OBJEXT) control.$(OBJEXT) environ.$(OBJEXT) \
-       format.$(OBJEXT) format-draw.$(OBJEXT) grid-view.$(OBJEXT) \



Home | Main Index | Thread Index | Old Index