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

Comparing rxvt-unicode/src/perl/readline (file contents):
Revision 1.7 by root, Mon Feb 6 06:14:08 2006 UTC vs.
Revision 1.11 by sf-exg, Sun Nov 20 11:09:22 2011 UTC

17} 17}
18 18
19sub on_button_press { 19sub on_button_press {
20 my ($self, $event) = @_; 20 my ($self, $event) = @_;
21 21
22 return
23 if $self->current_screen || $self->hidden_cursor || !$self->{enabled}; 22 $self->current_screen || $self->hidden_cursor || !$self->{enabled}
23 and return;
24
25 my $mask = $self->ModLevel3Mask | $self->ModMetaMask
26 | urxvt::ShiftMask | urxvt::ControlMask;
27
28 ($event->{state} & $mask) == urxvt::ShiftMask
29 or return;
24 30
25 $termios->getattr ($self->pty_fd) 31 $termios->getattr ($self->pty_fd)
26 or return; 32 or return;
27 33
28 return
29 if $termios->getlflag & &POSIX::ICANON; 34 $termios->getlflag & &POSIX::ICANON
35 and return;
30 36
31 my ($row, $col) = $self->screen_cur; 37 my ($row, $col) = $self->screen_cur;
32 my $line = $self->line ($row); 38 my $line = $self->line ($row);
33 my $cur = $line->offset_of ($row, $col); 39 my $cur = $line->offset_of ($row, $col);
34 my $ofs = $line->offset_of ($event->{row}, $event->{col}); 40 my $ofs = $line->offset_of ($event->{row}, $event->{col});
35 41
36 if ($ofs >= 0 && $ofs < $line->l) { 42 $ofs >= 0 && $ofs < $line->l
37 my $diff = $ofs - $cur; 43 or return;
38 my $move;
39 44
40 if ($diff < 0) { 45 my $diff = $ofs - $cur;
41 ($ofs, $cur) = ($cur, $ofs); 46 my $move;
42 $move = "\x1b[D";
43 } else {
44 $move = "\x1b[C";
45 }
46 47
47 my $skipped = substr $line->t, $cur, $ofs - $cur; 48 if ($diff < 0) {
48 $skipped =~ s/\x{ffff}//g; 49 ($ofs, $cur) = ($cur, $ofs);
49 50 $move = "\x1b[D";
50 $self->tt_write ($move x length $skipped); 51 } else {
52 $move = "\x1b[C";
51 } 53 }
52 54
53 () 55 my $skipped = substr $line->t, $cur, $ofs - $cur;
56 $skipped =~ s/\x{ffff}//g;
57
58 $self->tt_write ($move x length $skipped);
59
60 1
54} 61}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines