X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Firssi%2Fsrc%2Fperl%2Firssi-core.pl.h;fp=apps%2Firssi%2Fsrc%2Fperl%2Firssi-core.pl.h;h=707508313f32606eab4914060cb304bcc92e92b2;hb=18d69a0a1fec438e241bb4f431506ed59a34066b;hp=9c4dd606f8d0160a286d26e2efca4398f3499d5e;hpb=f7be6adec0248118cddde9b04522c13cd90568cd;p=silc.git diff --git a/apps/irssi/src/perl/irssi-core.pl.h b/apps/irssi/src/perl/irssi-core.pl.h index 9c4dd606..70750831 100644 --- a/apps/irssi/src/perl/irssi-core.pl.h +++ b/apps/irssi/src/perl/irssi-core.pl.h @@ -9,6 +9,12 @@ const char *irssi_core_code = "\n" "use Symbol;\n" "\n" +"$SIG{__WARN__} = sub {\n" +" my @msg = @_;\n" +" s/%%/%%%%/g for @msg;\n" +" print @msg;\n" +"};\n" +"\n" "sub is_static {\n" " return %d;\n" "}\n" @@ -19,33 +25,27 @@ const char *irssi_core_code = "}\n" "\n" "sub eval_data {\n" -" my ($data, $id) = @_;\n" -" destroy(\"Irssi::Script::$id\");\n" -"\n" -" my $package = \"Irssi::Script::$id\";\n" -" my $eval = qq{package $package; %s sub handler { $data; }};\n" -" {\n" -" # hide our variables within this block\n" -" my ($filename, $package, $data);\n" -" eval $eval;\n" -" }\n" -" die $@ if $@;\n" -"\n" -" my $ret;\n" -" eval { $ret = $package->handler; };\n" -" die $@ if $@;\n" -" return $ret;\n" +" my $ret = eval do {\n" +" my ($data, $id) = @_;\n" +" destroy(\"Irssi::Script::$id\");\n" +" my $code = qq{package Irssi::Script::$id; %s $data};\n" +" $code\n" +" };\n" +" $@ and die $@;\n" +" $ret\n" "}\n" "\n" "sub eval_file {\n" " my ($filename, $id) = @_;\n" "\n" -" local *FH;\n" -" open FH, $filename or die \"File not found: $filename\";\n" -" local($/) = undef;\n" -" my $data = ;\n" -" close FH;\n" -" local($/) = \"\\n\";\n" +" open my $fh, '<', $filename or die \"Can't open $filename: $!\";\n" +" my $data = do {local $/; <$fh>};\n" +" close $fh;\n" +"\n" +" $filename =~ s/([\"\\\\])/\\\\$1/g;\n" +" $filename =~ s/\\n/\\\\n/g;\n" +"\n" +" $data = qq{\\n#line 1 \"$filename\"\\n$data};\n" "\n" " eval_data($data, $id);\n" "}\n"