--- rxvt-unicode/src/perl/mark-urls 2006/01/12 01:30:53 1.6 +++ rxvt-unicode/src/perl/mark-urls 2006/01/31 15:28:40 1.10 @@ -10,7 +10,9 @@ sub on_start { my ($self) = @_; - $self->{browser} = urxvt::untaint $self->x_resource ("urlLauncher") || "x-www-browser"; + $self->{browser} = $self->x_resource ("urlLauncher") || "x-www-browser"; + + () } sub on_line_update { @@ -37,16 +39,20 @@ sub on_button_release { my ($self, $event) = @_; - my $row = $event->{row}; - my $col = $event->{col}; - 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) { + my $row = $event->{row}; + my $col = $event->{col}; + + my $line = $self->line ($row); + my $text = $line->t; + while ($text =~ /$url/g) { - if ($-[0] <= $col && $+[0] >= $col) { - system "$self->{browser} \Q$1\E &"; + if ($-[1] <= $col && $+[1] >= $col) { + $self->exec_async ($self->{browser}, $1); return 1; } }