Created SILC Runtime Toolkit git repository Part I.
[runtime.git] / apps / irssi / src / perl / ui / Themes.xs
diff --git a/apps/irssi/src/perl/ui/Themes.xs b/apps/irssi/src/perl/ui/Themes.xs
deleted file mode 100644 (file)
index 4afd437..0000000
+++ /dev/null
@@ -1,281 +0,0 @@
-#include "module.h"
-
-void printformat_perl(TEXT_DEST_REC *dest, char *format, char **arglist)
-{
-       THEME_REC *theme;
-       char *module, *str;
-       int formatnum;
-
-       module = g_strdup(perl_get_package());
-       formatnum = format_find_tag(module, format);
-       if (formatnum < 0) {
-               die("printformat(): unregistered format '%s'", format);
-                g_free(module);
-               return;
-       }
-
-       theme = dest->window->theme == NULL ? current_theme :
-               dest->window->theme;
-       signal_emit("print format", 5, theme, module,
-                   dest, GINT_TO_POINTER(formatnum), arglist);
-
-        str = format_get_text_theme_charargs(theme, module, dest, formatnum, arglist);
-       if (*str != '\0') printtext_dest(dest, "%s", str);
-       g_free(str);
-       g_free(module);
-}
-
-static void perl_unregister_theme(const char *package)
-{
-       FORMAT_REC *formats;
-       int n;
-
-       formats = g_hash_table_lookup(default_formats, package);
-       if (formats == NULL) return;
-
-       for (n = 0; formats[n].def != NULL; n++) {
-               g_free(formats[n].tag);
-               g_free(formats[n].def);
-       }
-       g_free(formats);
-       theme_unregister_module(package);
-}
-
-static void sig_script_destroyed(PERL_SCRIPT_REC *script)
-{
-       perl_unregister_theme(script->package);
-}
-
-void perl_themes_init(void)
-{
-       signal_add("script destroyed", (SIGNAL_FUNC) sig_script_destroyed);
-}
-
-void perl_themes_deinit(void)
-{
-       signal_remove("script destroyed", (SIGNAL_FUNC) sig_script_destroyed);
-}
-
-MODULE = Irssi::UI::Themes  PACKAGE = Irssi
-PROTOTYPES: ENABLE
-
-Irssi::UI::Theme
-current_theme()
-CODE:
-       RETVAL = current_theme;
-OUTPUT:
-       RETVAL
-
-int
-EXPAND_FLAG_IGNORE_REPLACES()
-CODE:
-       RETVAL = EXPAND_FLAG_IGNORE_REPLACES;
-OUTPUT:
-       RETVAL
-
-int
-EXPAND_FLAG_IGNORE_EMPTY()
-CODE:
-       RETVAL = EXPAND_FLAG_IGNORE_EMPTY;
-OUTPUT:
-       RETVAL
-
-int
-EXPAND_FLAG_RECURSIVE_MASK()
-CODE:
-       RETVAL = EXPAND_FLAG_RECURSIVE_MASK;
-OUTPUT:
-       RETVAL
-
-void
-theme_register(formats)
-       SV *formats
-PREINIT:
-       AV *av;
-       FORMAT_REC *formatrecs;
-       char *key, *value;
-       int len, n, fpos;
-CODE:
-
-        if (!SvROK(formats))
-               croak("formats is not a reference to list");
-       av = (AV *) SvRV(formats);
-       len = av_len(av)+1;
-       if (len == 0 || (len & 1) != 0)
-               croak("formats list is invalid - not divisible by 2 (%d)", len);
-
-       formatrecs = g_new0(FORMAT_REC, len/2+2);
-       formatrecs[0].tag = g_strdup(perl_get_package());
-       formatrecs[0].def = g_strdup("Perl script");
-
-        for (fpos = 1, n = 0; n < len; n++, fpos++) {
-               key = SvPV(*av_fetch(av, n, 0), PL_na); n++;
-               value = SvPV(*av_fetch(av, n, 0), PL_na);
-
-               formatrecs[fpos].tag = g_strdup(key);
-               formatrecs[fpos].def = g_strdup(value);
-               formatrecs[fpos].params = MAX_FORMAT_PARAMS;
-       }
-
-       theme_register_module(perl_get_package(), formatrecs);
-
-void
-printformat(level, format, ...)
-       int level
-       char *format
-PREINIT:
-       TEXT_DEST_REC dest;
-       char *arglist[MAX_FORMAT_PARAMS+1];
-       int n;
-CODE:
-       format_create_dest(&dest, NULL, NULL, level, NULL);
-       memset(arglist, 0, sizeof(arglist));
-       for (n = 2; n < items && n < MAX_FORMAT_PARAMS+2; n++) {
-               arglist[n-2] = SvPV(ST(n), PL_na);
-       }
-
-        printformat_perl(&dest, format, arglist);
-
-void
-abstracts_register(abstracts)
-       SV *abstracts
-PREINIT:
-       AV *av;
-       char *key, *value;
-       int i, len;
-CODE:
-        if (!SvROK(abstracts))
-               croak("abstracts is not a reference to list");
-       av = (AV *) SvRV(abstracts);
-       len = av_len(av)+1;
-       if (len == 0 || (len & 1) != 0)
-               croak("abstracts list is invalid - not divisible by 2 (%d)", len);
-
-        for (i = 0; i < len; i++) {
-               key = SvPV(*av_fetch(av, i, 0), PL_na); i++;
-               value = SvPV(*av_fetch(av, i, 0), PL_na);
-
-               theme_set_default_abstract(key, value);
-       }
-       themes_reload();
-
-void
-themes_reload()
-
-#*******************************
-MODULE = Irssi::UI::Themes  PACKAGE = Irssi::Server
-#*******************************
-
-void
-printformat(server, target, level, format, ...)
-       Irssi::Server server
-       char *target
-       int level
-       char *format
-PREINIT:
-       TEXT_DEST_REC dest;
-       char *arglist[MAX_FORMAT_PARAMS+1];
-       int n;
-CODE:
-       format_create_dest(&dest, server, target, level, NULL);
-       memset(arglist, 0, sizeof(arglist));
-       for (n = 4; n < items && n < MAX_FORMAT_PARAMS+4; n++) {
-               arglist[n-4] = SvPV(ST(n), PL_na);
-       }
-
-        printformat_perl(&dest, format, arglist);
-
-#*******************************
-MODULE = Irssi::UI::Themes  PACKAGE = Irssi::UI::Window
-#*******************************
-
-void
-printformat(window, level, format, ...)
-       Irssi::UI::Window window
-       int level
-       char *format
-PREINIT:
-       TEXT_DEST_REC dest;
-       char *arglist[MAX_FORMAT_PARAMS+1];
-       int n;
-CODE:
-       format_create_dest(&dest, NULL, NULL, level, window);
-       memset(arglist, 0, sizeof(arglist));
-       for (n = 3; n < items && n < MAX_FORMAT_PARAMS+3; n++) {
-               arglist[n-3] = SvPV(ST(n), PL_na);
-       }
-
-        printformat_perl(&dest, format, arglist);
-
-#*******************************
-MODULE = Irssi::UI::Themes  PACKAGE = Irssi::Windowitem
-#*******************************
-
-void
-printformat(item, level, format, ...)
-       Irssi::Windowitem item
-       int level
-       char *format
-PREINIT:
-       TEXT_DEST_REC dest;
-       char *arglist[MAX_FORMAT_PARAMS+1];
-       int n;
-CODE:
-       format_create_dest(&dest, item->server, item->visible_name, level, NULL);
-       memset(arglist, 0, sizeof(arglist));
-       for (n = 3; n < items && n < MAX_FORMAT_PARAMS+3; n++) {
-               arglist[n-3] = SvPV(ST(n), PL_na);
-       }
-
-        printformat_perl(&dest, format, arglist);
-
-#*******************************
-MODULE = Irssi::UI::Themes  PACKAGE = Irssi::UI::Theme  PREFIX = theme_
-#*******************************
-
-void
-theme_format_expand(theme, format, flags=0)
-       Irssi::UI::Theme theme
-       char *format
-        int flags
-PREINIT:
-       char *ret;
-PPCODE:
-       if (flags == 0) {
-               ret = theme_format_expand(theme, format);
-       } else {
-               ret = theme_format_expand_data(theme, (const char **) &format, 'n', 'n',
-                                              NULL, NULL, EXPAND_FLAG_ROOT | flags);
-       }
-       XPUSHs(sv_2mortal(new_pv(ret)));
-       g_free_not_null(ret);
-
-char *
-theme_get_format(theme, module, tag)
-       Irssi::UI::Theme theme
-       char *module
-       char *tag
-PREINIT:
-       MODULE_THEME_REC *modtheme;
-       FORMAT_REC *formats;
-       int i;
-CODE:
-       formats = g_hash_table_lookup(default_formats, module);
-       if (formats == NULL)
-               croak("Unknown module: %s", module);
-
-       for (i = 0; formats[i].def != NULL; i++) {
-               if (formats[i].tag != NULL &&
-                   g_strcasecmp(formats[i].tag, tag) == 0)
-                       break;
-       }
-
-       if (formats[i].def == NULL)
-               croak("Unknown format tag: %s", tag);
-
-       modtheme = g_hash_table_lookup(theme->modules, module);
-       RETVAL = modtheme == NULL ? NULL : modtheme->formats[i];
-       if (RETVAL == NULL)
-               RETVAL = formats[i].def;
-OUTPUT:
-       RETVAL