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

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.56 by root, Sun Jan 8 05:52:42 2006 UTC vs.
Revision 1.61 by root, Mon Jan 9 01:36:56 2006 UTC

58 58
59=back 59=back
60 60
61=item option-popup (enabled by default) 61=item option-popup (enabled by default)
62 62
63Binds a popup menu to Ctrl-Button3 that lets you toggle (some) options at 63Binds a popup menu to Ctrl-Button2 that lets you toggle (some) options at
64runtime. 64runtime.
65
66=item selection-popup (enabled by default)
67
68Binds a popup menu to Ctrl-Button3 that lets you convert the selection
69text into various other formats/action.
65 70
66=item digital-clock 71=item digital-clock
67 72
68Displays a digital clock using the built-in overlay. 73Displays a digital clock using the built-in overlay.
69 74
199than the scroll back buffer or the terminal. 204than the scroll back buffer or the terminal.
200 205
201It is called before lines are scrolled out (so rows 0 .. min ($lines - 1, 206It is called before lines are scrolled out (so rows 0 .. min ($lines - 1,
202$nrow - 1) represent the lines to be scrolled out). C<$saved> is the total 207$nrow - 1) represent the lines to be scrolled out). C<$saved> is the total
203number of lines that will be in the scrollback buffer. 208number of lines that will be in the scrollback buffer.
204
205=item on_tty_activity $term *NYI*
206
207Called whenever the program(s) running in the urxvt window send output.
208 209
209=item on_osc_seq $term, $string 210=item on_osc_seq $term, $string
210 211
211Called whenever the B<ESC ] 777 ; string ST> command sequence (OSC = 212Called whenever the B<ESC ] 777 ; string ST> command sequence (OSC =
212operating system command) is processed. Cursor position and other state 213operating system command) is processed. Cursor position and other state
423 my $msg = join "", @_; 424 my $msg = join "", @_;
424 $msg .= "\n" 425 $msg .= "\n"
425 unless $msg =~ /\n$/; 426 unless $msg =~ /\n$/;
426 urxvt::warn ($msg); 427 urxvt::warn ($msg);
427 }; 428 };
429
430 delete $ENV{IFS};
431 delete $ENV{CDPATH};
432 delete $ENV{BASH_ENV};
433 $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin";
428} 434}
429 435
430my @hook_count; 436my @hook_count;
431my $verbosity = $ENV{URXVT_PERL_VERBOSITY}; 437my $verbosity = $ENV{URXVT_PERL_VERBOSITY};
432 438
465 verbose 3, "loading extension '$path' into package '$pkg'"; 471 verbose 3, "loading extension '$path' into package '$pkg'";
466 472
467 open my $fh, "<:raw", $path 473 open my $fh, "<:raw", $path
468 or die "$path: $!"; 474 or die "$path: $!";
469 475
470 my $source = "package $pkg; use strict; use utf8;\n" 476 my $source = untaint "package $pkg; use strict; use utf8;\n"
471 . "use base urxvt::term::proxy::;\n" 477 . "use base urxvt::term::proxy::;\n"
472 . "#line 1 \"$path\"\n{\n" 478 . "#line 1 \"$path\"\n{\n"
473 . (do { local $/; <$fh> }) 479 . (do { local $/; <$fh> })
474 . "\n};\n1"; 480 . "\n};\n1";
475 481
491 497
492 my %want_ext; 498 my %want_ext;
493 499
494 for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) { 500 for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) {
495 if ($_ eq "default") { 501 if ($_ eq "default") {
496 $want_ext{$_}++ for qw(selection option-popup); 502 $want_ext{$_}++ for qw(selection option-popup selection-popup);
497 } elsif (/^-(.*)$/) { 503 } elsif (/^-(.*)$/) {
498 delete $want_ext{$1}; 504 delete $want_ext{$1};
499 } else { 505 } else {
500 $want_ext{$_}++; 506 $want_ext{$_}++;
501 } 507 }
532 $proxy 538 $proxy
533 }, 539 },
534 @_, 540 @_,
535 ) and last; 541 ) and last;
536 }; 542 };
537 warn $@ if $@;#d# 543 if ($@) {
544 $TERM->ungrab; # better to lose the grab than the session
545 warn $@;
546 }
538 } 547 }
539 } 548 }
540 549
541 if ($htype == 1) { # DESTROY 550 if ($htype == 1) { # DESTROY
542 # remove hooks if unused 551 # remove hooks if unused
570 } 579 }
571 1 580 1
572 } or die "FATAL: unable to compile method forwarder: $@"; 581 } or die "FATAL: unable to compile method forwarder: $@";
573 582
574 goto &$urxvt::term::proxy::AUTOLOAD; 583 goto &$urxvt::term::proxy::AUTOLOAD;
584}
585
586sub urxvt::term::proxy::DESTROY {
587 # nop
575} 588}
576 589
577# urxvt::destroy_hook 590# urxvt::destroy_hook
578 591
579sub urxvt::destroy_hook::DESTROY { 592sub urxvt::destroy_hook::DESTROY {
1083 $offset / $self->{ncol} + $self->{beg}, 1096 $offset / $self->{ncol} + $self->{beg},
1084 $offset % $self->{ncol} 1097 $offset % $self->{ncol}
1085 ) 1098 )
1086} 1099}
1087 1100
1088=item ($row, $col) = $line->coord_of ($offset)
1089=item $text = $term->special_encode $string 1101=item $text = $term->special_encode $string
1090 1102
1091Converts a perl string into the special encoding used by rxvt-unicode, 1103Converts a perl string into the special encoding used by rxvt-unicode,
1092where one character corresponds to one screen cell. See 1104where one character corresponds to one screen cell. See
1093C<< $term->ROW_t >> for details. 1105C<< $term->ROW_t >> for details.
1094 1106
1095=item $string = $term->special_decode $text 1107=item $string = $term->special_decode $text
1096 1108
1097Converts rxvt-unicodes text reprsentation into a perl string. See 1109Converts rxvt-unicodes text reprsentation into a perl string. See
1098C<< $term->ROW_t >> for details. 1110C<< $term->ROW_t >> for details.
1111
1112=item $success = $term->grab_button ($button, $modifiermask)
1113
1114Registers a synchronous button grab. See XGrabButton.
1115
1116=item $success = $term->grab ($eventtime[, $sync])
1117
1118Calls XGrabPointer and XGrabKeyboard in asynchronous (default) or
1119synchronous (C<$sync> is true). Also remembers the grab timestampe.
1120
1121=item $term->allow_events_async
1122
1123Calls XAllowEvents with AsyncBoth for the most recent grab.
1124
1125=item $term->allow_events_sync
1126
1127Calls XAllowEvents with SyncBoth for the most recent grab.
1128
1129=item $term->allow_events_replay
1130
1131Calls XAllowEvents with both ReplayPointer and ReplayKeyboard for the most
1132recent grab.
1133
1134=item $term->ungrab
1135
1136Calls XUngrab for the most recent grab. Is called automatically on
1137evaluation errors, as it is better to lose the grab in the error case as
1138the session.
1099 1139
1100=back 1140=back
1101 1141
1102=cut 1142=cut
1103 1143
1155 1195
1156 my $item; $item = { 1196 my $item; $item = {
1157 type => "button", 1197 type => "button",
1158 text => " $text", 1198 text => " $text",
1159 value => $value, 1199 value => $value,
1160 render => sub { ($item->{value} ? "* " : " ") . $text }, 1200 render => sub { ($_[0]{value} ? "* " : " ") . $text },
1161 activate => sub { $cb->($item->{value} = !$item->{value}); }, 1201 activate => sub { $cb->($_[0]{value} = !$_[0]{value}); },
1162 }; 1202 };
1163 1203
1164 $self->add_item ($item); 1204 $self->add_item ($item);
1165} 1205}
1166 1206
1176} 1216}
1177 1217
1178sub DESTROY { 1218sub DESTROY {
1179 my ($self) = @_; 1219 my ($self) = @_;
1180 1220
1221 delete $self->{term}{_destroy}{$self};
1181 $self->{term}->ungrab; 1222 $self->{term}->ungrab;
1182} 1223}
1183 1224
1184=head2 The C<urxvt::timer> Class 1225=head2 The C<urxvt::timer> Class
1185 1226
1289This variable controls the verbosity level of the perl extension. Higher 1330This variable controls the verbosity level of the perl extension. Higher
1290numbers indicate more verbose output. 1331numbers indicate more verbose output.
1291 1332
1292=over 4 1333=over 4
1293 1334
1294=item =0 - only fatal messages 1335=item == 0 - fatal messages
1295 1336
1296=item =3 - script loading and management 1337=item >= 3 - script loading and management
1297 1338
1298=item =10 - all events received 1339=item >=10 - all events received
1299 1340
1300=back 1341=back
1301 1342
1302=head1 AUTHOR 1343=head1 AUTHOR
1303 1344

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines