Merged Irssi 0.8.2 from irssi.org cvs.
[silc.git] / apps / irssi / src / perl / common / Irssi.pm
1 #
2 # Perl interface to irssi functions.
3 #
4
5 package Irssi;
6
7 use strict;
8 use vars qw($VERSION $in_irssi @ISA @EXPORT @EXPORT_OK);
9
10 sub VERSION {
11   my $version = $_[1];
12   die "This script requires irssi version $version or later"
13     if ($version > version());
14 }
15
16 sub EXPORT_ALL () {
17   no strict 'refs';
18   @EXPORT_OK = grep { /[a-z]/ && defined *{$_}{CODE} } keys %Irssi::;
19 }
20
21 sub in_irssi {
22   return $in_irssi;
23 }
24
25 $VERSION = "0.9";
26
27 require Exporter;
28 require DynaLoader;
29
30 @ISA = qw(Exporter DynaLoader);
31 @EXPORT = qw(INPUT_READ INPUT_WRITE
32         MSGLEVEL_CRAP MSGLEVEL_MSGS MSGLEVEL_PUBLIC MSGLEVEL_NOTICES
33         MSGLEVEL_SNOTES MSGLEVEL_CTCPS MSGLEVEL_ACTIONS MSGLEVEL_JOINS
34         MSGLEVEL_PARTS MSGLEVEL_QUITS MSGLEVEL_KICKS MSGLEVEL_MODES
35         MSGLEVEL_TOPICS MSGLEVEL_WALLOPS MSGLEVEL_INVITES MSGLEVEL_NICKS
36         MSGLEVEL_DCC MSGLEVEL_DCCMSGS MSGLEVEL_CLIENTNOTICE MSGLEVEL_CLIENTCRAP
37         MSGLEVEL_CLIENTERROR MSGLEVEL_HILIGHT MSGLEVEL_ALL MSGLEVEL_NOHILIGHT
38         MSGLEVEL_NO_ACT MSGLEVEL_NEVER MSGLEVEL_LASTLOG
39 );
40 @EXPORT_OK = qw();
41
42 my $static = 0;
43
44 eval {
45   $static = Irssi::Core::is_static();
46 };
47 $in_irssi = $@ ? 0 : 1;
48
49 if (!in_irssi()) {
50   print "Warning: This script should be run inside irssi\n";
51 } else {
52   bootstrap Irssi $VERSION if (!$static);
53
54   @Irssi::Channel::ISA = qw(Irssi::Windowitem);
55   @Irssi::Query::ISA = qw(Irssi::Windowitem);
56
57   Irssi::init();
58
59   Irssi::EXPORT_ALL();
60 }
61
62 1;
63