--- rxvt-unicode/src/perl/selection 2006/01/03 19:42:53 1.7 +++ rxvt-unicode/src/perl/selection 2006/01/03 20:47:36 1.8 @@ -9,8 +9,28 @@ () } +my @patterns = ( + # urls + qr{ ([a-z0-9.+\-]+://[ab-zA-Z0-9\-\@;\/?:&=%\$_.+!*\x27(),]+) }x, +); + sub on_sel_extend { my ($self) = @_; - warn $self->selection; + + my ($row, $col) = $self->selection_mark; + my $line = $self->line ($row); + my $offset = $line->offset_of ($row, $col); + my $text = $line->t; + + for my $regex (@patterns) { + while ($text =~ /$regex/g) { + if ($-[0] <= $offset and $offset <= $+[0]) { + $self->selection_beg ($line->coord_of ($-[0])); + $self->selection_end ($line->coord_of ($+[0])); + return 1; + } + } + } + () }