Merged Irssi 0.8.2 from irssi.org cvs.
[silc.git] / apps / irssi / src / perl / common / Irssi.pm
index ce35c52e9bfb3b214514cfb16f197f6d349e21c9..14d3f4dca3a559a65b3c1a864de815a414b27710 100644 (file)
@@ -5,7 +5,7 @@
 package Irssi;
 
 use strict;
-use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
+use vars qw($VERSION $in_irssi @ISA @EXPORT @EXPORT_OK);
 
 sub VERSION {
   my $version = $_[1];
@@ -18,6 +18,10 @@ sub EXPORT_ALL () {
   @EXPORT_OK = grep { /[a-z]/ && defined *{$_}{CODE} } keys %Irssi::;
 }
 
+sub in_irssi {
+  return $in_irssi;
+}
+
 $VERSION = "0.9";
 
 require Exporter;
@@ -35,14 +39,25 @@ require DynaLoader;
 );
 @EXPORT_OK = qw();
 
-bootstrap Irssi $VERSION if (!Irssi::Core::is_static());
+my $static = 0;
+
+eval {
+  $static = Irssi::Core::is_static();
+};
+$in_irssi = $@ ? 0 : 1;
 
-@Irssi::Channel::ISA = qw(Irssi::Windowitem);
-@Irssi::Query::ISA = qw(Irssi::Windowitem);
+if (!in_irssi()) {
+  print "Warning: This script should be run inside irssi\n";
+} else {
+  bootstrap Irssi $VERSION if (!$static);
 
-Irssi::init();
+  @Irssi::Channel::ISA = qw(Irssi::Windowitem);
+  @Irssi::Query::ISA = qw(Irssi::Windowitem);
 
-Irssi::EXPORT_ALL();
+  Irssi::init();
+
+  Irssi::EXPORT_ALL();
+}
 
 1;