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.6 by root, Sun Jan 22 20:39:47 2006 UTC vs.
Revision 1.9 by root, Mon Feb 20 20:46:54 2006 UTC

2 2
3use POSIX (); 3use POSIX ();
4 4
5my $termios = new POSIX::Termios; 5my $termios = new POSIX::Termios;
6 6
7sub on_init {
8 my ($self) = @_;
9
10 $self->{enabled} = 1;
11
12 push @{ $self->{term}{option_popup_hook} }, sub {
13 ("readline" => $self->{enabled}, sub { $self->{enabled} = shift })
14 };
15
16 ()
17}
18
7sub on_button_press { 19sub on_button_press {
8 my ($self, $event) = @_; 20 my ($self, $event) = @_;
9 21
10 return
11 if $self->current_screen || $self->hidden_cursor; 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;
12 30
13 $termios->getattr ($self->pty_fd) 31 $termios->getattr ($self->pty_fd)
14 or return; 32 or return;
15 33
16 return
17 if $termios->getlflag & &POSIX::ICANON; 34 $termios->getlflag & &POSIX::ICANON
35 and return;
18 36
19 my ($row, $col) = $self->screen_cur; 37 my ($row, $col) = $self->screen_cur;
20 my $line = $self->line ($row); 38 my $line = $self->line ($row);
21 my $cur = $line->offset_of ($row, $col); 39 my $cur = $line->offset_of ($row, $col);
22 my $ofs = $line->offset_of ($event->{row}, $event->{col}); 40 my $ofs = $line->offset_of ($event->{row}, $event->{col});
34 52
35 my $skipped = substr $line->t, $cur, $ofs - $cur; 53 my $skipped = substr $line->t, $cur, $ofs - $cur;
36 $skipped =~ s/\x{ffff}//g; 54 $skipped =~ s/\x{ffff}//g;
37 55
38 $self->tt_write ($move x length $skipped); 56 $self->tt_write ($move x length $skipped);
57
58 return 1;
39 } 59 }
40 60
41 () 61 ()
42} 62}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines