mirror of
https://github.com/irssi/irssi.git
synced 2026-08-18 16:12:30 +02:00
--enable-perl* -> --with-perl*. Added a new libfe_perl which handles /SCRIPT
commands. /RUN -> /SCRIPT LOAD, /PERLFLUSH -> /SCRIPT FLUSH, /PERL -> /SCRIPT EXEC. Added /SCRIPT UNLOAD, /SCRIPT LIST. Lots of cleanups. filename_complete() has extra argument for "default directory" which is searched if no path is given when completing. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1680 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
parent
2d5edb8c4d
commit
6c2f9c685a
26 changed files with 1052 additions and 506 deletions
44
src/perl/irssi-core.pl
Normal file
44
src/perl/irssi-core.pl
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
# NOTE: this is printed through printf()-like function,
|
||||
# so no extra percent characters.
|
||||
|
||||
# %%s can be used once, it contains the
|
||||
# use Irssi; use Irssi::Irc; etc..
|
||||
package Irssi::Core;
|
||||
|
||||
use Symbol qw(delete_package);
|
||||
use strict;
|
||||
|
||||
sub destroy {
|
||||
my $package = "Irssi::Script::".$_[0];
|
||||
delete_package($package);
|
||||
}
|
||||
|
||||
sub eval_data {
|
||||
my ($data, $id) = @_;
|
||||
destroy($id);
|
||||
|
||||
my $package = "Irssi::Script::$id";
|
||||
my $eval = qq{package $package; %s sub handler { $data; }};
|
||||
{
|
||||
# hide our variables within this block
|
||||
my ($filename, $package, $data);
|
||||
eval $eval;
|
||||
}
|
||||
die $@ if $@;
|
||||
|
||||
eval {$package->handler;};
|
||||
die $@ if $@;
|
||||
}
|
||||
|
||||
sub eval_file {
|
||||
my ($filename, $id) = @_;
|
||||
|
||||
local *FH;
|
||||
open FH, $filename or die "File not found: $filename";
|
||||
local($/) = undef;
|
||||
my $data = <FH>;
|
||||
close FH;
|
||||
$/ = '\n';
|
||||
|
||||
eval_data($data, id);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue