TODO: read property sequence is broken with respect to utf-8 etc.
TODO: http://www120.pair.com/mccarthy/nextstep/intro.htmld/Workspace.html is the correct nextstep look.
TODO: clarify and get rid of SMOOTH_REFRESH etc.
+TODO: scroll lines into scrollback when tscroll==0, regardless of bscrol
WISH: OnTheSpot editing, or maybe switch to miiiiiiif. or maybe use perl and an overlay...
WISH: just for fun, do shade and tint with XRender.
WISH: support tex fonts
7.0
-TODO: run external commands more sytematically (using $self->env etc.)
TODO: document searchable-scorllback hotkey
TODO: double-click and right-extend
TODO: change scrollback to use cursor movements
-TODO: middle-click conflicts with menu use, !Ctrl
- added sections for DISTRIBUTION MAINTAINERS and about
SETUID/SETGID to the FAQ.
- selection, searchable-scrollback, selection-popup and
my ($self) = @_;
$self->{browser} = urxvt::untaint $self->x_resource ("urlLauncher") || "x-www-browser";
+
+ ()
}
sub on_line_update {
my $line = $self->line ($row);
my $text = $line->t;
+
+ my $mask = $self->ModLevel3Mask | $self->ModMetaMask
+ | urxvt::ShiftMask | urxvt::ControlMask;
- if ($event->{button} == 2) {
+ if ($event->{button} == 2 && ($event->{state} & $mask) == 0) {
while ($text =~ /$url/g) {
- if ($-[0] <= $col && $+[0] >= $col) {
- system "$self->{browser} \Q$1\E &";
+ if ($-[1] <= $col && $+[1] >= $col) {
+ urxvt::exec_async $self->{browser}, $1;
return 1;
}
}
$self->{browser} = urxvt::untaint $self->x_resource ("urlLauncher") || "x-www-browser";
$self->grab_button (3, urxvt::ControlMask);
+
+ ()
}
sub on_button_press {
and $add_button->("shell quote" => sub { $_ = "\Q$_" });
/^(http|ftp|telnet|irc|news):\//
- and $add_button->("run $self->{browser}" => sub { system "$self->{browser} \Q$_\E &" });
+ and $add_button->("run $self->{browser}" => sub { urxvt::exec_async $self->{browser}, $_ });
}
$popup->show;
#include <cstddef>
#include <cstdarg>
+#include "unistd.h"
+
#include "iom.h"
#include "rxvt.h"
#include "keyboard.h"
OUTPUT:
RETVAL
+void
+_exit (int status)
+
bool
safe ()
CODE:
$retval
}
+sub exec_async(@) {
+ my $pid = fork;
+
+ return
+ if !defined $pid or $pid;
+
+ %ENV = %{ $TERM->env };
+
+ exec @_;
+ _exit 255;
+}
+
# urxvt::term::extension
package urxvt::term::extension;