]> ruderich.org/simon Gitweb - fcscs/fcscs.git/blobdiff - bin/fcscs
Update copyright years
[fcscs/fcscs.git] / bin / fcscs
index e0c8cb1a05d42eb6e38a678311972626c6b1c086..fbfaa99a6cddc713617f1ccae2c81dadbce2e48f 100755 (executable)
--- a/bin/fcscs
+++ b/bin/fcscs
@@ -2,7 +2,7 @@
 
 # fcscs - fast curses screen content select
 
-# Copyright (C) 2013-2016  Simon Ruderich
+# Copyright (C) 2013-2017  Simon Ruderich
 #
 # 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
@@ -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;
@@ -663,7 +664,7 @@ sub extend_match {
         } elsif ($char eq '$') { # select to end of line
             extend_match_regex_right($line, $match, qr/.+/);
 
-        # Allow mode changes if not overwritten by local mappings.
+        # Allow mode changes if not overwritten by above mappings.
         } elsif (defined $config->{mapping}{mode}{$char}) {
             $screen->draw_matches($config, [$match_old], []); # clear match
             return { key => $char };
@@ -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') {
@@ -987,8 +988,9 @@ sub handler_url {
 
 =head1 CONFIGURATION
 
-fcscs is configured through F<~/.fcscsrc> or F<~/.config/fcscs/fcscsrc> which
-is a normal Perl script with all of Perl's usual features.
+fcscs is configured through F<~/.fcscsrc> (preferred) or
+F<~/.config/fcscs/fcscsrc> which is a normal Perl script with all of Perl's
+usual features (only loaded if not writable by others).
 
 All configuration values are stored in the hash C<%config>. All manually
 defined keys overwrite the default settings.
@@ -1008,8 +1010,8 @@ settings see below):
     # Draw numbers in bold yellow.
     $config{attribute}{match_id} = color_pair(COLOR_YELLOW, -1)
                                  | A_BOLD;
-    # Disable Vim-like 'smartcase'ignore case until an upper character is
-    # searched.
+    # Disable Vim-like 'smartcase' (ignore case until an upper character is
+    # searched) which is enabled by default.
     $config{setting}{smartcase} = 0;
 
     # Use chromium to open URLs if running under X, elinks otherwise.
@@ -1190,7 +1192,7 @@ Defaults in parentheses.
 
 =item B<paste_sleep>        sleep x us before running paste command (C<100_000>)
 
-=item B<screen_msgwait>     GNU Screen's msgwait variable, used when yanking (C<5>)
+=item B<screen_msgwait>     GNU Screen's msgwait variable, overwritten with this value when yanking (C<5>)
 
 =item B<alternative_return> additional accept key like return, set to C<\n> to disable (C<s>)
 
@@ -1615,7 +1617,7 @@ Simon Ruderich E<lt>simon@ruderich.orgE<gt>
 
 =head1 LICENSE AND COPYRIGHT
 
-Copyright (C) 2013-2016 by Simon Ruderich
+Copyright (C) 2013-2017 by Simon Ruderich
 
 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