Hello community, here is the log from the commit of package i3 for openSUSE:Factory checked in at 2019-05-02 19:18:57 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/i3 (Old) and /work/SRC/openSUSE:Factory/.i3.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "i3" Thu May 2 19:18:57 2019 rev:33 rq:699734 version:4.16.1 Changes: -------- --- /work/SRC/openSUSE:Factory/i3/i3.changes 2018-11-08 09:50:24.888963572 +0100 +++ /work/SRC/openSUSE:Factory/.i3.new.5148/i3.changes 2019-05-02 19:19:04.765608291 +0200 @@ -1,0 +2,14 @@ +Fri Mar 1 18:09:10 UTC 2019 - Arun Persaud <arun@gmx.de> + +- update to version 4.16.1: + * Truncate wm_name utf8 strings to first zero byte (fixes window + title corruption) + * Apply title_align to non-leaf containers Additionally, marks + will now display for non-leaf containers. + * attach_to_workspace: set new parent before tree_render (fixes a + heap-use-after-free) + * Use ipc queue for all messages (fixes an i3bar crash) + * Fix crash with popups when fullscreen is non-leaf + * Fix: render_con shows floating containers on wrong workspace + +------------------------------------------------------------------- Old: ---- i3-4.16.tar.bz2 i3-4.16.tar.bz2.asc New: ---- i3-4.16.1.tar.bz2 i3-4.16.1.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ i3.spec ++++++ --- /var/tmp/diff_new_pack.I7E3ax/_old 2019-05-02 19:19:06.453611262 +0200 +++ /var/tmp/diff_new_pack.I7E3ax/_new 2019-05-02 19:19:06.453611262 +0200 @@ -1,7 +1,7 @@ # # spec file for package i3 # -# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: i3 -Version: 4.16 +Version: 4.16.1 Release: 0 Summary: Tiling window manager License: BSD-3-Clause ++++++ i3-4.16.tar.bz2 -> i3-4.16.1.tar.bz2 ++++++ ++++ 4175 lines of diff (skipped) ++++ retrying with extended exclude list diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/I3_VERSION new/i3-4.16.1/I3_VERSION --- old/i3-4.16/I3_VERSION 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/I3_VERSION 2019-01-27 16:45:19.000000000 +0100 @@ -1 +1 @@ -4.16 (2018-11-04) +4.16.1 (2019-01-27) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/Makefile.am new/i3-4.16.1/Makefile.am --- old/i3-4.16/Makefile.am 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/Makefile.am 2019-01-27 16:45:19.000000000 +0100 @@ -118,7 +118,7 @@ I3_VERSION \ LICENSE \ PACKAGE-MAINTAINER \ - RELEASE-NOTES-4.16 \ + RELEASE-NOTES-4.16.1 \ generate-command-parser.pl \ parser-specs/commands.spec \ parser-specs/config.spec \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/RELEASE-NOTES-4.16 new/i3-4.16.1/RELEASE-NOTES-4.16 --- old/i3-4.16/RELEASE-NOTES-4.16 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/RELEASE-NOTES-4.16 1970-01-01 01:00:00.000000000 +0100 @@ -1,145 +0,0 @@ - - ┌────────────────────────────┐ - │ Release notes for i3 v4.16 │ - └────────────────────────────┘ - -This is i3 v4.16. This version is considered stable. All users of i3 are -strongly encouraged to upgrade. - -This release contains a number of assorted fixes and improvements across pretty -much all individual components of i3. - - ┌────────────────────────────┐ - │ Changes in i3 v4.16 │ - └────────────────────────────┘ - - • build: add conditionals for building docs/mans - • docs/i3bar-protocol: mention skipping blocks with empty full_text - • docs/ipc: add window_properties to tree node - • docs/layout-saving: clarify JSON non-compliance - • docs/userguide: clarify X resource value format - • docs/userguide: fix move_to_outputs link - • docs/userguide: link workspace_auto_back_and_forth from workspace - command - • docs/userguide: mention known issues for assign - • docs/userguide: use anchor for list_of_commands - • docs/userguide: add the default keybinding for focus parent - • man/*: fix title markers (for asciidoctor) - • man/i3-msg.man: add get_config and send_tick - • ipc: kill misbehaving subscribed clients instead of hanging - • ipc: introduce the sync IPC command for synchronization with i3bar - • ipc: scratchpad show now returns correct success - • ipc: send_tick now sets the already-documented “first” field - • i3bar-protocol: add modifiers to events sent by i3bar - • dump-asy: use Pod::Usage for --help and perldoc - • dump-asy: introduce -gv flag to disable opening ghostview - • dump-asy: introduce -save flag to store the rendered tree in a file - • dump-asy: add marks - • dump-asy: include floating containers - • i3bar: add --verbose flag - • i3bar: make modifier accept combinations (like floating_modifier) - • i3-config-wizard: add --modifier flag to allow for headless config - • i3-config-wizard: support startup notifications - • i3-msg: only print input + error position if they are set - • i3-msg: check replies also in quiet mode (-q) - • i3-msg: add support for the SUBSCRIBE message type - • i3-nagbar: support startup notifications - • i3-nagbar: add option for button that runs commands without a terminal - • i3-save-tree: exclude unsupported transient_for property - • i3-sensible-terminal: add alacritty - • i3-sensible-terminal: add hyper - • introduce strip_workspace_name alongside strip_workspace_numbers - • introduce title_align config directive - • “border toggle” now accepts an optional pixel argument - • “resize set” now interprets 0 as “no change” - • “resize set” now accepts the “width” and “height” keywords - • “resize” with pixel values now works for tiling containers - • the optional “absolute” method is now silently ignored in “move position” - commands, where it did not cause a visible difference anyway - • the _NET_WM_STATE_FOCUSED atom is now supported, resulting in e.g. - GTK applications displaying the correct window decoration - • moving fullscreen containers now moves them across outputs - • floating windows can now be used with a geometry of e.g. +1+1, i.e. - their top-left corner can be outside any output as long as the window - is contained partially by one - • prefer floating fullscreen containers when switching focus - • moving containers to an active workspace no longer changes focus - • the rename workspace command no longer confuses directions (e.g. “left”) - with output names - • prefer $XDG_CONFIG_HOME/i3/config over ~/.i3/config - • allow multiple assignments of workspaces to output - • respect maximum size in WM_NORMAL_HINTS - • reject requests for WM_STATE_ICONIC, which avoids e.g. wine - applications being stuck in paused state - • a number of code refactorings and cleanups, some of which tool-assisted - - ┌────────────────────────────┐ - │ Bugfixes │ - └────────────────────────────┘ - - • build: fix static linking - • i3bar: fix various memory leaks - • i3bar: fix crash when no status_command is provided - • i3bar: fix chopping the first character on the very left when using the - full width of the output - • i3bar: fix relative_x and width properties of click events - • i3bar: fix the tray disappearing in some cases when using "tray_output" - • fix various memory leaks and memory correctness issues - • refocus focused window on FOCUS_IN events for the root window. This - fixes incorrect behavior with steam and some tk apps - • fix focus bugs when moving unfocused containers - • fix incorrect urgent window state edge case - • moving an unfocused container from inside a split container to another - workspace doesn’t focus siblings - • toggling and killing floating windows now maintains focus order - • don’t incorrectly focus siblings when scrolling on window decorations - • fix crash when moving a container to a marked workspace - • fix swap when first is behind a fullscreen window - • fix crash when renaming an existing workspace to a name assigned to the - focused output - • reframe swallowed windows if depth doesn’t match - • use detectable autorepeat so that --release bindings are run only when - the key is actually released (and not when it is repeated) - • fix border artifacts when moving windows - • correctly handle bindings for the same mod key with and without --release - • reset B_UPON_KEYRELEASE_IGNORE_MODS bindings when switching modes - • fix height offset calculation in pango text drawing - • fix detection of libiconv on OpenBSD - • free workspace assignments on reload - • fix mouse position at startup with multiple outputs - • no longer allow dragging global fullscreen floating containers - • fix rendering artifacts with global fullscreen containers - • fix disabling floating for scratchpad windows - • fix a crash when renaming an unfocused empty workspace matching an - assignment - • ensure containers have a size of at least 1px after resize - • permit invalid UTF-8 in layout JSON files (e.g. for window titles) - • correct invalid UTF-8 characters in window and container titles - • fix a crash when moving to a child of a floating container - • fix a crash when matching __focused__ with no window open - • fix no_focus when only using floating windows - • fix max_aspect calculation - • moving an unfocused container from another output now maintains - the correct focus order - • don’t change focus order when swapping containers - • correctly update _NET_CURRENT_DESKTOP when moving containers between outputs - using the directional move command - • don’t produce move events after attempting to directionally move a container - towards a direction it can’t go - • fix sticky focus when switching to workspace on different output - - - ┌────────────────────────────┐ - │ Thanks! │ - └────────────────────────────┘ - -Thanks for testing, bugfixes, discussions and everything I forgot go out to: - - Adrian Cybulski, Aestek, Alan Barr, Andriy Yablonskyy, Cassandra Fox, - Christian Duerr, Dan Elkouby, downzer0, Elouan Martinet, Felix Buehler, - Gravemind, Harry Lawrence, Hritik Vijay, hwangcc23, Ingo Bürk, Joona, Klorax, - lasers, Łukasz Adamczak, Martin, Michael Stapelberg, Oliver Graff, - Orestis Floros, Soumya, Takashi Iwai, Thomas Fischer, Todd Walton, Tony - Crisci, Uli Schlachter, Vivien Didelot - --- Michael Stapelberg, 2018-11-04 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/RELEASE-NOTES-4.16.1 new/i3-4.16.1/RELEASE-NOTES-4.16.1 --- old/i3-4.16/RELEASE-NOTES-4.16.1 1970-01-01 01:00:00.000000000 +0100 +++ new/i3-4.16.1/RELEASE-NOTES-4.16.1 2019-01-27 16:45:19.000000000 +0100 @@ -0,0 +1,35 @@ + + ┌──────────────────────────────┐ + │ Release notes for i3 v4.16.1 │ + └──────────────────────────────┘ + +This is i3 v4.16.1. This version is considered stable. All users of i3 are +strongly encouraged to upgrade. + +This is a bugfix release for v4.16. + + ┌────────────────────────────┐ + │ Bugfixes │ + └────────────────────────────┘ + + • Truncate wm_name utf8 strings to first zero byte + (fixes window title corruption) + • Apply title_align to non-leaf containers + Additionally, marks will now display for non-leaf containers. + • attach_to_workspace: set new parent before tree_render + (fixes a heap-use-after-free) + • Use ipc queue for all messages + (fixes an i3bar crash) + • Fix crash with popups when fullscreen is non-leaf + • Fix: render_con shows floating containers on wrong workspace + + + ┌────────────────────────────┐ + │ Thanks! │ + └────────────────────────────┘ + +Thanks for testing, bugfixes, discussions and everything I forgot go out to: + + Orestis Floros + +-- Michael Stapelberg, 2019-01-27 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/ar-lib new/i3-4.16.1/ar-lib --- old/i3-4.16/ar-lib 2018-11-04 14:47:41.000000000 +0100 +++ new/i3-4.16.1/ar-lib 2019-01-27 16:45:26.000000000 +0100 @@ -4,7 +4,7 @@ me=ar-lib scriptversion=2012-03-01.08; # UTC -# Copyright (C) 2010-2017 Free Software Foundation, Inc. +# Copyright (C) 2010-2018 Free Software Foundation, Inc. # Written by Peter Rosin <peda@lysator.liu.se>. # # This program is free software; you can redistribute it and/or modify @@ -18,7 +18,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/compile new/i3-4.16.1/compile --- old/i3-4.16/compile 2018-11-04 14:47:41.000000000 +0100 +++ new/i3-4.16.1/compile 2019-01-27 16:45:26.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Wrapper for compilers which do not understand '-c -o'. -scriptversion=2012-10-14.11; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2014 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -255,7 +255,8 @@ echo "compile $scriptversion" exit $? ;; - cl | *[/\\]cl | cl.exe | *[/\\]cl.exe ) + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) func_cl_wrapper "$@" # Doesn't return... ;; esac @@ -339,9 +340,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/configure.ac new/i3-4.16.1/configure.ac --- old/i3-4.16/configure.ac 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/configure.ac 2019-01-27 16:45:19.000000000 +0100 @@ -2,7 +2,7 @@ # Run autoreconf -fi to generate a configure script from this file. AC_PREREQ([2.69]) -AC_INIT([i3], [4.16], [https://github.com/i3/i3/issues]) +AC_INIT([i3], [4.16.1], [https://github.com/i3/i3/issues]) # For AX_EXTEND_SRCDIR AX_ENABLE_BUILDDIR AM_INIT_AUTOMAKE([foreign subdir-objects -Wall no-dist-gzip dist-bzip2]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/debugging.html new/i3-4.16.1/docs/debugging.html --- old/i3-4.16/docs/debugging.html 2018-11-04 14:47:44.000000000 +0100 +++ new/i3-4.16.1/docs/debugging.html 2019-01-27 16:45:29.000000000 +0100 @@ -957,7 +957,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/hacking-howto.html new/i3-4.16.1/docs/hacking-howto.html --- old/i3-4.16/docs/hacking-howto.html 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/docs/hacking-howto.html 2019-01-27 16:45:29.000000000 +0100 @@ -2381,7 +2381,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/i3bar-protocol.html new/i3-4.16.1/docs/i3bar-protocol.html --- old/i3-4.16/docs/i3bar-protocol.html 2018-11-04 14:47:44.000000000 +0100 +++ new/i3-4.16.1/docs/i3bar-protocol.html 2019-01-27 16:45:29.000000000 +0100 @@ -1168,7 +1168,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/ipc.html new/i3-4.16.1/docs/ipc.html --- old/i3-4.16/docs/ipc.html 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/docs/ipc.html 2019-01-27 16:45:29.000000000 +0100 @@ -2596,7 +2596,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/layout-saving.html new/i3-4.16.1/docs/layout-saving.html --- old/i3-4.16/docs/layout-saving.html 2018-11-04 14:47:44.000000000 +0100 +++ new/i3-4.16.1/docs/layout-saving.html 2019-01-27 16:45:29.000000000 +0100 @@ -1039,7 +1039,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/multi-monitor.html new/i3-4.16.1/docs/multi-monitor.html --- old/i3-4.16/docs/multi-monitor.html 2018-11-04 14:47:44.000000000 +0100 +++ new/i3-4.16.1/docs/multi-monitor.html 2019-01-27 16:45:29.000000000 +0100 @@ -816,7 +816,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/testsuite.html new/i3-4.16.1/docs/testsuite.html --- old/i3-4.16/docs/testsuite.html 2018-11-04 14:47:44.000000000 +0100 +++ new/i3-4.16.1/docs/testsuite.html 2019-01-27 16:45:29.000000000 +0100 @@ -1434,7 +1434,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/userguide.html new/i3-4.16.1/docs/userguide.html --- old/i3-4.16/docs/userguide.html 2018-11-04 14:47:46.000000000 +0100 +++ new/i3-4.16.1/docs/userguide.html 2019-01-27 16:45:30.000000000 +0100 @@ -3840,7 +3840,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/docs/wsbar.html new/i3-4.16.1/docs/wsbar.html --- old/i3-4.16/docs/wsbar.html 2018-11-04 14:47:44.000000000 +0100 +++ new/i3-4.16.1/docs/wsbar.html 2019-01-27 16:45:29.000000000 +0100 @@ -844,7 +844,7 @@ <div id="footer"> <div id="footer-text"> Last updated - 2018-11-04 14:47:34 CET + 2019-01-27 16:45:19 CET </div> </div> </body> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/include/ipc.h new/i3-4.16.1/include/ipc.h --- old/i3-4.16/include/ipc.h 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/include/ipc.h 2019-01-27 16:45:19.000000000 +0100 @@ -35,7 +35,8 @@ * event has been sent by i3. */ bool first_tick_sent; - struct ev_io *callback; + struct ev_io *read_callback; + struct ev_io *write_callback; struct ev_timer *timeout; uint8_t *buffer; size_t buffer_size; @@ -54,12 +55,12 @@ * message_type is the type of the message as the sender specified it. * */ -typedef void (*handler_t)(int, uint8_t *, int, uint32_t, uint32_t); +typedef void (*handler_t)(ipc_client *, uint8_t *, int, uint32_t, uint32_t); /* Macro to declare a callback */ -#define IPC_HANDLER(name) \ - static void handle_##name(int fd, uint8_t *message, \ - int size, uint32_t message_size, \ +#define IPC_HANDLER(name) \ + static void handle_##name(ipc_client *client, uint8_t *message, \ + int size, uint32_t message_size, \ uint32_t message_type) /** diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-config-wizard.1 new/i3-4.16.1/man/i3-config-wizard.1 --- old/i3-4.16/man/i3-config-wizard.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-config-wizard.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-config-wizard .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-CONFIG\-WIZARD" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-CONFIG\-WIZARD" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-dmenu-desktop.1 new/i3-4.16.1/man/i3-dmenu-desktop.1 --- old/i3-4.16/man/i3-dmenu-desktop.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-dmenu-desktop.1 2019-01-27 16:45:29.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== @@ -54,20 +54,24 @@ .\" Avoid warning from groff about undefined register 'F'. .de IX .. -.if !\nF .nr F 0 -.if \nF>0 \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} . \} .\} +.rr rF .\" ======================================================================== .\" .IX Title "I3-DMENU-DESKTOP 1" -.TH I3-DMENU-DESKTOP 1 "2018-11-04" "perl v5.26.1" "User Contributed Perl Documentation" +.TH I3-DMENU-DESKTOP 1 "2019-01-27" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l @@ -84,9 +88,9 @@ .SH "DESCRIPTION" .IX Header "DESCRIPTION" i3\-dmenu\-desktop is a script which extracts the (localized) name from -application .desktop files, offers the user a choice via \fIdmenu\fR\|(1) and then +application .desktop files, offers the user a choice via \fBdmenu\fR\|(1) and then starts the chosen application via i3 (for startup notification support). -The advantage of using .desktop files instead of \fIdmenu_run\fR\|(1) is that dmenu_run +The advantage of using .desktop files instead of \fBdmenu_run\fR\|(1) is that dmenu_run offers \fBall\fR binaries in your \f(CW$PATH\fR, including non-interactive utilities like \&\*(L"sed\*(R". Also, .desktop files contain a proper name, information about whether the application runs in a terminal and whether it supports startup @@ -108,7 +112,7 @@ want to launch \*(L"\s-1GNU\s0 Emacs 24\*(R" with the patch /tmp/foobar.txt, you would type \&\*(L"emacs\*(R", press \s-1TAB,\s0 type \*(L" /tmp/foobar.txt\*(R" and press \s-1ENTER.\s0 .PP -\&.desktop files with Terminal=true are started using \fIi3\-sensible\-terminal\fR\|(1). +\&.desktop files with Terminal=true are started using \fBi3\-sensible\-terminal\fR\|(1). .PP \&.desktop files with NoDisplay=true or Hidden=true are skipped. .PP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-dump-log.1 new/i3-4.16.1/man/i3-dump-log.1 --- old/i3-4.16/man/i3-dump-log.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-dump-log.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-dump-log .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-DUMP\-LOG" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-DUMP\-LOG" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-input.1 new/i3-4.16.1/man/i3-input.1 --- old/i3-4.16/man/i3-input.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-input.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-input .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-INPUT" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-INPUT" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-migrate-config-to-v4.1 new/i3-4.16.1/man/i3-migrate-config-to-v4.1 --- old/i3-4.16/man/i3-migrate-config-to-v4.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-migrate-config-to-v4.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-migrate-config-to-v4 .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-MIGRATE\-CONFIG\" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-MIGRATE\-CONFIG\" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-msg.1 new/i3-4.16.1/man/i3-msg.1 --- old/i3-4.16/man/i3-msg.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-msg.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-msg .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-MSG" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-MSG" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-nagbar.1 new/i3-4.16.1/man/i3-nagbar.1 --- old/i3-4.16/man/i3-nagbar.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-nagbar.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-nagbar .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-NAGBAR" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-NAGBAR" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-save-tree.1 new/i3-4.16.1/man/i3-save-tree.1 --- old/i3-4.16/man/i3-save-tree.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-save-tree.1 2019-01-27 16:45:29.000000000 +0100 @@ -1,4 +1,4 @@ -.\" Automatically generated by Pod::Man 4.09 (Pod::Simple 3.35) +.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== @@ -54,20 +54,24 @@ .\" Avoid warning from groff about undefined register 'F'. .de IX .. -.if !\nF .nr F 0 -.if \nF>0 \{\ -. de IX -. tm Index:\\$1\t\\n%\t"\\$2" +.nr rF 0 +.if \n(.g .if rF .nr rF 1 +.if (\n(rF:(\n(.g==0)) \{\ +. if \nF \{\ +. de IX +. tm Index:\\$1\t\\n%\t"\\$2" .. -. if !\nF==2 \{\ -. nr % 0 -. nr F 2 +. if !\nF==2 \{\ +. nr % 0 +. nr F 2 +. \} . \} .\} +.rr rF .\" ======================================================================== .\" .IX Title "I3-SAVE-TREE 1" -.TH I3-SAVE-TREE 1 "2018-11-04" "perl v5.26.1" "User Contributed Perl Documentation" +.TH I3-SAVE-TREE 1 "2019-01-27" "perl v5.28.1" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-sensible-editor.1 new/i3-4.16.1/man/i3-sensible-editor.1 --- old/i3-4.16/man/i3-sensible-editor.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-sensible-editor.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-sensible-editor .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-SENSIBLE\-EDITOR" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-SENSIBLE\-EDITOR" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-sensible-pager.1 new/i3-4.16.1/man/i3-sensible-pager.1 --- old/i3-4.16/man/i3-sensible-pager.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-sensible-pager.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-sensible-pager .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-SENSIBLE\-PAGER" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-SENSIBLE\-PAGER" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3-sensible-terminal.1 new/i3-4.16.1/man/i3-sensible-terminal.1 --- old/i3-4.16/man/i3-sensible-terminal.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3-sensible-terminal.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3-sensible-terminal .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3\-SENSIBLE\-TERMIN" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3\-SENSIBLE\-TERMIN" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3.1 new/i3-4.16.1/man/i3.1 --- old/i3-4.16/man/i3.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3 .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/man/i3bar.1 new/i3-4.16.1/man/i3bar.1 --- old/i3-4.16/man/i3bar.1 2018-11-04 14:47:45.000000000 +0100 +++ new/i3-4.16.1/man/i3bar.1 2019-01-27 16:45:30.000000000 +0100 @@ -2,12 +2,12 @@ .\" Title: i3bar .\" Author: [see the "AUTHORS" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 <http://docbook.sf.net/> -.\" Date: 11/04/2018 +.\" Date: 01/27/2019 .\" Manual: i3 Manual -.\" Source: i3 4.16 +.\" Source: i3 4.16.1 .\" Language: English .\" -.TH "I3BAR" "1" "11/04/2018" "i3 4\&.16" "i3 Manual" +.TH "I3BAR" "1" "01/27/2019" "i3 4\&.16\&.1" "i3 Manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/missing new/i3-4.16.1/missing --- old/i3-4.16/missing 2018-11-04 14:47:41.000000000 +0100 +++ new/i3-4.16.1/missing 2019-01-27 16:45:26.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2013-10-28.13; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1996-2014 Free Software Foundation, Inc. +# Copyright (C) 1996-2018 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -17,7 +17,7 @@ # GNU General Public License for more details. # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -101,9 +101,9 @@ exit $st fi -perl_URL=http://www.perl.org/ -flex_URL=http://flex.sourceforge.net/ -gnu_software_URL=http://www.gnu.org/software +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software program_details () { @@ -207,9 +207,9 @@ exit $st # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/commands.c new/i3-4.16.1/src/commands.c --- old/i3-4.16/src/commands.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/commands.c 2019-01-27 16:45:19.000000000 +0100 @@ -13,10 +13,6 @@ #include <float.h> #include <stdarg.h> -#ifdef I3_ASAN_ENABLED -#include <sanitizer/lsan_interface.h> -#endif - #include "shmlog.h" // Macros to make the YAJL API a bit easier to use. @@ -1567,12 +1563,6 @@ */ void cmd_exit(I3_CMD) { LOG("Exiting due to user command.\n"); -#ifdef I3_ASAN_ENABLED - __lsan_do_leak_check(); -#endif - ipc_shutdown(SHUTDOWN_REASON_EXIT); - unlink(config.ipc_socket_path); - xcb_disconnect(conn); exit(0); /* unreached */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/floating.c new/i3-4.16.1/src/floating.c --- old/i3-4.16/src/floating.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/floating.c 2019-01-27 16:45:19.000000000 +0100 @@ -907,8 +907,7 @@ /* Workspace change will already result in a tree_render. */ if (!reassigned) { - render_con(con, false); - x_push_node(con); + tree_render(); } return true; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/ipc.c new/i3-4.16.1/src/ipc.c --- old/i3-4.16/src/ipc.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/ipc.c 2019-01-27 16:45:19.000000000 +0100 @@ -38,46 +38,6 @@ err(-1, "Could not set O_NONBLOCK"); } -/* - * Given a message and a message type, create the corresponding header, merge it - * with the message and append it to the given client's output buffer. - * - */ -static void append_payload(ipc_client *client, uint32_t message_type, const char *payload) { - const size_t size = strlen(payload); - const i3_ipc_header_t header = { - .magic = {'i', '3', '-', 'i', 'p', 'c'}, - .size = size, - .type = message_type}; - const size_t header_size = sizeof(i3_ipc_header_t); - const size_t message_size = header_size + size; - - client->buffer = srealloc(client->buffer, client->buffer_size + message_size); - memcpy(client->buffer + client->buffer_size, ((void *)&header), header_size); - memcpy(client->buffer + client->buffer_size + header_size, payload, size); - client->buffer_size += message_size; -} - -static void free_ipc_client(ipc_client *client) { - close(client->fd); - - ev_io_stop(main_loop, client->callback); - FREE(client->callback); - if (client->timeout) { - ev_timer_stop(main_loop, client->timeout); - FREE(client->timeout); - } - - free(client->buffer); - - for (int i = 0; i < client->num_events; i++) { - free(client->events[i]); - } - free(client->events); - TAILQ_REMOVE(&all_clients, client, clients); - free(client); -} - static void ipc_client_timeout(EV_P_ ev_timer *w, int revents); static void ipc_socket_writeable_cb(EV_P_ struct ev_io *w, int revents); @@ -89,8 +49,8 @@ /* * Try to write the contents of the pending buffer to the client's subscription - * socket. Will set, reset or clear the timeout and io callbacks depending on - * the result of the write operation. + * socket. Will set, reset or clear the timeout and io write callbacks depending + * on the result of the write operation. * */ static void ipc_push_pending(ipc_client *client) { @@ -108,13 +68,13 @@ ev_timer_stop(main_loop, client->timeout); FREE(client->timeout); } - ev_io_stop(main_loop, client->callback); + ev_io_stop(main_loop, client->write_callback); return; } /* Otherwise, make sure that the io callback is enabled and create a new * timer if needed. */ - ev_io_start(main_loop, client->callback); + ev_io_start(main_loop, client->write_callback); if (!client->timeout) { struct ev_timer *timeout = scalloc(1, sizeof(struct ev_timer)); @@ -141,6 +101,54 @@ } /* + * Given a message and a message type, create the corresponding header, merge it + * with the message and append it to the given client's output buffer. Also, + * send the message if the client's buffer was empty. + * + */ +static void ipc_send_client_message(ipc_client *client, size_t size, const uint32_t message_type, const uint8_t *payload) { + const i3_ipc_header_t header = { + .magic = {'i', '3', '-', 'i', 'p', 'c'}, + .size = size, + .type = message_type}; + const size_t header_size = sizeof(i3_ipc_header_t); + const size_t message_size = header_size + size; + + const bool push_now = (client->buffer_size == 0); + client->buffer = srealloc(client->buffer, client->buffer_size + message_size); + memcpy(client->buffer + client->buffer_size, ((void *)&header), header_size); + memcpy(client->buffer + client->buffer_size + header_size, payload, size); + client->buffer_size += message_size; + + if (push_now) { + ipc_push_pending(client); + } +} + +static void free_ipc_client(ipc_client *client) { + DLOG("Disconnecting client on fd %d\n", client->fd); + close(client->fd); + + ev_io_stop(main_loop, client->read_callback); + FREE(client->read_callback); + ev_io_stop(main_loop, client->write_callback); + FREE(client->write_callback); + if (client->timeout) { + ev_timer_stop(main_loop, client->timeout); + FREE(client->timeout); + } + + free(client->buffer); + + for (int i = 0; i < client->num_events; i++) { + free(client->events[i]); + } + free(client->events); + TAILQ_REMOVE(&all_clients, client, clients); + free(client); +} + +/* * Sends the specified event to all IPC clients which are currently connected * and subscribed to this kind of event. * @@ -148,21 +156,11 @@ void ipc_send_event(const char *event, uint32_t message_type, const char *payload) { ipc_client *current; TAILQ_FOREACH(current, &all_clients, clients) { - /* see if this client is interested in this event */ - bool interested = false; for (int i = 0; i < current->num_events; i++) { - if (strcasecmp(current->events[i], event) != 0) - continue; - interested = true; - break; - } - if (!interested) - continue; - - const bool push_now = (current->buffer_size == 0); - append_payload(current, message_type, payload); - if (push_now) { - ipc_push_pending(current); + if (strcasecmp(current->events[i], event) == 0) { + ipc_send_client_message(current, strlen(payload), message_type, (uint8_t *)payload); + break; + } } } } @@ -234,8 +232,8 @@ ylength length; yajl_gen_get_buf(gen, &reply, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_COMMAND, - (const uint8_t *)reply); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_COMMAND, + (const uint8_t *)reply); yajl_gen_free(gen); } @@ -838,7 +836,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_TREE, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_TREE, payload); y(free); } @@ -902,7 +900,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_WORKSPACES, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_WORKSPACES, payload); y(free); } @@ -956,7 +954,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_OUTPUTS, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_OUTPUTS, payload); y(free); } @@ -983,7 +981,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_MARKS, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_MARKS, payload); y(free); } @@ -1016,7 +1014,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_VERSION, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_VERSION, payload); y(free); } @@ -1041,7 +1039,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_BAR_CONFIG, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_BAR_CONFIG, payload); y(free); return; } @@ -1078,7 +1076,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_BAR_CONFIG, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_BAR_CONFIG, payload); y(free); } @@ -1100,7 +1098,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_BINDING_MODES, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_BINDING_MODES, payload); y(free); } @@ -1139,21 +1137,6 @@ IPC_HANDLER(subscribe) { yajl_handle p; yajl_status stat; - ipc_client *current, *client = NULL; - - /* Search the ipc_client structure for this connection */ - TAILQ_FOREACH(current, &all_clients, clients) { - if (current->fd != fd) - continue; - - client = current; - break; - } - - if (client == NULL) { - ELOG("Could not find ipc_client data structure for fd %d\n", fd); - return; - } /* Setup the JSON parser */ static yajl_callbacks callbacks = { @@ -1170,13 +1153,13 @@ yajl_free_error(p, err); const char *reply = "{\"success\":false}"; - ipc_send_message(fd, strlen(reply), I3_IPC_REPLY_TYPE_SUBSCRIBE, (const uint8_t *)reply); + ipc_send_client_message(client, strlen(reply), I3_IPC_REPLY_TYPE_SUBSCRIBE, (const uint8_t *)reply); yajl_free(p); return; } yajl_free(p); const char *reply = "{\"success\":true}"; - ipc_send_message(fd, strlen(reply), I3_IPC_REPLY_TYPE_SUBSCRIBE, (const uint8_t *)reply); + ipc_send_client_message(client, strlen(reply), I3_IPC_REPLY_TYPE_SUBSCRIBE, (const uint8_t *)reply); if (client->first_tick_sent) { return; @@ -1195,7 +1178,7 @@ client->first_tick_sent = true; const char *payload = "{\"first\":true,\"payload\":\"\"}"; - ipc_send_message(client->fd, strlen(payload), I3_IPC_EVENT_TICK, (const uint8_t *)payload); + ipc_send_client_message(client, strlen(payload), I3_IPC_EVENT_TICK, (const uint8_t *)payload); } /* @@ -1215,7 +1198,7 @@ ylength length; y(get_buf, &payload, &length); - ipc_send_message(fd, length, I3_IPC_REPLY_TYPE_CONFIG, payload); + ipc_send_client_message(client, length, I3_IPC_REPLY_TYPE_CONFIG, payload); y(free); } @@ -1244,7 +1227,7 @@ y(free); const char *reply = "{\"success\":true}"; - ipc_send_message(fd, strlen(reply), I3_IPC_REPLY_TYPE_TICK, (const uint8_t *)reply); + ipc_send_client_message(client, strlen(reply), I3_IPC_REPLY_TYPE_TICK, (const uint8_t *)reply); DLOG("Sent tick event\n"); } @@ -1295,7 +1278,7 @@ yajl_free_error(p, err); const char *reply = "{\"success\":false}"; - ipc_send_message(fd, strlen(reply), I3_IPC_REPLY_TYPE_SYNC, (const uint8_t *)reply); + ipc_send_client_message(client, strlen(reply), I3_IPC_REPLY_TYPE_SYNC, (const uint8_t *)reply); yajl_free(p); return; } @@ -1304,7 +1287,7 @@ DLOG("received IPC sync request (rnd = %d, window = 0x%08x)\n", state.rnd, state.window); sync_respond(state.window, state.rnd); const char *reply = "{\"success\":true}"; - ipc_send_message(fd, strlen(reply), I3_IPC_REPLY_TYPE_SYNC, (const uint8_t *)reply); + ipc_send_client_message(client, strlen(reply), I3_IPC_REPLY_TYPE_SYNC, (const uint8_t *)reply); } /* The index of each callback function corresponds to the numeric @@ -1338,6 +1321,8 @@ uint32_t message_type; uint32_t message_length; uint8_t *message = NULL; + ipc_client *client = (ipc_client *)w->data; + assert(client->fd == w->fd); int ret = ipc_recv_message(w->fd, &message_type, &message_length, &message); /* EOF or other error */ @@ -1350,25 +1335,8 @@ /* If not, there was some kind of error. We don’t bother and close the * connection. Delete the client from the list of clients. */ - bool closed = false; - ipc_client *current; - TAILQ_FOREACH(current, &all_clients, clients) { - if (current->fd != w->fd) - continue; - - free_ipc_client(current); - closed = true; - break; - } - if (!closed) { - close(w->fd); - } - - ev_io_stop(EV_A_ w); - free(w); + free_ipc_client(client); FREE(message); - - DLOG("IPC: client disconnected\n"); return; } @@ -1376,7 +1344,7 @@ DLOG("Unhandled message type: %d\n", message_type); else { handler_t h = handlers[message_type]; - h(w->fd, message, 0, message_length, message_type); + h(client, message, 0, message_length, message_type); } FREE(message); @@ -1448,36 +1416,33 @@ void ipc_new_client(EV_P_ struct ev_io *w, int revents) { struct sockaddr_un peer; socklen_t len = sizeof(struct sockaddr_un); - int client; - if ((client = accept(w->fd, (struct sockaddr *)&peer, &len)) < 0) { - if (errno == EINTR) - return; - else + int fd; + if ((fd = accept(w->fd, (struct sockaddr *)&peer, &len)) < 0) { + if (errno != EINTR) { perror("accept()"); + } return; } /* Close this file descriptor on exec() */ - (void)fcntl(client, F_SETFD, FD_CLOEXEC); + (void)fcntl(fd, F_SETFD, FD_CLOEXEC); - set_nonblock(client); + set_nonblock(fd); - struct ev_io *package = scalloc(1, sizeof(struct ev_io)); - ev_io_init(package, ipc_receive_message, client, EV_READ); - ev_io_start(EV_A_ package); + ipc_client *client = scalloc(1, sizeof(ipc_client)); + client->fd = fd; - ipc_client *new = scalloc(1, sizeof(ipc_client)); + client->read_callback = scalloc(1, sizeof(struct ev_io)); + client->read_callback->data = client; + ev_io_init(client->read_callback, ipc_receive_message, fd, EV_READ); + ev_io_start(EV_A_ client->read_callback); - package = scalloc(1, sizeof(struct ev_io)); - package->data = new; - ev_io_init(package, ipc_socket_writeable_cb, client, EV_WRITE); + client->write_callback = scalloc(1, sizeof(struct ev_io)); + client->write_callback->data = client; + ev_io_init(client->write_callback, ipc_socket_writeable_cb, fd, EV_WRITE); DLOG("IPC: new client connected on fd %d\n", w->fd); - - new->fd = client; - new->callback = package; - - TAILQ_INSERT_TAIL(&all_clients, new, clients); + TAILQ_INSERT_TAIL(&all_clients, client, clients); } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/main.c new/i3-4.16.1/src/main.c --- old/i3-4.16/src/main.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/main.c 2019-01-27 16:45:19.000000000 +0100 @@ -160,13 +160,6 @@ * */ static void i3_exit(void) { -/* We need ev >= 4 for the following code. Since it is not *that* important (it - * only makes sure that there are no i3-nagbar instances left behind) we still - * support old systems with libev 3. */ -#if EV_VERSION_MAJOR >= 4 - ev_loop_destroy(main_loop); -#endif - if (*shmlogname != '\0') { fprintf(stderr, "Closing SHM log \"%s\"\n", shmlogname); fflush(stderr); @@ -174,6 +167,18 @@ } ipc_shutdown(SHUTDOWN_REASON_EXIT); unlink(config.ipc_socket_path); + xcb_disconnect(conn); + +/* We need ev >= 4 for the following code. Since it is not *that* important (it + * only makes sure that there are no i3-nagbar instances left behind) we still + * support old systems with libev 3. */ +#if EV_VERSION_MAJOR >= 4 + ev_loop_destroy(main_loop); +#endif + +#ifdef I3_ASAN_ENABLED + __lsan_do_leak_check(); +#endif } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/move.c new/i3-4.16.1/src/move.c --- old/i3-4.16/src/move.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/move.c 2019-01-27 16:45:19.000000000 +0100 @@ -178,9 +178,7 @@ */ static void attach_to_workspace(Con *con, Con *ws, direction_t direction) { con_detach(con); - con_fix_percent(con->parent); - CALL(con->parent, on_remove_child); - + Con *old_parent = con->parent; con->parent = ws; if (direction == D_RIGHT || direction == D_DOWN) { @@ -195,6 +193,9 @@ * does not make sense anyways. */ con->percent = 0.0; con_fix_percent(ws); + + con_fix_percent(old_parent); + CALL(old_parent, on_remove_child); } /* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/render.c new/i3-4.16.1/src/render.c --- old/i3-4.16/src/render.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/render.c 2019-01-27 16:45:19.000000000 +0100 @@ -243,7 +243,7 @@ * fullscreen work correctly (ticket #564). Exception to the * above rule: smart popup_during_fullscreen handling (popups * belonging to the fullscreen app will be rendered). */ - if (config.popup_during_fullscreen != PDF_SMART) { + if (config.popup_during_fullscreen != PDF_SMART || fullscreen->window == NULL) { continue; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/window.c new/i3-4.16.1/src/window.c --- old/i3-4.16/src/window.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/window.c 2019-01-27 16:45:19.000000000 +0100 @@ -74,8 +74,12 @@ } i3string_free(win->name); - win->name = i3string_from_utf8_with_length(xcb_get_property_value(prop), - xcb_get_property_value_length(prop)); + + /* Truncate the name at the first zero byte. See #3515. */ + const int len = xcb_get_property_value_length(prop); + char *name = sstrndup(xcb_get_property_value(prop), len); + win->name = i3string_from_utf8(name); + free(name); Con *con = con_by_window_id(win->id); if (con != NULL && con->title_format != NULL) { @@ -119,8 +123,10 @@ } i3string_free(win->name); - win->name = i3string_from_utf8_with_length(xcb_get_property_value(prop), - xcb_get_property_value_length(prop)); + const int len = xcb_get_property_value_length(prop); + char *name = sstrndup(xcb_get_property_value(prop), len); + win->name = i3string_from_utf8(name); + free(name); Con *con = con_by_window_id(win->id); if (con != NULL && con->title_format != NULL) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/src/x.c new/i3-4.16.1/src/x.c --- old/i3-4.16/src/x.c 2018-11-04 14:47:34.000000000 +0100 +++ new/i3-4.16.1/src/x.c 2019-01-27 16:45:19.000000000 +0100 @@ -579,31 +579,6 @@ /* 6: draw the title */ int text_offset_y = (con->deco_rect.height - config.font.height) / 2; - struct Window *win = con->window; - if (win == NULL) { - i3String *title; - if (con->title_format == NULL) { - char *_title; - char *tree = con_get_tree_representation(con); - sasprintf(&_title, "i3: %s", tree); - free(tree); - - title = i3string_from_utf8(_title); - FREE(_title); - } else { - title = con_parse_title_format(con); - } - - draw_util_text(title, &(parent->frame_buffer), - p->color->text, p->color->background, - con->deco_rect.x + logical_px(2), - con->deco_rect.y + text_offset_y, - con->deco_rect.width - 2 * logical_px(2)); - I3STRING_FREE(title); - - goto after_title; - } - const int title_padding = logical_px(2); const int deco_width = (int)con->deco_rect.width; int mark_width = 0; @@ -643,7 +618,23 @@ FREE(formatted_mark); } - i3String *title = con->title_format == NULL ? win->name : con_parse_title_format(con); + i3String *title = NULL; + struct Window *win = con->window; + if (win == NULL) { + if (con->title_format == NULL) { + char *_title; + char *tree = con_get_tree_representation(con); + sasprintf(&_title, "i3: %s", tree); + free(tree); + + title = i3string_from_utf8(_title); + FREE(_title); + } else { + title = con_parse_title_format(con); + } + } else { + title = con->title_format == NULL ? win->name : con_parse_title_format(con); + } if (title == NULL) { goto copy_pixmaps; } @@ -676,11 +667,10 @@ con->deco_rect.y + text_offset_y, deco_width - mark_width - 2 * title_padding); - if (con->title_format != NULL) { + if (win == NULL || con->title_format != NULL) { I3STRING_FREE(title); } -after_title: x_draw_decoration_after_title(con, p); copy_pixmaps: draw_util_copy_surface(&(con->frame_buffer), &(con->frame), 0, 0, 0, 0, con->rect.width, con->rect.height); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/test-driver new/i3-4.16.1/test-driver --- old/i3-4.16/test-driver 2018-11-04 14:47:41.000000000 +0100 +++ new/i3-4.16.1/test-driver 2019-01-27 16:45:26.000000000 +0100 @@ -1,9 +1,9 @@ #! /bin/sh # test-driver - basic testsuite driver script. -scriptversion=2013-07-13.22; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 2011-2014 Free Software Foundation, Inc. +# Copyright (C) 2011-2018 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -16,7 +16,7 @@ # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. +# along with this program. If not, see <https://www.gnu.org/licenses/>. # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a @@ -140,9 +140,9 @@ # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" +# time-stamp-time-zone: "UTC0" # time-stamp-end: "; # UTC" # End: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' --exclude Makefile.in --exclude configure --exclude config.guess --exclude '*.pot' --exclude mkinstalldirs --exclude aclocal.m4 --exclude config.sub --exclude depcomp --exclude install-sh --exclude ltmain.sh old/i3-4.16/testcases/t/303-regress-move-floating.t new/i3-4.16.1/testcases/t/303-regress-move-floating.t --- old/i3-4.16/testcases/t/303-regress-move-floating.t 1970-01-01 01:00:00.000000000 +0100 +++ new/i3-4.16.1/testcases/t/303-regress-move-floating.t 2019-01-27 16:45:19.000000000 +0100 @@ -0,0 +1,33 @@ +#!perl +# vim:ts=4:sw=4:expandtab +# +# Please read the following documents before working on tests: +# • https://build.i3wm.org/docs/testsuite.html +# (or docs/testsuite) +# +# • https://build.i3wm.org/docs/lib-i3test.html +# (alternatively: perldoc ./testcases/lib/i3test.pm) +# +# • https://build.i3wm.org/docs/ipc.html +# (or docs/ipc) +# +# • http://onyxneon.com/books/modern_perl/modern_perl_a4.pdf +# (unless you are already familiar with Perl) +# +# Regression: moving a container which is the only child of the only child of a +# floating container crashes i3. +# Ticket: #3556 +# Bug still in: 4.16-61-g376833db4 +use i3test; + +my $ws = fresh_workspace; +open_window; +open_window; +cmd 'split v, focus parent, floating toggle, focus child, move right'; +does_i3_live; + +$ws = get_ws($ws); +is(scalar @{$ws->{floating_nodes}}, 0, 'No floating nodes in workspace'); +is(scalar @{$ws->{nodes}}, 2, 'Two tiling nodes in workspace'); + +done_testing;