From ee8a70544067eb71f6046657e66e49df906191e5 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Wed, 7 Feb 2024 14:26:08 -0600 Subject: [PATCH 1/3] chore(Pane,Window): Fix .cmd() -t wrapper for integer set_option() values --- src/libtmux/pane.py | 2 +- src/libtmux/window.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libtmux/pane.py b/src/libtmux/pane.py index 907b23205..c9b5b7cc2 100644 --- a/src/libtmux/pane.py +++ b/src/libtmux/pane.py @@ -113,7 +113,7 @@ def cmd(self, cmd: str, *args: t.Any, **kwargs: t.Any) -> tmux_cmd: Specifying ``('-t', 'custom-target')`` or ``('-tcustom_target')`` in ``args`` will override using the object's ``pane_id`` as target. """ - if not any(arg.startswith("-t") for arg in args): + if not any("-t" in str(x) for x in args): args = ("-t", self.pane_id, *args) return self.server.cmd(cmd, *args, **kwargs) diff --git a/src/libtmux/window.py b/src/libtmux/window.py index 8283a0903..9a62c5fb4 100644 --- a/src/libtmux/window.py +++ b/src/libtmux/window.py @@ -139,7 +139,7 @@ def cmd(self, cmd: str, *args: t.Any, **kwargs: t.Any) -> tmux_cmd: Specifying ``('-t', 'custom-target')`` or ``('-tcustom_target')`` in ``args`` will override using the object's ``window_id`` as target. """ - if not any(arg.startswith("-t") for arg in args): + if not any("-t" in str(x) for x in args): args = ("-t", self.window_id, *args) return self.server.cmd(cmd, *args, **kwargs) From bc4bd358b18cd659d09889fc839be191882e45ae Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Tue, 6 Feb 2024 05:11:35 -0600 Subject: [PATCH 2/3] chore(Window): More resilent handling of options that return without value --- src/libtmux/window.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/libtmux/window.py b/src/libtmux/window.py index 9a62c5fb4..98401f0bd 100644 --- a/src/libtmux/window.py +++ b/src/libtmux/window.py @@ -389,7 +389,10 @@ def show_window_options(self, g: t.Optional[bool] = False) -> "WindowOptionDict" window_options: "WindowOptionDict" = {} for item in output: - key, val = shlex.split(item) + try: + key, val = shlex.split(item) + except ValueError: + logger.exception(f"Error extracting option: {item}") assert isinstance(key, str) assert isinstance(val, str) From 4d7915196fef548381361710206f22b1d74375f3 Mon Sep 17 00:00:00 2001 From: Tony Narlock Date: Thu, 8 Feb 2024 13:17:55 -0600 Subject: [PATCH 3/3] docs(CHANGES): Note improved parsing of option values --- CHANGES | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGES b/CHANGES index f040a346e..1ec47ec0d 100644 --- a/CHANGES +++ b/CHANGES @@ -14,6 +14,11 @@ $ pip install --user --upgrade --pre libtmux +### Improvement + +- pane, window commands: Impove parsing of option values that return numbers + (#520) + ### Tests - pytest: Fix `usefixture` warning (#519)