ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/matcher
(Generate patch)

Comparing rxvt-unicode/src/perl/matcher (file contents):
Revision 1.16 by sf-exg, Wed May 28 17:01:32 2014 UTC vs.
Revision 1.17 by sf-exg, Sat May 31 19:47:42 2014 UTC

97} 97}
98 98
99sub matchlist { 99sub matchlist {
100 my ($self) = @_; 100 my ($self) = @_;
101 if ( $self->{showing} ) { 101 if ( $self->{showing} ) {
102 $self->{url_overlay}->hide; 102 $self->{url_overlay}->hide;
103 $self->{showing} = 0; 103 $self->{showing} = 0;
104 return; 104 return;
105 } 105 }
106 @{$self->{urls}} = (); 106 @{$self->{urls}} = ();
107 my $line; 107 my $line;
108 for (my $i = 0; $i < $self->nrow; $i ++) { 108 for (my $i = 0; $i < $self->nrow; $i ++) {
109 $line = $self->line($i); 109 $line = $self->line($i);
110 next if ($line->beg != $i); 110 next if ($line->beg != $i);
111 for my $url ($self->get_urls_from_line($line->t)) { 111 for my $url ($self->get_urls_from_line($line->t)) {
112 if (scalar(@{$self->{urls}}) == 10) { 112 if (scalar(@{$self->{urls}}) == 10) {
113 shift @{$self->{urls}}; 113 shift @{$self->{urls}};
114 } 114 }
115 push @{$self->{urls}}, $url; 115 push @{$self->{urls}}, $url;
116 } 116 }
117 } 117 }
118 118
119 if (! scalar(@{$self->{urls}})) { 119 if (! scalar(@{$self->{urls}})) {
120 return; 120 return;
121 } 121 }
122 122
123 my $max = 0; 123 my $max = 0;
124 my $i = scalar( @{$self->{urls}} ) - 1 ;; 124 my $i = scalar( @{$self->{urls}} ) - 1 ;;
125 125
126 my @temp = (); 126 my @temp = ();
127 127
128 for my $url (@{$self->{urls}}) { 128 for my $url (@{$self->{urls}}) {
129 my $url = "$i-$url"; 129 my $url = "$i-$url";
130 my $xpos = 0; 130 my $xpos = 0;
131 131
132 if ($self->ncol + (length $url) >= $self->ncol) { 132 if ($self->ncol + (length $url) >= $self->ncol) {
133 $url = substr( $url, 0, $self->ncol ); 133 $url = substr( $url, 0, $self->ncol );
134 } 134 }
135 135
136 push @temp, $url; 136 push @temp, $url;
137 137
138 if( length $url > $max ) { 138 if( length $url > $max ) {
139 $max = length $url; 139 $max = length $url;
140 } 140 }
141 141
142 $i--; 142 $i--;
143 } 143 }
144 144
145 @temp = reverse @temp; 145 @temp = reverse @temp;
146 146
147 $self->{url_overlay} = $self->overlay(0, 0, $max, scalar( @temp ), urxvt::OVERLAY_RSTYLE, 2); 147 $self->{url_overlay} = $self->overlay(0, 0, $max, scalar( @temp ), urxvt::OVERLAY_RSTYLE, 2);
148 my $i = 0; 148 my $i = 0;
149 for my $url (@temp) { 149 for my $url (@temp) {
150 $self->{url_overlay}->set( 0, $i, $url, [(urxvt::OVERLAY_RSTYLE) x length $url]); 150 $self->{url_overlay}->set( 0, $i, $url, [(urxvt::OVERLAY_RSTYLE) x length $url]);
151 $self->{showing} = 1; 151 $self->{showing} = 1;
152 $i++; 152 $i++;
153 } 153 }
154 154
155} 155}
156 156
157sub most_recent { 157sub most_recent {
158 my ($self) = shift; 158 my ($self) = shift;
230 230
231sub get_urls_from_line { 231sub get_urls_from_line {
232 my ($self, $line) = @_; 232 my ($self, $line) = @_;
233 my @urls; 233 my @urls;
234 for my $matcher (@{$self->{matchers}}) { 234 for my $matcher (@{$self->{matchers}}) {
235 while ($line =~ /$matcher->[0]/g) { 235 while ($line =~ /$matcher->[0]/g) {
236 push @urls, substr( $line, $-[0], $+[0] - $-[0] ); 236 push @urls, substr( $line, $-[0], $+[0] - $-[0] );
237 } 237 }
238 } 238 }
239 return @urls; 239 return @urls;
240} 240}
241 241
242sub on_line_update { 242sub on_line_update {
330 330
331 if($row == $event->{row} && abs($col-$event->{col}) < 2 331 if($row == $event->{row} && abs($col-$event->{col}) < 2
332 && join("\x00", @$cmd) eq join("\x00", $self->command_for($row,$col))) { 332 && join("\x00", @$cmd) eq join("\x00", $self->command_for($row,$col))) {
333 if($self->valid_button($event)) { 333 if($self->valid_button($event)) {
334 334
335 $self->exec_async (@$cmd); 335 $self->exec_async (@$cmd);
336 336
337 } 337 }
338 } 338 }
339 339
340 1; 340 1;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines