summaryrefslogtreecommitdiff
path: root/src/perl
diff options
context:
space:
mode:
authorTimo Sirainen <cras@irssi.org>2001-02-22 20:39:35 +0000
committercras <cras@dbcabf3a-b0e7-0310-adc4-f8d773084564>2001-02-22 20:39:35 +0000
commit469fde361894e3e2abda51e9351aae42832aa0a1 (patch)
tree516941c3d28b94573e6fec31556ccc0c38333164 /src/perl
parente2ff4550ea1c77c95db91ebb07eeea8f174e33dc (diff)
downloadirssi-469fde361894e3e2abda51e9351aae42832aa0a1.zip
Verify in configure that linking with perl's LDFLAGS actually works. If
perl lib dir is set, add 'use lib "/perl/lib/dir"' before each script automatically. git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1287 dbcabf3a-b0e7-0310-adc4-f8d773084564
Diffstat (limited to 'src/perl')
-rw-r--r--src/perl/Makefile.am1
-rw-r--r--src/perl/perl.c11
2 files changed, 10 insertions, 2 deletions
diff --git a/src/perl/Makefile.am b/src/perl/Makefile.am
index 5c31d908..4bc66891 100644
--- a/src/perl/Makefile.am
+++ b/src/perl/Makefile.am
@@ -15,6 +15,7 @@ perl.c: perl-signals-list.h
INCLUDES = $(GLIB_CFLAGS) \
-DSCRIPTDIR=\""$(libdir)/irssi/scripts"\" \
+ -DPERL_LIB_DIR=\""$(PERL_LIB_DIR)"\" \
$(PERL_CFLAGS) \
-I$(top_srcdir)/src \
-I$(top_srcdir)/src/core
diff --git a/src/perl/perl.c b/src/perl/perl.c
index 6239b9ed..95d2c2b3 100644
--- a/src/perl/perl.c
+++ b/src/perl/perl.c
@@ -72,7 +72,7 @@ static void irssi_perl_start(void)
" my $sub = <FH>;\n"
" close FH;\n"
"\n"
- " my $eval = qq{package $package; sub handler { $sub; }};\n"
+ " my $eval = qq{package $package; %s sub handler { $sub; }};\n"
" {\n"
" # hide our variables within this block\n"
" my ($filename, $package, $sub);\n"
@@ -83,6 +83,7 @@ static void irssi_perl_start(void)
" eval {$package->handler;};\n"
" die $@ if $@;\n"
"}\n";
+ char *code, *use_code;
perl_signals_start();
perl_sources = NULL;
@@ -91,7 +92,13 @@ static void irssi_perl_start(void)
perl_construct(my_perl);
perl_parse(my_perl, xs_init, 3, args, NULL);
- perl_eval_pv(eval_file_code, TRUE);
+
+ use_code = *PERL_LIB_DIR == '\0' ? "" :
+ "use lib \""PERL_LIB_DIR"\";";
+
+ code = g_strdup_printf(eval_file_code, use_code);
+ perl_eval_pv(code, TRUE);
+ g_free(code);
perl_common_init();
}