1
0
mirror of https://github.com/irssi/irssi.git synced 2024-12-04 14:46:39 -05:00

Dependencies finally work correctly in perl libraries (they're each compiled

separately now). Added statusbar code to available to perl, it's now
possible to create new statusbar items with perl scripts.

statusbar_items_redraw(char *name) can now be used to easily redraw all
named statusbar items in screen.

Probably several other changes I've already forgotten :)


git-svn-id: http://svn.irssi.org/repos/irssi/trunk@1861 dbcabf3a-b0e7-0310-adc4-f8d773084564
This commit is contained in:
Timo Sirainen 2001-10-20 19:52:07 +00:00 committed by cras
parent 17f4d6b5de
commit 76c6e9ab83
48 changed files with 428 additions and 124 deletions

View File

@ -33,7 +33,6 @@
#define MAX_LAG_UNKNOWN_TIME 30 #define MAX_LAG_UNKNOWN_TIME 30
/* activity */ /* activity */
static GSList *activity_items;
static GList *activity_list; static GList *activity_list;
static GHashTable *input_entries; static GHashTable *input_entries;
@ -195,7 +194,7 @@ static void sig_statusbar_activity_hilight(WINDOW_REC *window, gpointer oldlevel
activity_list = g_list_remove(activity_list, window); activity_list = g_list_remove(activity_list, window);
if (window->data_level != 0) if (window->data_level != 0)
activity_list = g_list_prepend(activity_list, window); activity_list = g_list_prepend(activity_list, window);
statusbar_items_redraw(activity_items); statusbar_items_redraw("act");
return; return;
} }
@ -204,12 +203,12 @@ static void sig_statusbar_activity_hilight(WINDOW_REC *window, gpointer oldlevel
if (window->data_level == 0) { if (window->data_level == 0) {
/* remove from activity list */ /* remove from activity list */
activity_list = g_list_remove(activity_list, window); activity_list = g_list_remove(activity_list, window);
statusbar_items_redraw(activity_items); statusbar_items_redraw("act");
} else if (window->data_level != GPOINTER_TO_INT(oldlevel) || } else if (window->data_level != GPOINTER_TO_INT(oldlevel) ||
window->hilight_color != 0) { window->hilight_color != 0) {
/* different level as last time (or maybe different /* different level as last time (or maybe different
hilight color?), just redraw it. */ hilight color?), just redraw it. */
statusbar_items_redraw(activity_items); statusbar_items_redraw("act");
} }
return; return;
} }
@ -231,7 +230,7 @@ static void sig_statusbar_activity_hilight(WINDOW_REC *window, gpointer oldlevel
if (tmp == NULL) if (tmp == NULL)
activity_list = g_list_append(activity_list, window); activity_list = g_list_append(activity_list, window);
statusbar_items_redraw(activity_items); statusbar_items_redraw("act");
} }
static void sig_statusbar_activity_window_destroyed(WINDOW_REC *window) static void sig_statusbar_activity_window_destroyed(WINDOW_REC *window)
@ -240,12 +239,12 @@ static void sig_statusbar_activity_window_destroyed(WINDOW_REC *window)
if (g_list_find(activity_list, window) != NULL) if (g_list_find(activity_list, window) != NULL)
activity_list = g_list_remove(activity_list, window); activity_list = g_list_remove(activity_list, window);
statusbar_items_redraw(activity_items); statusbar_items_redraw("act");
} }
static void sig_statusbar_activity_updated(void) static void sig_statusbar_activity_updated(void)
{ {
statusbar_items_redraw(activity_items); statusbar_items_redraw("act");
} }
static void item_more(SBAR_ITEM_REC *item, int get_size_only) static void item_more(SBAR_ITEM_REC *item, int get_size_only)
@ -276,17 +275,8 @@ static void item_input(SBAR_ITEM_REC *item, int get_size_only)
} }
} }
static void sig_statusbar_item_created(SBAR_ITEM_REC *item)
{
if (item->func == item_act)
activity_items = g_slist_prepend(activity_items, item);
}
static void sig_statusbar_item_destroyed(SBAR_ITEM_REC *item) static void sig_statusbar_item_destroyed(SBAR_ITEM_REC *item)
{ {
if (item->func == item_act)
activity_items = g_slist_remove(activity_items, item);
else {
GUI_ENTRY_REC *rec; GUI_ENTRY_REC *rec;
rec = g_hash_table_lookup(input_entries, item); rec = g_hash_table_lookup(input_entries, item);
@ -295,7 +285,6 @@ static void sig_statusbar_item_destroyed(SBAR_ITEM_REC *item)
g_hash_table_remove(input_entries, item); g_hash_table_remove(input_entries, item);
} }
} }
}
void statusbar_items_init(void) void statusbar_items_init(void)
{ {
@ -319,7 +308,6 @@ void statusbar_items_init(void)
signal_add("window destroyed", (SIGNAL_FUNC) sig_statusbar_activity_window_destroyed); signal_add("window destroyed", (SIGNAL_FUNC) sig_statusbar_activity_window_destroyed);
signal_add("window refnum changed", (SIGNAL_FUNC) sig_statusbar_activity_updated); signal_add("window refnum changed", (SIGNAL_FUNC) sig_statusbar_activity_updated);
signal_add("statusbar item created", (SIGNAL_FUNC) sig_statusbar_item_created);
signal_add("statusbar item destroyed", (SIGNAL_FUNC) sig_statusbar_item_destroyed); signal_add("statusbar item destroyed", (SIGNAL_FUNC) sig_statusbar_item_destroyed);
} }
@ -334,6 +322,5 @@ void statusbar_items_deinit(void)
g_list_free(activity_list); g_list_free(activity_list);
activity_list = NULL; activity_list = NULL;
signal_remove("statusbar item created", (SIGNAL_FUNC) sig_statusbar_item_created);
signal_remove("statusbar item destroyed", (SIGNAL_FUNC) sig_statusbar_item_destroyed); signal_remove("statusbar item destroyed", (SIGNAL_FUNC) sig_statusbar_item_destroyed);
} }

View File

@ -39,10 +39,11 @@ STATUSBAR_GROUP_REC *active_statusbar_group;
sbar_item_funcs: char *name => STATUSBAR_FUNC func sbar_item_funcs: char *name => STATUSBAR_FUNC func
sbar_signal_items: int signal_id => GSList *(SBAR_ITEM_REC *items) sbar_signal_items: int signal_id => GSList *(SBAR_ITEM_REC *items)
sbar_item_signals: SBAR_ITEM_REC *item => GSList *(int *signal_ids) sbar_item_signals: SBAR_ITEM_REC *item => GSList *(int *signal_ids)
named_sbar_items: const char *name => GSList *(SBAR_ITEM_REC *items)
*/ */
static GHashTable *sbar_item_defs, *sbar_item_funcs; static GHashTable *sbar_item_defs, *sbar_item_funcs;
static GHashTable *sbar_signal_items, *sbar_item_signals; static GHashTable *sbar_signal_items, *sbar_item_signals;
static GHashTable *named_sbar_items;
void statusbar_item_register(const char *name, const char *value, void statusbar_item_register(const char *name, const char *value,
STATUSBAR_FUNC func) STATUSBAR_FUNC func)
@ -322,6 +323,12 @@ void statusbar_item_redraw(SBAR_ITEM_REC *item)
active_win = old_active_win; active_win = old_active_win;
} }
void statusbar_items_redraw(const char *name)
{
g_slist_foreach(g_hash_table_lookup(named_sbar_items, name),
(GFunc) statusbar_item_redraw, NULL);
}
static void statusbars_recalc_ypos(STATUSBAR_REC *bar) static void statusbars_recalc_ypos(STATUSBAR_REC *bar)
{ {
GSList *tmp, *bar_group; GSList *tmp, *bar_group;
@ -532,6 +539,32 @@ void statusbar_destroy(STATUSBAR_REC *bar)
g_free(bar); g_free(bar);
} }
void statusbar_recreate_items(STATUSBAR_REC *bar)
{
GSList *tmp;
/* destroy */
while (bar->items != NULL)
statusbar_item_destroy(bar->items->data);
/* create */
for (tmp = bar->config->items; tmp != NULL; tmp = tmp->next) {
SBAR_ITEM_CONFIG_REC *rec = tmp->data;
statusbar_item_create(bar, rec);
}
statusbar_redraw(bar);
}
void statusbars_recreate_items(void)
{
if (active_statusbar_group != NULL) {
g_slist_foreach(active_statusbar_group->bars,
(GFunc) statusbar_recreate_items, NULL);
}
}
STATUSBAR_REC *statusbar_find(STATUSBAR_GROUP_REC *group, const char *name, STATUSBAR_REC *statusbar_find(STATUSBAR_GROUP_REC *group, const char *name,
MAIN_WINDOW_REC *window) MAIN_WINDOW_REC *window)
{ {
@ -782,6 +815,7 @@ SBAR_ITEM_REC *statusbar_item_create(STATUSBAR_REC *bar,
SBAR_ITEM_CONFIG_REC *config) SBAR_ITEM_CONFIG_REC *config)
{ {
SBAR_ITEM_REC *rec; SBAR_ITEM_REC *rec;
GSList *items;
g_return_val_if_fail(bar != NULL, NULL); g_return_val_if_fail(bar != NULL, NULL);
g_return_val_if_fail(config != NULL, NULL); g_return_val_if_fail(config != NULL, NULL);
@ -797,6 +831,10 @@ SBAR_ITEM_REC *statusbar_item_create(STATUSBAR_REC *bar,
rec->func = statusbar_item_default_func; rec->func = statusbar_item_default_func;
statusbar_item_default_signals(rec); statusbar_item_default_signals(rec);
items = g_hash_table_lookup(named_sbar_items, config->name);
items = g_slist_append(items, rec);
g_hash_table_insert(named_sbar_items, config->name, items);
signal_emit("statusbar item created", 1, rec); signal_emit("statusbar item created", 1, rec);
return rec; return rec;
} }
@ -834,6 +872,14 @@ void statusbar_item_destroy(SBAR_ITEM_REC *item)
g_return_if_fail(item != NULL); g_return_if_fail(item != NULL);
item->bar->items = g_slist_remove(item->bar->items, item); item->bar->items = g_slist_remove(item->bar->items, item);
list = g_hash_table_lookup(named_sbar_items, item->config->name);
list = g_slist_remove(list, item);
if (list == NULL)
g_hash_table_remove(named_sbar_items, item->config->name);
else
g_hash_table_insert(named_sbar_items, item->config->name, list);
signal_emit("statusbar item destroyed", 1, item); signal_emit("statusbar item destroyed", 1, item);
list = g_hash_table_lookup(sbar_item_signals, item); list = g_hash_table_lookup(sbar_item_signals, item);
@ -950,6 +996,8 @@ void statusbar_init(void)
(GCompareFunc) g_direct_equal); (GCompareFunc) g_direct_equal);
sbar_item_signals = g_hash_table_new((GHashFunc) g_direct_hash, sbar_item_signals = g_hash_table_new((GHashFunc) g_direct_hash,
(GCompareFunc) g_direct_equal); (GCompareFunc) g_direct_equal);
named_sbar_items = g_hash_table_new((GHashFunc) g_str_hash,
(GCompareFunc) g_str_equal);
signal_add("terminal resized", (SIGNAL_FUNC) sig_terminal_resized); signal_add("terminal resized", (SIGNAL_FUNC) sig_terminal_resized);
signal_add("mainwindow resized", (SIGNAL_FUNC) sig_mainwindow_resized); signal_add("mainwindow resized", (SIGNAL_FUNC) sig_mainwindow_resized);
@ -980,6 +1028,7 @@ void statusbar_deinit(void)
g_hash_table_foreach(sbar_item_signals, g_hash_table_foreach(sbar_item_signals,
(GHFunc) statusbar_item_signal_destroy, NULL); (GHFunc) statusbar_item_signal_destroy, NULL);
g_hash_table_destroy(sbar_item_signals); g_hash_table_destroy(sbar_item_signals);
g_hash_table_destroy(named_sbar_items);
signal_remove("terminal resized", (SIGNAL_FUNC) sig_terminal_resized); signal_remove("terminal resized", (SIGNAL_FUNC) sig_terminal_resized);
signal_remove("mainwindow resized", (SIGNAL_FUNC) sig_mainwindow_resized); signal_remove("mainwindow resized", (SIGNAL_FUNC) sig_mainwindow_resized);

View File

@ -100,8 +100,10 @@ void statusbar_item_default_handler(SBAR_ITEM_REC *item, int get_size_only,
/* redraw statusbar, NULL = all */ /* redraw statusbar, NULL = all */
void statusbar_redraw(STATUSBAR_REC *bar); void statusbar_redraw(STATUSBAR_REC *bar);
void statusbar_item_redraw(SBAR_ITEM_REC *item); void statusbar_item_redraw(SBAR_ITEM_REC *item);
#define statusbar_items_redraw(list) \ void statusbar_items_redraw(const char *name);
g_slist_foreach(list, (GFunc) statusbar_item_redraw, NULL);
void statusbar_recreate_items(STATUSBAR_REC *bar);
void statusbars_recreate_items(void);
void statusbar_init(void); void statusbar_init(void);
void statusbar_deinit(void); void statusbar_deinit(void);

View File

@ -90,9 +90,9 @@ IRC_SOURCES = \
irc/Irc.xs \ irc/Irc.xs \
irc/Irc.pm \ irc/Irc.pm \
irc/Dcc.xs \ irc/Dcc.xs \
irc/IrcChannel.xs \ irc/Channel.xs \
irc/IrcQuery.xs \ irc/Query.xs \
irc/IrcServer.xs \ irc/Server.xs \
irc/Modes.xs \ irc/Modes.xs \
irc/Netsplit.xs \ irc/Netsplit.xs \
irc/Notifylist.xs \ irc/Notifylist.xs \
@ -114,6 +114,7 @@ TEXTUI_SOURCES = \
textui/TextUI.pm \ textui/TextUI.pm \
textui/TextBuffer.xs \ textui/TextBuffer.xs \
textui/TextBufferView.xs \ textui/TextBufferView.xs \
textui/Statusbar.xs \
textui/Makefile.PL.in \ textui/Makefile.PL.in \
textui/typemap \ textui/typemap \
textui/module.h textui/module.h

View File

@ -1,7 +1,7 @@
Makefile Makefile
Makefile.PL Makefile.PL
Irssi.c
Irssi.bs Irssi.bs
*.c
*.o *.o
pm_to_blib pm_to_blib
blib blib

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Channel PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
channels() channels()
@ -18,7 +21,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Server MODULE = Irssi::Channel PACKAGE = Irssi::Server
#******************************* #*******************************
void void
@ -68,7 +71,7 @@ PPCODE:
g_slist_free(list); g_slist_free(list);
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Channel PREFIX = channel_ MODULE = Irssi::Channel PACKAGE = Irssi::Channel PREFIX = channel_
#******************************* #*******************************
void void

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Core PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
signal_emit(signal, ...) signal_emit(signal, ...)
@ -374,7 +377,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Server MODULE = Irssi::Core PACKAGE = Irssi::Server
#******************************* #*******************************
char * char *
@ -389,7 +392,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Windowitem MODULE = Irssi::Core PACKAGE = Irssi::Windowitem
#******************************* #*******************************
char * char *

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Ignore PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
ignores() ignores()
@ -22,7 +25,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Server MODULE = Irssi::Ignore PACKAGE = Irssi::Server
#******************************* #*******************************
int int
@ -35,7 +38,7 @@ ignore_check(server, nick, host, channel, text, level)
int level int level
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Ignore PREFIX = ignore_ MODULE = Irssi::Ignore PACKAGE = Irssi::Ignore PREFIX = ignore_
#******************************* #*******************************
void void

View File

@ -7,7 +7,7 @@ package Irssi;
use strict; use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
$VERSION = "0.8"; $VERSION = "0.9";
require Exporter; require Exporter;
require DynaLoader; require DynaLoader;

View File

@ -9,12 +9,17 @@ init()
CODE: CODE:
perl_api_version_check("Irssi"); perl_api_version_check("Irssi");
INCLUDE: Channel.xs void
INCLUDE: Core.xs deinit()
INCLUDE: Ignore.xs CODE:
INCLUDE: Log.xs
INCLUDE: Masks.xs BOOT:
INCLUDE: Query.xs irssi_boot(Channel);
INCLUDE: Rawlog.xs irssi_boot(Core);
INCLUDE: Server.xs irssi_boot(Ignore);
INCLUDE: Settings.xs irssi_boot(Log);
irssi_boot(Masks);
irssi_boot(Query);
irssi_boot(Rawlog);
irssi_boot(Server);
irssi_boot(Settings);

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Log PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
logs() logs()
@ -19,7 +22,7 @@ log_find(fname)
char *fname char *fname
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Log PREFIX = log_ MODULE = Irssi::Log PACKAGE = Irssi::Log PREFIX = log_
#******************************* #*******************************
void void

View File

@ -2,5 +2,6 @@ use ExtUtils::MakeMaker;
WriteMakefile('NAME' => 'Irssi', WriteMakefile('NAME' => 'Irssi',
'LIBS' => '', 'LIBS' => '',
'OBJECT' => '$(O_FILES)',
'INC' => '-I../../.. -I@top_srcdir@ -I@top_srcdir@/src -I@top_srcdir@/src/core @GLIB_CFLAGS@', 'INC' => '-I../../.. -I@top_srcdir@ -I@top_srcdir@/src -I@top_srcdir@/src/core @GLIB_CFLAGS@',
'VERSION_FROM' => '@srcdir@/Irssi.pm'); 'VERSION_FROM' => '@srcdir@/Irssi.pm');

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Masks PACKAGE = Irssi
PROTOTYPES: ENABLE
int int
mask_match(mask, nick, user, host) mask_match(mask, nick, user, host)
@ -32,7 +35,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Server MODULE = Irssi::Masks PACKAGE = Irssi::Server
#******************************* #*******************************
int int

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Query PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
queries() queries()
@ -20,7 +23,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Server MODULE = Irssi::Query PACKAGE = Irssi::Server
#******************************* #*******************************
void void
@ -41,7 +44,7 @@ query_find(server, nick)
char *nick char *nick
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Query PREFIX = query_ MODULE = Irssi::Query PACKAGE = Irssi::Query PREFIX = query_
#******************************* #*******************************
void void

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Rawlog PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
rawlog_set_size(lines) rawlog_set_size(lines)
@ -8,7 +11,7 @@ Irssi::Rawlog
rawlog_create() rawlog_create()
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Rawlog PREFIX = rawlog_ MODULE = Irssi::Rawlog PACKAGE = Irssi::Rawlog PREFIX = rawlog_
#******************************* #*******************************
void void

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Server PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
servers() servers()
@ -36,7 +39,7 @@ server_find_chatnet(chatnet)
char *chatnet char *chatnet
#******************************* #*******************************
MODULE = Irssi PACKAGE = Irssi::Server PREFIX = server_ MODULE = Irssi::Server PACKAGE = Irssi::Server PREFIX = server_
#******************************* #*******************************
void void

View File

@ -1,4 +1,7 @@
MODULE = Irssi PACKAGE = Irssi #include "module.h"
MODULE = Irssi::Settings PACKAGE = Irssi
PROTOTYPES: ENABLE
char * char *
settings_get_str(key) settings_get_str(key)

View File

@ -1,7 +1,7 @@
Makefile Makefile
Makefile.PL Makefile.PL
Irc.c
Irc.bs Irc.bs
*.c
*.o *.o
pm_to_blib pm_to_blib
blib blib

View File

@ -1,4 +1,7 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Channel PREFIX = irc_ #include "module.h"
MODULE = Irssi::Irc::Channel PACKAGE = Irssi::Irc::Channel PREFIX = irc_
PROTOTYPES: ENABLE
void void
bans(channel) bans(channel)
@ -42,7 +45,7 @@ CODE:
OUTPUT: OUTPUT:
RETVAL RETVAL
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Server PREFIX = irc_ MODULE = Irssi::Irc::Channel PACKAGE = Irssi::Irc::Server PREFIX = irc_
Irssi::Irc::Channel Irssi::Irc::Channel
irc_channel_create(server, name, automatic) irc_channel_create(server, name, automatic)

View File

@ -1,4 +1,7 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc #include "module.h"
MODULE = Irssi::Irc::Dcc PACKAGE = Irssi::Irc
PROTOTYPES: ENABLE
void void
dccs() dccs()
@ -60,7 +63,7 @@ dcc_get_download_path(fname)
char *fname char *fname
#******************************* #*******************************
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Dcc PREFIX = dcc_ MODULE = Irssi::Irc::Dcc PACKAGE = Irssi::Irc::Dcc PREFIX = dcc_
#******************************* #*******************************
void void
@ -85,7 +88,7 @@ dcc_reject(dcc, server)
Irssi::Irc::Server server Irssi::Irc::Server server
#******************************* #*******************************
MODULE = Irssi::Irc PACKAGE = Irssi::Windowitem PREFIX = item_ MODULE = Irssi::Irc::Dcc PACKAGE = Irssi::Windowitem PREFIX = item_
#******************************* #*******************************
Irssi::Irc::Dcc::Chat Irssi::Irc::Dcc::Chat

View File

@ -7,7 +7,7 @@ package Irssi::Irc;
use strict; use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
$VERSION = "0.8"; $VERSION = "0.9";
require Exporter; require Exporter;
require DynaLoader; require DynaLoader;

View File

@ -178,11 +178,15 @@ CODE:
"@Irssi::Irc::Dcc::Send::ISA = qw(Irssi::Irc::Dcc);\n", "@Irssi::Irc::Dcc::Send::ISA = qw(Irssi::Irc::Dcc);\n",
TRUE); TRUE);
INCLUDE: IrcServer.xs void
INCLUDE: IrcChannel.xs deinit()
INCLUDE: IrcQuery.xs CODE:
INCLUDE: Modes.xs
INCLUDE: Netsplit.xs
INCLUDE: Dcc.xs BOOT:
INCLUDE: Notifylist.xs irssi_boot(Irc__Channel);
irssi_boot(Irc__Dcc);
irssi_boot(Irc__Modes);
irssi_boot(Irc__Netsplit);
irssi_boot(Irc__Notifylist);
irssi_boot(Irc__Query);
irssi_boot(Irc__Server);

View File

@ -1,7 +0,0 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Server PREFIX = irc_
Irssi::Irc::Query
irc_query_create(server_tag, nick, automatic)
char *server_tag
char *nick
int automatic

View File

@ -2,6 +2,7 @@ use ExtUtils::MakeMaker;
WriteMakefile('NAME' => 'Irssi::Irc', WriteMakefile('NAME' => 'Irssi::Irc',
'LIBS' => '', 'LIBS' => '',
'OBJECT' => '$(O_FILES)',
'TYPEMAPS' => ['../common/typemap'], 'TYPEMAPS' => ['../common/typemap'],
'INC' => '-I../../.. -I@top_srcdir@/src -I@top_srcdir@/src/core -I@top_srcdir@/src/irc/core -I@top_srcdir@/src/irc @GLIB_CFLAGS@', 'INC' => '-I../../.. -I@top_srcdir@/src -I@top_srcdir@/src/core -I@top_srcdir@/src/irc/core -I@top_srcdir@/src/irc @GLIB_CFLAGS@',
'VERSION_FROM' => '@srcdir@/Irc.pm'); 'VERSION_FROM' => '@srcdir@/Irc.pm');

View File

@ -1,4 +1,7 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc #include "module.h"
MODULE = Irssi::Irc::Modes PACKAGE = Irssi::Irc
PROTOTYPES: ENABLE
char * char *
modes_join(old, mode, channel) modes_join(old, mode, channel)
@ -7,7 +10,7 @@ modes_join(old, mode, channel)
int channel int channel
#******************************* #*******************************
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Channel PREFIX = channel_ MODULE = Irssi::Irc::Modes PACKAGE = Irssi::Irc::Channel PREFIX = channel_
#******************************* #*******************************
char * char *

View File

@ -1,4 +1,7 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Server #include "module.h"
MODULE = Irssi::Irc::Netsplit PACKAGE = Irssi::Irc::Server
PROTOTYPES: ENABLE
Irssi::Irc::Netsplit Irssi::Irc::Netsplit
netsplit_find(server, nick, address) netsplit_find(server, nick, address)

View File

@ -1,4 +1,7 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc #include "module.h"
MODULE = Irssi::Irc::Notifylist PACKAGE = Irssi::Irc
PROTOTYPES: ENABLE
void void
notifies() notifies()
@ -31,7 +34,7 @@ notifylist_find(mask, ircnet)
char *ircnet char *ircnet
#******************************* #*******************************
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Server MODULE = Irssi::Irc::Notifylist PACKAGE = Irssi::Irc::Server
#******************************* #*******************************
int int
@ -40,7 +43,7 @@ notifylist_ison_server(server, nick)
char *nick char *nick
#******************************* #*******************************
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Notifylist PREFIX = notifylist_ MODULE = Irssi::Irc::Notifylist PACKAGE = Irssi::Irc::Notifylist PREFIX = notifylist_
#******************************* #*******************************
int int

10
src/perl/irc/Query.xs Normal file
View File

@ -0,0 +1,10 @@
#include "module.h"
MODULE = Irssi::Irc::Query PACKAGE = Irssi::Irc::Server PREFIX = irc_
PROTOTYPES: ENABLE
Irssi::Irc::Query
irc_query_create(server_tag, nick, automatic)
char *server_tag
char *nick
int automatic

View File

@ -1,4 +1,7 @@
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Server PREFIX = irc_server_ #include "module.h"
MODULE = Irssi::Irc::Server PACKAGE = Irssi::Irc::Server PREFIX = irc_server_
PROTOTYPES: ENABLE
char * char *
irc_server_get_channels(server) irc_server_get_channels(server)
@ -32,7 +35,7 @@ ctcp_send_reply(server, data)
Irssi::Irc::Server server Irssi::Irc::Server server
char *data char *data
MODULE = Irssi::Irc PACKAGE = Irssi::Irc::Connect PREFIX = irc_server_ MODULE = Irssi::Irc::Server PACKAGE = Irssi::Irc::Connect PREFIX = irc_server_
Irssi::Irc::Server Irssi::Irc::Server
irc_server_connect(conn) irc_server_connect(conn)

View File

@ -22,4 +22,4 @@ extern PerlInterpreter *my_perl; /* must be called my_perl or some perl implemen
/* Change this every time when some API changes between irssi's perl module /* Change this every time when some API changes between irssi's perl module
and irssi's perl libraries. */ and irssi's perl libraries. */
#define IRSSI_PERL_API_VERSION 20011020 #define IRSSI_PERL_API_VERSION 20011021

View File

@ -190,6 +190,16 @@ char *perl_get_use_list(void)
return ret; return ret;
} }
void irssi_callXS(void (*subaddr)(CV* cv), CV *cv, SV **mark)
{
dSP;
PUSHMARK(mark);
(*subaddr)(cv);
PUTBACK;
}
void perl_connect_fill_hash(HV *hv, SERVER_CONNECT_REC *conn) void perl_connect_fill_hash(HV *hv, SERVER_CONNECT_REC *conn)
{ {
char *type, *chat_type; char *type, *chat_type;

View File

@ -48,6 +48,12 @@ void irssi_add_plains(PLAIN_OBJECT_INIT_REC *objects);
char *perl_get_use_list(void); char *perl_get_use_list(void);
#define irssi_boot(x) { \
extern void boot_Irssi__##x(CV *cv); \
irssi_callXS(boot_Irssi__##x, cv, mark); \
}
void irssi_callXS(void (*subaddr)(CV* cv), CV *cv, SV **mark);
void perl_common_start(void); void perl_common_start(void);
void perl_common_stop(void); void perl_common_stop(void);

View File

@ -121,6 +121,7 @@ void perl_scripts_deinit(void)
perl_common_stop(); perl_common_stop();
/* Unload all perl libraries loaded with dynaloader */ /* Unload all perl libraries loaded with dynaloader */
perl_eval_pv("foreach my $lib (@DynaLoader::dl_modules) { if ($lib =~ /^Irssi\\b/) { $lib .= '::deinit();'; eval $lib; } }", TRUE);
perl_eval_pv("foreach my $lib (@DynaLoader::dl_librefs) { DynaLoader::dl_unload_file($lib); }", TRUE); perl_eval_pv("foreach my $lib (@DynaLoader::dl_librefs) { DynaLoader::dl_unload_file($lib); }", TRUE);
/* perl interpreter */ /* perl interpreter */

View File

@ -1,7 +1,7 @@
Makefile Makefile
Makefile.PL Makefile.PL
TextUI.c
TextUI.bs TextUI.bs
*.c
*.o *.o
pm_to_blib pm_to_blib
blib blib

View File

@ -2,6 +2,7 @@ use ExtUtils::MakeMaker;
WriteMakefile('NAME' => 'Irssi::TextUI', WriteMakefile('NAME' => 'Irssi::TextUI',
'LIBS' => '', 'LIBS' => '',
'OBJECT' => '$(O_FILES)',
'TYPEMAPS' => ['../common/typemap', '../ui/typemap'], 'TYPEMAPS' => ['../common/typemap', '../ui/typemap'],
'INC' => '-I../../.. -I@top_srcdir@/src -I@top_srcdir@/src/core -I@top_srcdir@/src/fe-common/core -I@top_srcdir@/src/fe-text @GLIB_CFLAGS@', 'INC' => '-I../../.. -I@top_srcdir@/src -I@top_srcdir@/src/core -I@top_srcdir@/src/fe-common/core -I@top_srcdir@/src/fe-text @GLIB_CFLAGS@',
'VERSION_FROM' => '@srcdir@/TextUI.pm'); 'VERSION_FROM' => '@srcdir@/TextUI.pm');

View File

@ -0,0 +1,159 @@
#include "module.h"
static GHashTable *perl_sbar_defs;
static int check_sbar_destroy(char *key, char *value, char *script)
{
if (strncmp(key, script, strlen(script)) == 0 &&
key[strlen(script)] == ':') {
g_free(key);
g_free(value);
return TRUE;
}
return FALSE;
}
static void sig_script_destroy(PERL_SCRIPT_REC *script)
{
g_hash_table_foreach_remove(perl_sbar_defs,
(GHRFunc) check_sbar_destroy,
script->name);
}
void perl_statusbar_init(void)
{
perl_sbar_defs = g_hash_table_new((GHashFunc) g_str_hash,
(GCompareFunc) g_str_equal);
signal_add("script destroy", (SIGNAL_FUNC) sig_script_destroy);
}
static void statusbar_item_def_destroy(void *key, void *value)
{
g_free(key);
g_free(value);
}
void perl_statusbar_deinit(void)
{
signal_remove("script destroy", (SIGNAL_FUNC) sig_script_destroy);
g_hash_table_foreach(perl_sbar_defs,
(GHFunc) statusbar_item_def_destroy, NULL);
g_hash_table_destroy(perl_sbar_defs);
}
static void perl_statusbar_event(char *function, SBAR_ITEM_REC *item,
int get_size_only)
{
dSP;
int retcount;
SV *item_sv, **sv;
HV *hv;
ENTER;
SAVETMPS;
PUSHMARK(SP);
item_sv = plain_bless(item, "Irssi::TextUI::StatusbarItem");
XPUSHs(sv_2mortal(item_sv));
XPUSHs(sv_2mortal(newSViv(get_size_only)));
PUTBACK;
retcount = perl_call_pv(function, G_EVAL|G_DISCARD);
SPAGAIN;
if (SvTRUE(ERRSV)) {
STRLEN n_a;
char *package;
package = perl_function_get_package(function);
signal_emit("script error", 2,
perl_script_find_package(package),
SvPV(ERRSV, n_a));
g_free(package);
}
/* min_size and max_size can be changed, move them to SBAR_ITEM_REC */
hv = hvref(item_sv);
if (hv != NULL) {
sv = hv_fetch(hv, "min_size", 8, 0);
if (sv != NULL) item->min_size = SvIV(*sv);
sv = hv_fetch(hv, "max_size", 8, 0);
if (sv != NULL) item->max_size = SvIV(*sv);
}
PUTBACK;
FREETMPS;
LEAVE;
}
static void sig_perl_statusbar(SBAR_ITEM_REC *item, int get_size_only)
{
char *function;
function = g_hash_table_lookup(perl_sbar_defs, item->config->name);
if (function != NULL)
perl_statusbar_event(function, item, get_size_only);
else {
/* use default function - this shouldn't actually happen.. */
statusbar_item_default_handler(item, get_size_only, NULL, "", TRUE);
}
}
MODULE = Irssi::TextUI::Statusbar PACKAGE = Irssi
PROTOTYPES: ENABLE
void
statusbar_item_register(name, value, func = NULL)
char *name
char *value
char *func
CODE:
statusbar_item_register(name, value, func == NULL || *func == '\0' ? NULL : sig_perl_statusbar);
if (func != NULL) {
g_hash_table_insert(perl_sbar_defs, g_strdup(name),
g_strdup_printf("%s::%s", perl_get_package(), func));
}
void
statusbar_item_unregister(name)
char *name
PREINIT:
gpointer key, value;
CODE:
if (g_hash_table_lookup_extended(perl_sbar_defs, name, &key, &value)) {
g_hash_table_remove(perl_sbar_defs, name);
g_free(key);
g_free(value);
}
statusbar_item_unregister(name);
void
statusbar_items_redraw(name)
char *name
void
statusbars_recreate_items()
#*******************************
MODULE = Irssi::TextUI::Statusbar PACKAGE = Irssi::TextUI::StatusbarItem PREFIX = statusbar_item_
#*******************************
void
statusbar_item_default_handler(item, get_size_only, str, data, escape_vars = TRUE)
Irssi::TextUI::StatusbarItem item
int get_size_only
char *str
char *data
int escape_vars
PREINIT:
HV *hv;
CODE:
statusbar_item_default_handler(item, get_size_only,
*str == '\0' ? NULL : str,
data, escape_vars);
hv = hvref(ST(0));
hv_store(hv, "min_size", 8, newSViv(item->min_size), 0);
hv_store(hv, "max_size", 8, newSViv(item->max_size), 0);

View File

@ -1,10 +1,13 @@
MODULE = Irssi::TextUI PACKAGE = Irssi #include "module.h"
MODULE = Irssi::TextUI::TextBuffer PACKAGE = Irssi
PROTOTYPES: ENABLE
Irssi::TextUI::TextBuffer Irssi::TextUI::TextBuffer
textbuffer_create() textbuffer_create()
#******************************* #*******************************
MODULE = Irssi::TextUI PACKAGE = Irssi::TextUI::TextBuffer PREFIX = textbuffer_ MODULE = Irssi::TextUI::TextBuffer PACKAGE = Irssi::TextUI::TextBuffer PREFIX = textbuffer_
#******************************* #*******************************
void void
@ -36,7 +39,7 @@ textbuffer_remove_all_lines(buffer)
Irssi::TextUI::TextBuffer buffer Irssi::TextUI::TextBuffer buffer
#******************************* #*******************************
MODULE = Irssi::TextUI PACKAGE = Irssi::TextUI::Line PREFIX = textbuffer_line_ MODULE = Irssi::TextUI::TextBuffer PACKAGE = Irssi::TextUI::Line PREFIX = textbuffer_line_
#******************************* #*******************************
Irssi::TextUI::Line Irssi::TextUI::Line

View File

@ -1,4 +1,7 @@
MODULE = Irssi::TextUI PACKAGE = Irssi::TextUI::TextBuffer PREFIX = textbuffer_ #include "module.h"
MODULE = Irssi::TextUI::TextBufferView PACKAGE = Irssi::TextUI::TextBuffer PREFIX = textbuffer_
PROTOTYPES: ENABLE
Irssi::TextUI::TextBufferView Irssi::TextUI::TextBufferView
textbuffer_view_create(buffer, width, height, default_indent, longword_noindent, scroll) textbuffer_view_create(buffer, width, height, default_indent, longword_noindent, scroll)
@ -10,7 +13,7 @@ textbuffer_view_create(buffer, width, height, default_indent, longword_noindent,
int scroll int scroll
#******************************* #*******************************
MODULE = Irssi::TextUI PACKAGE = Irssi::TextUI::TextBufferView PREFIX = textbuffer_view_ MODULE = Irssi::TextUI::TextBufferView PACKAGE = Irssi::TextUI::TextBufferView PREFIX = textbuffer_view_
#******************************* #*******************************
void void
@ -92,7 +95,7 @@ textbuffer_view_redraw(view)
Irssi::TextUI::TextBufferView view Irssi::TextUI::TextBufferView view
#******************************* #*******************************
MODULE = Irssi::TextUI PACKAGE = Irssi::UI::Window MODULE = Irssi::TextUI::TextBufferView PACKAGE = Irssi::UI::Window
#******************************* #*******************************
Irssi::TextUI::TextBufferView Irssi::TextUI::TextBufferView

View File

@ -7,7 +7,7 @@ package Irssi::TextUI;
use strict; use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
$VERSION = "0.8"; $VERSION = "0.9";
require Exporter; require Exporter;
require DynaLoader; require DynaLoader;

View File

@ -61,6 +61,14 @@ static void perl_line_info_fill_hash(HV *hv, LINE_INFO_REC *info)
hv_store(hv, "time", 4, newSViv(info->time), 0); hv_store(hv, "time", 4, newSViv(info->time), 0);
} }
static void perl_statusbar_item_fill_hash(HV *hv, SBAR_ITEM_REC *item)
{
hv_store(hv, "min_size", 8, newSViv(item->min_size), 0);
hv_store(hv, "max_size", 8, newSViv(item->max_size), 0);
hv_store(hv, "xpos", 4, newSViv(item->xpos), 0);
hv_store(hv, "size", 4, newSViv(item->size), 0);
}
static PLAIN_OBJECT_INIT_REC textui_plains[] = { static PLAIN_OBJECT_INIT_REC textui_plains[] = {
{ "Irssi::TextUI::MainWindow", (PERL_OBJECT_FUNC) perl_main_window_fill_hash }, { "Irssi::TextUI::MainWindow", (PERL_OBJECT_FUNC) perl_main_window_fill_hash },
{ "Irssi::TextUI::TextBuffer", (PERL_OBJECT_FUNC) perl_text_buffer_fill_hash }, { "Irssi::TextUI::TextBuffer", (PERL_OBJECT_FUNC) perl_text_buffer_fill_hash },
@ -68,6 +76,7 @@ static PLAIN_OBJECT_INIT_REC textui_plains[] = {
{ "Irssi::TextUI::Line", (PERL_OBJECT_FUNC) perl_line_fill_hash }, { "Irssi::TextUI::Line", (PERL_OBJECT_FUNC) perl_line_fill_hash },
{ "Irssi::TextUI::LineCache", (PERL_OBJECT_FUNC) perl_line_cache_fill_hash }, { "Irssi::TextUI::LineCache", (PERL_OBJECT_FUNC) perl_line_cache_fill_hash },
{ "Irssi::TextUI::LineInfo", (PERL_OBJECT_FUNC) perl_line_info_fill_hash }, { "Irssi::TextUI::LineInfo", (PERL_OBJECT_FUNC) perl_line_info_fill_hash },
{ "Irssi::TextUI::StatusbarItem", (PERL_OBJECT_FUNC) perl_statusbar_item_fill_hash },
{ NULL, NULL } { NULL, NULL }
}; };
@ -86,6 +95,12 @@ CODE:
initialized = TRUE; initialized = TRUE;
irssi_add_plains(textui_plains); irssi_add_plains(textui_plains);
perl_statusbar_init();
void
deinit()
CODE:
perl_statusbar_deinit();
MODULE = Irssi::TextUI PACKAGE = Irssi MODULE = Irssi::TextUI PACKAGE = Irssi
@ -95,5 +110,7 @@ gui_printtext(xpos, ypos, str)
int ypos int ypos
char *str char *str
INCLUDE: TextBuffer.xs BOOT:
INCLUDE: TextBufferView.xs irssi_boot(TextUI__Statusbar);
irssi_boot(TextUI__TextBuffer);
irssi_boot(TextUI__TextBufferView);

View File

@ -3,6 +3,7 @@
#include "mainwindows.h" #include "mainwindows.h"
#include "gui-windows.h" #include "gui-windows.h"
#include "gui-printtext.h" #include "gui-printtext.h"
#include "statusbar.h"
#include "textbuffer.h" #include "textbuffer.h"
#include "textbuffer-view.h" #include "textbuffer-view.h"
@ -12,3 +13,4 @@ typedef TEXT_BUFFER_VIEW_REC *Irssi__TextUI__TextBufferView;
typedef LINE_REC *Irssi__TextUI__Line; typedef LINE_REC *Irssi__TextUI__Line;
typedef LINE_CACHE_REC *Irssi__TextUI__LineCache; typedef LINE_CACHE_REC *Irssi__TextUI__LineCache;
typedef LINE_INFO_REC *Irssi__TextUI__LineInfo; typedef LINE_INFO_REC *Irssi__TextUI__LineInfo;
typedef SBAR_ITEM_REC *Irssi__TextUI__StatusbarItem;

View File

@ -5,6 +5,7 @@ Irssi::TextUI::TextBufferView T_PlainObj
Irssi::TextUI::Line T_PlainObj Irssi::TextUI::Line T_PlainObj
Irssi::TextUI::LineCache T_PlainObj Irssi::TextUI::LineCache T_PlainObj
Irssi::TextUI::LineInfo T_PlainObj Irssi::TextUI::LineInfo T_PlainObj
Irssi::TextUI::StatusbarItem T_PlainObj
INPUT INPUT

View File

@ -1,7 +1,7 @@
Makefile Makefile
Makefile.PL Makefile.PL
UI.c
UI.bs UI.bs
*.c
*.o *.o
pm_to_blib pm_to_blib
blib blib

View File

@ -2,6 +2,7 @@ use ExtUtils::MakeMaker;
WriteMakefile('NAME' => 'Irssi::UI', WriteMakefile('NAME' => 'Irssi::UI',
'LIBS' => '', 'LIBS' => '',
'OBJECT' => '$(O_FILES)',
'TYPEMAPS' => ['../common/typemap'], 'TYPEMAPS' => ['../common/typemap'],
'INC' => '-I../../.. -I@top_srcdir@/src -I@top_srcdir@/src/core -I@top_srcdir@/src/fe-common/core @GLIB_CFLAGS@', 'INC' => '-I../../.. -I@top_srcdir@/src -I@top_srcdir@/src/core -I@top_srcdir@/src/fe-common/core @GLIB_CFLAGS@',
'VERSION_FROM' => '@srcdir@/UI.pm'); 'VERSION_FROM' => '@srcdir@/UI.pm');

View File

@ -1,5 +1,7 @@
#include "module.h"
MODULE = Irssi::UI PACKAGE = Irssi MODULE = Irssi::UI::Themes PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
theme_register(formats) theme_register(formats)
@ -53,7 +55,7 @@ CODE:
printformat_perl(&dest, format, arglist); printformat_perl(&dest, format, arglist);
#******************************* #*******************************
MODULE = Irssi::UI PACKAGE = Irssi::Server MODULE = Irssi::UI::Themes PACKAGE = Irssi::Server
#******************************* #*******************************
void void
@ -77,7 +79,7 @@ CODE:
printformat_perl(&dest, format, arglist); printformat_perl(&dest, format, arglist);
#******************************* #*******************************
MODULE = Irssi::UI PACKAGE = Irssi::UI::Window MODULE = Irssi::UI::Themes PACKAGE = Irssi::UI::Window
#******************************* #*******************************
void void
@ -100,7 +102,7 @@ CODE:
printformat_perl(&dest, format, arglist); printformat_perl(&dest, format, arglist);
#******************************* #*******************************
MODULE = Irssi::UI PACKAGE = Irssi::Windowitem MODULE = Irssi::UI::Themes PACKAGE = Irssi::Windowitem
#******************************* #*******************************
void void

View File

@ -7,7 +7,7 @@ package Irssi::UI;
use strict; use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK); use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
$VERSION = "0.8"; $VERSION = "0.9";
require Exporter; require Exporter;
require DynaLoader; require DynaLoader;
@ -21,4 +21,3 @@ bootstrap Irssi::UI $VERSION;
Irssi::UI::init(); Irssi::UI::init();
1; 1;

View File

@ -104,12 +104,6 @@ static PLAIN_OBJECT_INIT_REC fe_plains[] = {
{ NULL, NULL } { NULL, NULL }
}; };
static void sig_deinit(void)
{
signal_remove("script destroy", (SIGNAL_FUNC) sig_script_destroy);
signal_remove("perl scripts deinit", (SIGNAL_FUNC) sig_deinit);
}
MODULE = Irssi::UI PACKAGE = Irssi::UI MODULE = Irssi::UI PACKAGE = Irssi::UI
PROTOTYPES: ENABLE PROTOTYPES: ENABLE
@ -126,8 +120,12 @@ CODE:
irssi_add_plains(fe_plains); irssi_add_plains(fe_plains);
signal_add("script destroy", (SIGNAL_FUNC) sig_script_destroy); signal_add("script destroy", (SIGNAL_FUNC) sig_script_destroy);
signal_add("perl scripts deinit", (SIGNAL_FUNC) sig_deinit);
void
deinit()
CODE:
signal_remove("script destroy", (SIGNAL_FUNC) sig_script_destroy);
INCLUDE: Themes.xs BOOT:
INCLUDE: Window.xs irssi_boot(UI__Themes);
irssi_boot(UI__Window);

View File

@ -1,4 +1,7 @@
MODULE = Irssi::UI PACKAGE = Irssi #include "module.h"
MODULE = Irssi::UI::Window PACKAGE = Irssi
PROTOTYPES: ENABLE
void void
windows() windows()
@ -93,7 +96,7 @@ OUTPUT:
#******************************* #*******************************
MODULE = Irssi::UI PACKAGE = Irssi::Server MODULE = Irssi::UI::Window PACKAGE = Irssi::Server
#******************************* #*******************************
void void
@ -135,7 +138,7 @@ window_find_closest(server, name, level)
#******************************* #*******************************
MODULE = Irssi::UI PACKAGE = Irssi::UI::Window PREFIX=window_ MODULE = Irssi::UI::Window PACKAGE = Irssi::UI::Window PREFIX=window_
#******************************* #*******************************
void void
@ -230,7 +233,7 @@ OUTPUT:
RETVAL RETVAL
#******************************* #*******************************
MODULE = Irssi::UI PACKAGE = Irssi::Windowitem PREFIX = window_item_ MODULE = Irssi::UI::Window PACKAGE = Irssi::Windowitem PREFIX = window_item_
#******************************* #*******************************
void void