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.99 by root, Tue Jan 17 17:09:26 2006 UTC vs.
Revision 1.100 by root, Wed Jan 18 08:33:34 2006 UTC

595=back 595=back
596 596
597=cut 597=cut
598 598
599BEGIN { 599BEGIN {
600 urxvt->bootstrap;
601
602 # overwrite perl's warn 600 # overwrite perl's warn
603 *CORE::GLOBAL::warn = sub { 601 *CORE::GLOBAL::warn = sub {
604 my $msg = join "", @_; 602 my $msg = join "", @_;
605 $msg .= "\n" 603 $msg .= "\n"
606 unless $msg =~ /\n$/; 604 unless $msg =~ /\n$/;
619sub verbose { 617sub verbose {
620 my ($level, $msg) = @_; 618 my ($level, $msg) = @_;
621 warn "$msg\n" if $level <= $verbosity; 619 warn "$msg\n" if $level <= $verbosity;
622} 620}
623 621
624my $extension_pkg = "extension0000";
625my %extension_pkg; 622my %extension_pkg;
626 623
627# load a single script into its own package, once only 624# load a single script into its own package, once only
628sub extension_package($) { 625sub extension_package($) {
629 my ($path) = @_; 626 my ($path) = @_;
630 627
628 no strict 'refs';
629
631 $extension_pkg{$path} ||= do { 630 $extension_pkg{$path} ||= do {
632 my $pkg = "urxvt::" . ($extension_pkg++); 631 $path =~ /([^\/\\]+)$/;
632 my $pkg = $1;
633 $pkg =~ s/[^[:word:]]/_/g;
634 $pkg = "urxvt::ext::$pkg";
633 635
634 verbose 3, "loading extension '$path' into package '$pkg'"; 636 verbose 3, "loading extension '$path' into package '$pkg'";
635 637
636 open my $fh, "<:raw", $path 638 open my $fh, "<:raw", $path
637 or die "$path: $!"; 639 or die "$path: $!";
638 640
641 @{"$pkg\::ISA"} = urxvt::term::extension::;
642
639 my $source = 643 my $source =
640 "package $pkg; use strict; use utf8;\n" 644 "package $pkg; use strict; use utf8;\n"
641 . "use base urxvt::term::extension::;\n"
642 . "#line 1 \"$path\"\n{\n" 645 . "#line 1 \"$path\"\n{\n"
643 . (do { local $/; <$fh> }) 646 . (do { local $/; <$fh> })
644 . "\n};\n1"; 647 . "\n};\n1";
645 648
646 eval $source 649 eval $source

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines