*** empty log message ***
authorroot <root>
Mon, 9 Jan 2006 04:19:36 +0000 (04:19 +0000)
committerroot <root>
Mon, 9 Jan 2006 04:19:36 +0000 (04:19 +0000)
src/perl/selection-popup

index 4d21cb9fbc39cf3e352898df17e0292fedf44355..7ad467e11215e9042ed785077bf75941ed56e661 100644 (file)
@@ -1,5 +1,18 @@
 #! perl
 
+sub msg {
+   my ($self, $msg1, $msg2) = @_;
+
+   my $overlay = $self->overlay (0, 0,
+      (List::Util::max map $self->strwidth ($_), $msg1, $msg2), 2);
+   $overlay->set (0, 0, $msg1);
+   $overlay->set (0, 1, $msg2);
+   my $iow; $iow = urxvt::timer->new->start (urxvt::NOW + 1)->cb (sub {
+      undef $overlay;
+      undef $iow;
+   });
+}
+
 sub on_start {
    my ($self) = @_;
 
@@ -28,8 +41,13 @@ sub on_button_press {
 
          $popup->add_button ($title => sub {
             for ($text) {
+               my $orig = $_;
                $cb->();
-               $self->selection ($_);
+
+               if ($orig ne $_) {
+                  $self->selection ($_);
+                  $self->msg ("Selection replaced by", $_);
+               }
             }
          });
       };
@@ -46,6 +64,9 @@ sub on_button_press {
          /%[0-9a-fA-F]{2}/ && !/%[^0-9a-fA-F]/ && !/%.[^0-9a-fA-F]/
             and $add_button->("uri unescape" => sub { s/%([0-9a-fA-F]{2})/chr hex $1/ge });
 
+         /[\\"'\ \t|&;<>()]/
+            and $add_button->("shell quote" => sub { $_ = "\Q$_" });
+
          /^(http|ftp|telnet|irc|news):\//
             and $add_button->("run x-www-browser" => sub { system "x-www-browser \Q$_\E &" });
       }