From 4d6a76487f25f775220f1e9c639fb7feaad48a51 Mon Sep 17 00:00:00 2001 From: Petr Nyc Date: Fri, 5 Jun 2026 12:13:19 +0200 Subject: [PATCH] Fix watcher prompt detection --- bin/watcher.pl | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/bin/watcher.pl b/bin/watcher.pl index ef75545..697ccd7 100755 --- a/bin/watcher.pl +++ b/bin/watcher.pl @@ -23,7 +23,6 @@ use IO::Select; use POSIX qw(strftime mkfifo); my $SCRIPT = '/Users/jetpac/bin/watcher.pl'; -my $LINES = 20; my $COOLDOWN = $ENV{WATCHER_COOLDOWN} || 60; my $LOG_FILE = $ENV{WATCHER_LOG} || ''; my @PROMPTS = ( @@ -219,7 +218,7 @@ sub maybe_confirm { my ($sock, $pane, $last_confirm_ref, $last_signature_ref, $source) = @_; my $now = time; - my ($ok, $screen) = rendered_last_lines($sock, $pane, $LINES); + my ($ok, $screen) = rendered_visible_pane($sock, $pane); exit 0 if !$ok; return if !has_any_prompt($screen); @@ -240,21 +239,18 @@ sub maybe_confirm { } } -sub rendered_last_lines { - my ($sock, $pane, $lines) = @_; +sub rendered_visible_pane { + my ($sock, $pane) = @_; my @cmd = ( 'tmux', '-S', $sock, 'capture-pane', '-p', '-t', $pane, - '-S', '-' . ($lines * 3), ); my ($ok, $out) = run_capture(@cmd); return (0, '') if !$ok; - my @lines = split /\n/, clean_text($out); - @lines = @lines > $lines ? @lines[-$lines .. -1] : @lines; - return (1, join("\n", @lines)); + return (1, clean_text($out)); } sub start_pipe {