From d64a815e8d03bca597ff33f103a57fe7a06f2b82 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 19 Apr 2017 07:58:45 +0100 Subject: [PATCH 1/7] Missed freezero. --- compat.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/compat.h b/compat.h index e85536cb..2b666b1f 100644 --- a/compat.h +++ b/compat.h @@ -315,6 +315,11 @@ int unsetenv(const char *); void cfmakeraw(struct termios *); #endif +#ifndef HAVE_FREEZERO +/* freezero.c */ +void freezero(void *, size_t); +#endif + #ifndef HAVE_REALLOCARRAY /* reallocarray.c */ void *reallocarray(void *, size_t, size_t); From b946bf43f54e779c014ab47ef4b5e0410ed35d83 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Wed, 19 Apr 2017 13:51:49 +0100 Subject: [PATCH 2/7] Version 2.4. --- configure.ac | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index b078c4f4..80ea3872 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # configure.ac -AC_INIT(tmux, master) +AC_INIT(tmux, 2.4) AC_PREREQ([2.60]) AC_CONFIG_AUX_DIR(etc) @@ -35,7 +35,6 @@ AC_USE_SYSTEM_EXTENSIONS test "$sysconfdir" = '${prefix}/etc' && sysconfdir=/etc # Is this --enable-debug? -enable_debug=yes AC_ARG_ENABLE( debug, AC_HELP_STRING(--enable-debug, enable debug build flags), From b08748353867780e710734e75ad6772911901cd4 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 19 Apr 2017 16:59:54 +0000 Subject: [PATCH 3/7] load_cfg returns < 0 on error, not != 0. Problem reported by Kaushal Modi. --- cmd-source-file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd-source-file.c b/cmd-source-file.c index db6b4caa..e96af5f1 100644 --- a/cmd-source-file.c +++ b/cmd-source-file.c @@ -78,7 +78,7 @@ cmd_source_file_exec(struct cmd *self, struct cmdq_item *item) free(pattern); for (i = 0; i < (u_int)g.gl_pathc; i++) { - if (load_cfg(g.gl_pathv[i], c, item, quiet) != 0) + if (load_cfg(g.gl_pathv[i], c, item, quiet) < 0) retval = CMD_RETURN_ERROR; } if (cfg_finished) { From 9b2f02efbdd720ff2cfc958224b4fd59284f9889 Mon Sep 17 00:00:00 2001 From: Thomas Adam Date: Thu, 20 Apr 2017 10:39:16 +0100 Subject: [PATCH 4/7] Update CHANGES file --- CHANGES | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) diff --git a/CHANGES b/CHANGES index e59ea28e..9f63cbec 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,90 @@ +CHANGES FROM 2.3 to 2.4 XXXX April 2017 + +Incompatible Changes +==================== + +* Key tables have undergone some changes, in particular the following tables + have been removed: + + vi-edit + vi-copy + emacs-edit + emacs-copy + + As an example: + + The vi-copy and emacs-copy mode key tables are gone, and instead copy + mode commands are bound in one of two normal key tables ("copy-mode" or + "copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So: + + bind -temacs-copy C-Up scroll-up + bind -temacs-copy -R5 WheelUpPane scroll-up + + Becomes: + + bind -Tcopy-mode C-Up send -X scroll-up + bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up + + This allows the full command parser and command set to be used - for + example, we can use the normal command prompt for searching, jumping, + and so on instead of a custom one: + + bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'" + + command-prompt also gets a -1 option to only require on key press, which + is needed for jumping. + +* Edit-mode key table has gone away -- instead, fixed key-bindings are used. +* bind-key -c flag has been removed. +* set-remain-on-exit has gone away -- can be achieved with hooks instead. +* Hooks: + + - before- hooks have gone away; + - Set number of commands now have hooks. + +* The xterm-keys option now defaults to on. + +Normal Changes +============== + +* Mouse support for double and triple clicks has been added. +* command-prompt understands -N +* BCE (Background Colour Erase) is now supported. +* copy-mode learned the copy-pipe-and-cancel command. +* send -N now works for all keys, not just in copy mode. +* All occurrences of a search string in copy mode are now highlighted; + additionally, the number of search results is also displayed. +* Copy mode now supports incremental search. +* source-file now understands glob patterns. +* Formats now have simple comparisons: + + For instance: + + #{==:a,b} + #{!=a,b} + +* Formats also learned the following new placeholders: + + - #{version} -- the tmux server version. + - #{client_termtype} -- the terminal type of the client. + - #{client_name} -- the name of a client. + - #{client_written} -- Number of bytes written to the client. + +* The configuration file now accepts %if/%endif conditional blocks; the argument + is a format string (useful with the new format comparison options). +* detach-client learned -E to exec a command to replace the client instead of + exiting. +* Add support for custom command aliases, this is an array option which + contains items of the form "alias=command". This is consulted when an + unknown command is parsed. +* break-pane learned -n +* OSC52 support has been added for clipboard inside tmux. +* Mouse "all event" mode (1003) has been added. +* Palette setting is now possible. +* Strikethrough support has been added (a recent terminfo is required) +* Grouped sessions can now be named (new -t). +* There has also been many performance improvements as part of this version. + CHANGES FROM 2.2 to 2.3 29 September 2016 Incompatible Changes From e7c2f53f2afe2369ececac976ef13193c1d9ed3a Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 20 Apr 2017 11:00:15 +0100 Subject: [PATCH 5/7] Changes to CHANGES. --- CHANGES | 103 ++++++++++++++++++++++++++------------------------------ 1 file changed, 48 insertions(+), 55 deletions(-) diff --git a/CHANGES b/CHANGES index 9f63cbec..116c9337 100644 --- a/CHANGES +++ b/CHANGES @@ -3,87 +3,80 @@ CHANGES FROM 2.3 to 2.4 XXXX April 2017 Incompatible Changes ==================== -* Key tables have undergone some changes, in particular the following tables - have been removed: +* Key tables have undergone major changes. Mode key tables are no longer + separate from the main key tables. All mode key tables have been removed, + together with the -t flag to bind-key and unbind-key. - vi-edit - vi-copy - emacs-edit - emacs-copy + The emacs-edit, vi-edit, emacs-choose and vi-choose tables have been replaced + by fixed key bindings in the command prompt and choose modes. The mode-keys + and status-keys options remain. - As an example: + The emacs-copy and vi-copy tables have been replaced by the copy-mode and + copy-mode-vi tables. Commands are sent using the -X and -N flags to + send-keys. So the following: - The vi-copy and emacs-copy mode key tables are gone, and instead copy - mode commands are bound in one of two normal key tables ("copy-mode" or - "copy-mode-vi"). Keys are bound to "send-keys -X copy-mode-command". So: + bind -temacs-copy C-Up scroll-up + bind -temacs-copy -R5 WheelUpPane scroll-up - bind -temacs-copy C-Up scroll-up - bind -temacs-copy -R5 WheelUpPane scroll-up + Becomes: - Becomes: + bind -Tcopy-mode C-Up send -X scroll-up + bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up - bind -Tcopy-mode C-Up send -X scroll-up - bind -Tcopy-mode WheelUpPane send -N5 -X scroll-up + This changes allows the full command parser (including command sequences) and + command set to be used - for example, the normal command prompt with editing + and history is now used for searching, jumping, and so on instead of a custom + one. The default C-r binding is now: - This allows the full command parser and command set to be used - for - example, we can use the normal command prompt for searching, jumping, - and so on instead of a custom one: - - bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'" - - command-prompt also gets a -1 option to only require on key press, which - is needed for jumping. - -* Edit-mode key table has gone away -- instead, fixed key-bindings are used. -* bind-key -c flag has been removed. -* set-remain-on-exit has gone away -- can be achieved with hooks instead. -* Hooks: - - - before- hooks have gone away; - - Set number of commands now have hooks. + bind -Tcopy-mode C-r command-prompt -p'search up' "send -X search-backward '%%'" + There are also some new commmands available with send -X, such as + copy-pipe-and-cancel. +* set-remain-on-exit has gone -- can be achieved with hooks instead. +* Hooks: before hooks have been removed and only a selection of commands now + have after hooks (they are no longer automatic). Additional hooks have been + added. * The xterm-keys option now defaults to on. Normal Changes ============== -* Mouse support for double and triple clicks has been added. -* command-prompt understands -N +* Support for mouse double and triple clicks. * BCE (Background Colour Erase) is now supported. -* copy-mode learned the copy-pipe-and-cancel command. -* send -N now works for all keys, not just in copy mode. * All occurrences of a search string in copy mode are now highlighted; - additionally, the number of search results is also displayed. -* Copy mode now supports incremental search. + additionally, the number of search results is displayed. The highlighting + updates interactively with the default emacs key bindings (incremental + search). * source-file now understands glob patterns. * Formats now have simple comparisons: - For instance: + #{==:a,b} + #{!=a,b} - #{==:a,b} - #{!=a,b} +* There are the following new formats: -* Formats also learned the following new placeholders: + - #{version} -- the tmux server version; + - #{client_termtype} -- the terminal type of the client; + - #{client_name} -- the name of a client; + - #{client_written} -- the number of bytes written to the client. - - #{version} -- the tmux server version. - - #{client_termtype} -- the terminal type of the client. - - #{client_name} -- the name of a client. - - #{client_written} -- Number of bytes written to the client. - -* The configuration file now accepts %if/%endif conditional blocks; the argument - is a format string (useful with the new format comparison options). -* detach-client learned -E to exec a command to replace the client instead of +* The configuration file now accepts %if/%endif conditional blocks which are + processed when it is parsed; the argument is a format string (useful with the + new format comparison options). +* detach-client now has -E to execute a command replacing the client instead of exiting. * Add support for custom command aliases, this is an array option which contains items of the form "alias=command". This is consulted when an unknown command is parsed. -* break-pane learned -n -* OSC52 support has been added for clipboard inside tmux. -* Mouse "all event" mode (1003) has been added. -* Palette setting is now possible. -* Strikethrough support has been added (a recent terminfo is required) +* break-pane now has -n to specify the new window name. +* OSC 52 support has been added for programs inside tmux to set a tmux buffer. +* The mouse "all event" mode (1003) is now supported. +* Palette setting is now possible (OSC 4 and 104). +* Strikethrough support (a recent terminfo is required). * Grouped sessions can now be named (new -t). -* There has also been many performance improvements as part of this version. +* terminal-overrides and update-environment are now array options (the previous + set -ag syntax should work without change). +* There have been substantial performance improvements. CHANGES FROM 2.2 to 2.3 29 September 2016 From 990218739af845593971597d4e1b8210d819eef4 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 20 Apr 2017 11:03:23 +0100 Subject: [PATCH 6/7] Missing :. --- CHANGES | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 116c9337..5193c0e8 100644 --- a/CHANGES +++ b/CHANGES @@ -51,7 +51,7 @@ Normal Changes * Formats now have simple comparisons: #{==:a,b} - #{!=a,b} + #{!=:a,b} * There are the following new formats: From f21cb71fbe79c8949edc3c1d300aa783382a0d77 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 20 Apr 2017 11:52:16 +0100 Subject: [PATCH 7/7] Enter date of release. --- CHANGES | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 5193c0e8..f73f2ea9 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,4 @@ -CHANGES FROM 2.3 to 2.4 XXXX April 2017 +CHANGES FROM 2.3 to 2.4 20 April 2017 Incompatible Changes ====================