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.57 by root, Sun Jan 8 08:43:11 2006 UTC vs.
Revision 1.60 by root, Mon Jan 9 01:21:43 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
423 my $msg = join "", @_; 428 my $msg = join "", @_;
424 $msg .= "\n" 429 $msg .= "\n"
425 unless $msg =~ /\n$/; 430 unless $msg =~ /\n$/;
426 urxvt::warn ($msg); 431 urxvt::warn ($msg);
427 }; 432 };
433
434 delete $ENV{IFS};
435 delete $ENV{CDPATH};
436 delete $ENV{BASH_ENV};
437 $ENV{PATH} = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/opt/bin:/opt/sbin";
428} 438}
429 439
430my @hook_count; 440my @hook_count;
431my $verbosity = $ENV{URXVT_PERL_VERBOSITY}; 441my $verbosity = $ENV{URXVT_PERL_VERBOSITY};
432 442
465 verbose 3, "loading extension '$path' into package '$pkg'"; 475 verbose 3, "loading extension '$path' into package '$pkg'";
466 476
467 open my $fh, "<:raw", $path 477 open my $fh, "<:raw", $path
468 or die "$path: $!"; 478 or die "$path: $!";
469 479
470 my $source = "package $pkg; use strict; use utf8;\n" 480 my $source = untaint "package $pkg; use strict; use utf8;\n"
471 . "use base urxvt::term::proxy::;\n" 481 . "use base urxvt::term::proxy::;\n"
472 . "#line 1 \"$path\"\n{\n" 482 . "#line 1 \"$path\"\n{\n"
473 . (do { local $/; <$fh> }) 483 . (do { local $/; <$fh> })
474 . "\n};\n1"; 484 . "\n};\n1";
475 485
476 $source =~ /(.*)/s and $source = $1; # untaint
477
478 eval $source or die "$path: $@"; 486 eval $source or die "$path: $@";
479 487
480 $pkg 488 $pkg
481 } 489 }
482} 490}
493 501
494 my %want_ext; 502 my %want_ext;
495 503
496 for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) { 504 for (map { split /,/, $TERM->resource ("perl_ext_$_") } 1, 2) {
497 if ($_ eq "default") { 505 if ($_ eq "default") {
498 $want_ext{$_}++ for qw(selection option-popup); 506 $want_ext{$_}++ for qw(selection option-popup selection-popup);
499 } elsif (/^-(.*)$/) { 507 } elsif (/^-(.*)$/) {
500 delete $want_ext{$1}; 508 delete $want_ext{$1};
501 } else { 509 } else {
502 $want_ext{$_}++; 510 $want_ext{$_}++;
503 } 511 }
534 $proxy 542 $proxy
535 }, 543 },
536 @_, 544 @_,
537 ) and last; 545 ) and last;
538 }; 546 };
539 warn $@ if $@;#d# 547 if ($@) {
548 $TERM->ungrab; # better to lose the grab than the session
549 warn $@;
550 }
540 } 551 }
541 } 552 }
542 553
543 if ($htype == 1) { # DESTROY 554 if ($htype == 1) { # DESTROY
544 # remove hooks if unused 555 # remove hooks if unused
572 } 583 }
573 1 584 1
574 } or die "FATAL: unable to compile method forwarder: $@"; 585 } or die "FATAL: unable to compile method forwarder: $@";
575 586
576 goto &$urxvt::term::proxy::AUTOLOAD; 587 goto &$urxvt::term::proxy::AUTOLOAD;
588}
589
590sub urxvt::term::proxy::DESTROY {
591 # nop
577} 592}
578 593
579# urxvt::destroy_hook 594# urxvt::destroy_hook
580 595
581sub urxvt::destroy_hook::DESTROY { 596sub urxvt::destroy_hook::DESTROY {
1157 1172
1158 my $item; $item = { 1173 my $item; $item = {
1159 type => "button", 1174 type => "button",
1160 text => " $text", 1175 text => " $text",
1161 value => $value, 1176 value => $value,
1162 render => sub { ($item->{value} ? "* " : " ") . $text }, 1177 render => sub { ($_[0]{value} ? "* " : " ") . $text },
1163 activate => sub { $cb->($item->{value} = !$item->{value}); }, 1178 activate => sub { $cb->($_[0]{value} = !$_[0]{value}); },
1164 }; 1179 };
1165 1180
1166 $self->add_item ($item); 1181 $self->add_item ($item);
1167} 1182}
1168 1183
1178} 1193}
1179 1194
1180sub DESTROY { 1195sub DESTROY {
1181 my ($self) = @_; 1196 my ($self) = @_;
1182 1197
1198 delete $self->{term}{_destroy}{$self};
1183 $self->{term}->ungrab; 1199 $self->{term}->ungrab;
1184} 1200}
1185 1201
1186=head2 The C<urxvt::timer> Class 1202=head2 The C<urxvt::timer> Class
1187 1203
1291This variable controls the verbosity level of the perl extension. Higher 1307This variable controls the verbosity level of the perl extension. Higher
1292numbers indicate more verbose output. 1308numbers indicate more verbose output.
1293 1309
1294=over 4 1310=over 4
1295 1311
1296=item =0 - only fatal messages 1312=item == 0 - fatal messages
1297 1313
1298=item =3 - script loading and management 1314=item >= 3 - script loading and management
1299 1315
1300=item =10 - all events received 1316=item >=10 - all events received
1301 1317
1302=back 1318=back
1303 1319
1304=head1 AUTHOR 1320=head1 AUTHOR
1305 1321

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines