X-Git-Url: https://ruderich.org/simon/gitweb/?p=fcscs%2Ffcscs.git;a=blobdiff_plain;f=bin%2Ffcscs;h=b19ae6b8cc1a7e4c235de6fffb6c547292ce8e95;hp=97c4294ac454150eb95f12cda7388b351740e5b7;hb=046b51052cc391daa82a4b7b5e573c0dde085ef7;hpb=1b42f4243054896a32ea7cd78594f9418995cd93 diff --git a/bin/fcscs b/bin/fcscs index 97c4294..b19ae6b 100755 --- a/bin/fcscs +++ b/bin/fcscs @@ -323,6 +323,39 @@ package Screen { return; } + + sub prompt { + my ($self, %settings) = @_; + + foreach (keys %settings) { + die if not exists $self->{prompt}{$_}; + $self->{prompt}{$_} = $settings{$_}; + } + return; + } + + + sub debug { + my ($self, $module, @args) = @_; + + return if not $self->{debug}; + + state $fh; # only open the file once per run + if (not defined $fh) { + # Ignore errors if the directory doesn't exist. + if (not open $fh, '>', "$ENV{HOME}/.config/fcscs/log") { + $fh = undef; # a failed open still writes a value to $fh + return; + } + $fh->autoflush(1); + } + + foreach (@args) { + $_ = $self->encode($_); + } + say $fh "$module: @args" or die $!; + return; + } sub die { my ($self, @args) = @_; @@ -355,38 +388,6 @@ package Screen { $self->deinit; exit 1; } - sub debug { - my ($self, $module, @args) = @_; - - return if not $self->{debug}; - - state $fh; # only open the file once per run - if (not defined $fh) { - # Ignore errors if the directory doesn't exist. - if (not open $fh, '>', "$ENV{HOME}/.config/fcscs/log") { - $fh = undef; # a failed open still writes a value to $fh - return; - } - $fh->autoflush(1); - } - - foreach (@args) { - $_ = $self->encode($_); - } - say $fh "$module: @args" or CORE::die $!; - return; - } - - - sub prompt { - my ($self, %settings) = @_; - - foreach (keys %settings) { - CORE::die if not exists $self->{prompt}{$_}; - $self->{prompt}{$_} = $settings{$_}; - } - return; - } # Wrapper for Curses. sub width { return $Curses::COLS; } @@ -505,7 +506,7 @@ sub run_in_background { # Necessary for GNU screen or it'll keep the window open until an # external command has run. - require File::Spec; + require File::Spec; # load here to speedup startup my $devnull = File::Spec->devnull(); open STDIN, '<', $devnull or die $!; open STDOUT, '>', $devnull or die $!; @@ -589,7 +590,7 @@ sub select_match { $number = 1; } - $screen->draw_matches($config, $matches, []); # remove matches + $screen->draw_matches($config, $matches, []); # clear matches foreach (@{$matches}) { return { match => $_ } if $_->{id} == $number; @@ -889,7 +890,7 @@ sub handler_yank { $screen->debug('handler_yank', 'started'); - require File::Temp; + require File::Temp; # load here to speedup startup # Use a temporary file to prevent leaking the yanked data to other users # with the command line, e.g. ps aux or top. @@ -944,7 +945,7 @@ sub handler_paste { $screen->debug('handler_paste', 'started'); - require Time::HiRes; + require Time::HiRes; # load here to speedup startup my @cmd; if ($config->{setting}{multiplexer} eq 'screen') {