ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/confirm-paste
Revision: 1.2
Committed: Fri Jan 7 23:56:08 2011 UTC (13 years, 4 months ago) by sf-exg
Branch: MAIN
Changes since 1.1: +3 -1 lines
Log Message:
Change confirm-paste to preview the pasted data in the overlay.

File Contents

# Content
1 #! perl
2
3 sub msg {
4 my ($self, $msg) = @_;
5
6 $self->{overlay} = $self->overlay (0, -1, $self->ncol, 2);
7 $self->{overlay}->set (0, 0, $msg);
8 }
9
10 sub on_tt_paste {
11 my ($self, $str) = @_;
12
13 my $count = ($str =~ tr/\012\015//);
14
15 return unless $count;
16
17 $self->{paste} = \$str;
18 $self->msg ("Paste of $count lines, continue? (y/n)");
19 (my $preview = $self->locale_decode ($str)) =~ s/\n/\\n/g;
20 $self->{overlay}->set (0, 1, $preview);
21 $self->enable (key_press => \&key_press);
22
23 1
24 }
25
26 sub leave {
27 my ($self) = @_;
28
29 $self->{paste} = undef;
30 delete $self->{overlay};
31 $self->disable ("key_press");
32 }
33
34 sub key_press {
35 my ($self, $event, $keysym, $string) = @_;
36
37 if ($keysym == 121) { # y
38 $self->tt_paste (${$self->{paste}});
39 $self->leave;
40 } elsif ($keysym == 110) { # n
41 $self->leave;
42 }
43
44 1
45 }