From 0cf06d07affcf4139018d0b7a32c196e8fbb6325 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 25 Jan 2006 15:32:48 +0000 Subject: [PATCH] *** empty log message *** --- Changes | 3 +- MANIFEST | 2 +- src/hookinc.h | 2 +- src/keyboard.C | 2 +- src/perl/remote-clipboard | 6 +- src/perl/remote-selection | 114 --------------------------------- src/perl/searchable-scrollback | 2 +- src/perl/selection | 2 +- src/perl/selection-pastebin | 2 +- src/urxvt.pm | 11 ++-- 10 files changed, 17 insertions(+), 129 deletions(-) delete mode 100644 src/perl/remote-selection diff --git a/Changes b/Changes index fa2e4d5b..fcc4cdec 100644 --- a/Changes +++ b/Changes @@ -18,7 +18,7 @@ DUMB: support tex fonts - moved Shift-Button2 paste combination to Meta-Button2. - the cutchars resource will now be respected and used by the selection extension. - - added the "remote-selection" extension which just runs external + - added the "remote-clipboard" extension which just runs external commands to fetch and store the selection data. - removed (unused) arabic presentation form composing sequences. - be more strict when deciding that a core font glyph is too wide and @@ -28,6 +28,7 @@ DUMB: support tex fonts - redraw even more characters around characters usign careful mode. - reduced number of server turnarounds at startup by allocating atoms only once per display. + - renamed on_keyboard_command to on_user_command. - changed version sos (ESC [ > c) response to be more compatible with xterm. diff --git a/MANIFEST b/MANIFEST index e24748db..4f2293a0 100644 --- a/MANIFEST +++ b/MANIFEST @@ -171,7 +171,7 @@ src/perl/mark-urls src/perl/tabbed src/perl/xim-onthespot src/perl/readline -src/perl/remote-selection +src/perl/remote-clipboard src/perl/example-refresh-hooks src/perl/block-graphics-to-ascii src/perl/digital-clock diff --git a/src/hookinc.h b/src/hookinc.h index e716ee7b..33e910f3 100644 --- a/src/hookinc.h +++ b/src/hookinc.h @@ -24,7 +24,7 @@ def (REFRESH_BEGIN) def (REFRESH_END) - def (KEYBOARD_COMMAND) + def (USER_COMMAND) def (X_EVENT) def (FOCUS_IN) diff --git a/src/keyboard.C b/src/keyboard.C index 73652843..0ef520f9 100644 --- a/src/keyboard.C +++ b/src/keyboard.C @@ -76,7 +76,7 @@ output_string (rxvt_term *rt, const char *str) if (strncmp (str, "command:", 8) == 0) rt->cmd_write (str + 8, strlen (str) - 8); else if (strncmp (str, "perl:", 5) == 0) - HOOK_INVOKE((rt, HOOK_KEYBOARD_COMMAND, DT_STR, str + 5, DT_END)); + HOOK_INVOKE((rt, HOOK_USER_COMMAND, DT_STR, str + 5, DT_END)); else rt->tt_write (str, strlen (str)); } diff --git a/src/perl/remote-clipboard b/src/perl/remote-clipboard index c73b7231..0b7140d4 100644 --- a/src/perl/remote-clipboard +++ b/src/perl/remote-clipboard @@ -75,9 +75,7 @@ sub fetch { $self->selection_clear; $self->selection ($txt); $self->selection_grab (urxvt::CurrentTime); - close $fh; - my $status = $? >> 8; - $self->msg ("selection fetched (status $status)"); + $self->msg ("selection fetched"); } }); } @@ -102,7 +100,7 @@ sub on_start { () } -sub on_keyboard_command { +sub on_user_command { my ($self, $cmd) = @_; if ($cmd eq "selection-pastebin:remote-pastebin") { diff --git a/src/perl/remote-selection b/src/perl/remote-selection deleted file mode 100644 index c73b7231..00000000 --- a/src/perl/remote-selection +++ /dev/null @@ -1,114 +0,0 @@ -#! perl - -use Fcntl (); - -sub msg { - my ($self, $msg) = @_; - - my $ov = $self->overlay (-1, 0, $self->strwidth ($msg), 1, urxvt::OVERLAY_RSTYLE, 0); - $ov->set (0, 0, $msg); - - $self->{msg} = - urxvt::timer - ->new - ->after (5) - ->cb (sub { delete $self->{msg}; undef $ov; }); -} - -sub wait_pipe { - my ($self, $fh, $pid, $msg) = @_; - - $self->msg ("waiting for selection process to finish..."); - - my $wait_pipe; $wait_pipe = urxvt::pw->new->start ($pid)->cb (sub { - my ($undef, $status) = @_; - undef $wait_pipe; - close $fh; - $status >>= 8; - $self->msg ("$msg (status $status)"); - }); -} - -sub store { - my ($self) = @_; - - my $txt = $self->selection; - - local %ENV = %{ $self->env }; - if (my $pid = open my $fh, "|-:utf8", $self->{store_cmd}) { - fcntl $fh, &Fcntl::F_SETFL, &Fcntl::O_NONBLOCK; - $self->{iow} = urxvt::iow - ->new - ->fd (fileno $fh) - ->events (urxvt::EVENT_WRITE) - ->start - ->cb (sub { - if (my $len = syswrite $fh, $txt) { - substr $txt, 0, $len, ""; - $self->msg ((length $txt) . " chars to go..."); - } else { - delete $self->{iow}; - $self->wait_pipe ($fh, $pid, "selection stored"); - } - }); - } -} - -sub fetch { - my ($self) = @_; - - my $txt; - - local %ENV = %{ $self->env }; - if (my $pid = open my $fh, "-|:utf8", $self->{fetch_cmd}) { - fcntl $fh, &Fcntl::F_SETFL, &Fcntl::O_NONBLOCK; - $self->{iow} = urxvt::iow - ->new - ->fd (fileno $fh) - ->events (urxvt::EVENT_READ) - ->start - ->cb (sub { - if (my $len = sysread $fh, $txt, 8192, length $txt) { - $self->msg ((length $txt) . " chars read..."); - } else { - delete $self->{iow}; - $self->selection_clear; - $self->selection ($txt); - $self->selection_grab (urxvt::CurrentTime); - close $fh; - my $status = $? >> 8; - $self->msg ("selection fetched (status $status)"); - } - }); - } -} - -sub on_start { - my ($self) = @_; - - $self->{store_cmd} = $self->x_resource ("remote-selection.store") - || "rsh ruth 'cat >/tmp/distributed-selection'"; - - $self->{fetch_cmd} = $self->x_resource ("remote-selection.fetch") - || "rsh ruth 'cat /tmp/distributed-selection'"; - - push @{ $self->{term}{selection_popup_hook} }, sub { - ("selection => remote" => sub { $self->store }) - }; - push @{ $self->{term}{selection_popup_hook} }, sub { - ("remote => selection" => sub { $self->fetch }) - }; - - () -} - -sub on_keyboard_command { - my ($self, $cmd) = @_; - - if ($cmd eq "selection-pastebin:remote-pastebin") { - $self->upload_paste; - } - - () -} - diff --git a/src/perl/searchable-scrollback b/src/perl/searchable-scrollback index f89bcd27..41188890 100644 --- a/src/perl/searchable-scrollback +++ b/src/perl/searchable-scrollback @@ -15,7 +15,7 @@ sub on_init { () } -sub on_keyboard_command { +sub on_user_command { my ($self, $cmd) = @_; $cmd eq "searchable-scrollback:start" diff --git a/src/perl/selection b/src/perl/selection index be16135f..2a34fbce 100644 --- a/src/perl/selection +++ b/src/perl/selection @@ -1,6 +1,6 @@ #! perl -sub on_keyboard_command { +sub on_user_command { my ($self, $cmd) = @_; $cmd eq "selection:rot13" diff --git a/src/perl/selection-pastebin b/src/perl/selection-pastebin index 0da4191d..f9ef7f1f 100644 --- a/src/perl/selection-pastebin +++ b/src/perl/selection-pastebin @@ -69,7 +69,7 @@ sub on_start { () } -sub on_keyboard_command { +sub on_user_command { my ($self, $cmd) = @_; if ($cmd eq "selection-pastebin:remote-pastebin") { diff --git a/src/urxvt.pm b/src/urxvt.pm index 39287bee..82bba672 100644 --- a/src/urxvt.pm +++ b/src/urxvt.pm @@ -244,7 +244,7 @@ similar-looking ascii character. Displays a digital clock using the built-in overlay. -=item remote-selection +=item remote-clipboard Somewhat of a misnomer, this extension adds two menu entries to the selection popup that allows one ti run external commands to store the @@ -517,12 +517,15 @@ code is run after this hook, and takes precedence. Called just after the screen gets redrawn. See C. -=item on_keyboard_command $term, $string +=item on_user_command $term, $string -Called whenever the user presses a key combination that has a -C action bound to it (see description of the B +Called whenever the a user-configured event is being activated (e.g. via +a C action bound to a key, see description of the B resource in the @@RXVT_NAME@@(1) manpage). +The event is simply the action string. This interface is assumed to change +slightly in the future. + =item on_x_event $term, $event Called on every X event received on the vt window (and possibly other -- 2.34.1