ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/perl/eval
Revision: 1.4
Committed: Sat Jul 24 09:48:43 2021 UTC (2 years, 9 months ago) by root
Branch: MAIN
CVS Tags: rxvt-unicode-rel-9_29, rxvt-unicode-rel-9_30, HEAD
Changes since 1.3: +1 -1 lines
Log Message:
remove =over identation

File Contents

# User Rev Content
1 sf-exg 1.1 #! perl
2    
3     =head1 NAME
4    
5     eval - evaluate arbitrary perl code using actions
6    
7     =head1 EXAMPLES
8    
9     URxvt.keysym.M-c: eval:selection_to_clipboard
10     URxvt.keysym.M-v: eval:paste_clipboard
11     URxvt.keysym.M-V: eval:paste_primary
12    
13     URxvt.keysym.M-Up: eval:scroll_up 1
14     URxvt.keysym.M-Down: eval:scroll_down 1
15     URxvt.keysym.M-Home: eval:scroll_to_top
16     URxvt.keysym.M-End: eval:scroll_to_bottom
17    
18     =head1 DESCRIPTION
19    
20     Add support for evaluating arbitrary perl code using actions in keysym
21     resources. If a keysym I<action> takes the form C<eval:STRING>, the
22     specified B<STRING> is evaluated as a Perl expression. While the full
23     urxvt API is available, the following methods are also provided for
24     users' convenience, as they implement basic actions:
25    
26     =cut
27    
28     our ($self);
29    
30 root 1.4 =over
31 sf-exg 1.1
32     =item scroll_up $count
33    
34     =item scroll_up_pages $count
35    
36     =item scroll_down $count
37    
38     =item scroll_down_pages $count
39    
40     Scroll up or down by C<$count> lines or pages.
41    
42     =cut
43    
44     sub scroll_up ($) {
45     my $lines = $_[0];
46 sf-exg 1.3 $self->view_start ($self->view_start - $lines);
47 sf-exg 1.1 }
48    
49     sub scroll_up_pages ($) {
50     my $lines = $_[0] * ($self->nrow - 1);
51 sf-exg 1.3 $self->view_start ($self->view_start - $lines);
52 sf-exg 1.1 }
53    
54     sub scroll_down ($) {
55     my $lines = $_[0];
56 sf-exg 1.3 $self->view_start ($self->view_start + $lines);
57 sf-exg 1.1 }
58    
59     sub scroll_down_pages ($) {
60     my $lines = $_[0] * ($self->nrow - 1);
61 sf-exg 1.3 $self->view_start ($self->view_start + $lines);
62 sf-exg 1.1 }
63    
64     =item scroll_to_top
65    
66     =item scroll_to_bottom
67    
68     Scroll to the top or bottom of the scrollback.
69    
70     =cut
71    
72     sub scroll_to_top () {
73     $self->view_start ($self->top_row);
74     }
75    
76     sub scroll_to_bottom () {
77     $self->view_start (0);
78     }
79    
80     =item selection_to_clipboard
81    
82     Copy the selection to the CLIPBOARD.
83    
84     =cut
85    
86     sub selection_to_clipboard () {
87     $self->selection ($self->selection, 1);
88     $self->selection_grab (urxvt::CurrentTime, 1);
89     }
90    
91     =item paste_primary
92    
93     =item paste_clipboard
94    
95     Paste the value of the PRIMARY or CLIPBOARD selection.
96    
97     =cut
98    
99     sub paste_primary () {
100     $self->selection_request (urxvt::CurrentTime, 1);
101     }
102    
103     sub paste_clipboard () {
104     $self->selection_request (urxvt::CurrentTime, 3);
105     }
106    
107     =back
108    
109     =cut
110    
111     sub on_action {
112     my ($arg_self, $action) = @_;
113    
114     local $self = $arg_self;
115     eval "#line 1 \"$action\"\n$action";
116     die $@ if $@;
117    
118     ()
119     }