Created SILC Runtime Toolkit git repository Part I.
[runtime.git] / apps / irssi / src / perl / perl-fe.c
diff --git a/apps/irssi/src/perl/perl-fe.c b/apps/irssi/src/perl/perl-fe.c
deleted file mode 100644 (file)
index 7015cdf..0000000
+++ /dev/null
@@ -1,278 +0,0 @@
-/*
- perl-core.c : irssi
-
-    Copyright (C) 1999-2001 Timo Sirainen
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-*/
-
-#include "module-fe.h"
-#include "modules.h"
-#include "module-formats.h"
-#include "signals.h"
-#include "commands.h"
-#include "levels.h"
-
-#include "printtext.h"
-#include "completion.h"
-
-#include "perl-core.h"
-
-static void cmd_script(const char *data, SERVER_REC *server, void *item)
-{
-       if (*data == '\0')
-                data = "list";
-
-       command_runsub("script", data, server, item);
-}
-
-static void cmd_script_exec(const char *data)
-{
-        PERL_SCRIPT_REC *script;
-       GHashTable *optlist;
-       char *code;
-       void *free_arg;
-
-       if (!cmd_get_params(data, &free_arg, 1 | PARAM_FLAG_OPTIONS |
-                           PARAM_FLAG_GETREST,
-                           "script exec", &optlist, &code))
-               return;
-
-        if (*code == '\0')
-               cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-
-        script = perl_script_load_data(code);
-       if (script != NULL &&
-           g_hash_table_lookup(optlist, "permanent") == NULL) {
-               /* not a permanent script, unload immediately */
-                perl_script_unload(script);
-       }
-
-
-       cmd_params_free(free_arg);
-}
-
-static void cmd_script_load(const char *data)
-{
-        PERL_SCRIPT_REC *script;
-       char *fname, *path;
-       void *free_arg;
-
-       if (!cmd_get_params(data, &free_arg, 1, &path))
-               return;
-
-        if (*path == '\0')
-               cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-
-       fname = perl_script_get_path(path);
-       if (fname == NULL) {
-               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                            TXT_SCRIPT_NOT_FOUND, data);
-       } else {
-               script = perl_script_load_file(fname);
-               if (script != NULL) {
-                       printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                                   TXT_SCRIPT_LOADED,
-                                   script->name, script->path);
-               }
-               g_free(fname);
-       }
-       cmd_params_free(free_arg);
-}
-
-static void cmd_script_unload(const char *data)
-{
-       PERL_SCRIPT_REC *script;
-        char *name;
-       void *free_arg;
-
-       if (!cmd_get_params(data, &free_arg, 1, &name))
-               return;
-
-        if (*name == '\0')
-               cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
-
-        script_fix_name(name);
-       script = perl_script_find(name);
-       if (script == NULL) {
-               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                            TXT_SCRIPT_NOT_LOADED, name);
-       } else {
-               printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                           TXT_SCRIPT_UNLOADED, script->name);
-               perl_script_unload(script);
-       }
-       cmd_params_free(free_arg);
-}
-
-static void cmd_script_reset(const char *data)
-{
-       perl_scripts_deinit();
-       perl_scripts_init();
-}
-
-static void cmd_script_list(void)
-{
-       GSList *tmp;
-        GString *data;
-
-       if (perl_scripts == NULL) {
-               printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE,
-                            TXT_NO_SCRIPTS_LOADED);
-                return;
-       }
-
-       printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
-                   TXT_SCRIPT_LIST_HEADER);
-
-       data = g_string_new(NULL);
-       for (tmp = perl_scripts; tmp != NULL; tmp = tmp->next) {
-               PERL_SCRIPT_REC *rec = tmp->data;
-
-                if (rec->path != NULL)
-                       g_string_assign(data, rec->path);
-               else {
-                       g_string_assign(data, rec->data);
-                       if (data->len > 50) {
-                               g_string_truncate(data, 50);
-                                g_string_append(data, " ...");
-                       }
-               }
-
-               printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
-                           TXT_SCRIPT_LIST_LINE, rec->name, data->str);
-       }
-        g_string_free(data, TRUE);
-
-       printformat(NULL, NULL, MSGLEVEL_CLIENTCRAP,
-                   TXT_SCRIPT_LIST_FOOTER);
-}
-
-static void cmd_load(const char *data, SERVER_REC *server, void *item)
-{
-        char *rootmodule, *submodule;
-       void *free_arg;
-       size_t len;
-
-       if (!cmd_get_params(data, &free_arg, 2 , &rootmodule, &submodule))
-               return;
-
-       len = strlen(rootmodule);
-       if (len > 3 && strcmp(rootmodule + len - 3, ".pl") == 0) {
-               /* make /LOAD script.pl work as expected */
-               signal_stop();
-               cmd_script_load(data);
-       }
-
-       cmd_params_free(free_arg);
-}
-
-static void sig_script_error(PERL_SCRIPT_REC *script, const char *error)
-{
-       printformat(NULL, NULL, MSGLEVEL_CLIENTERROR,
-                   TXT_SCRIPT_ERROR, script == NULL ? "??" : script->name);
-
-       printtext(NULL, NULL, MSGLEVEL_CLIENTERROR, "%[-s]%s", error);
-}
-
-static void sig_complete_load(GList **list, WINDOW_REC *window,
-                             const char *word, const char *line,
-                             int *want_space)
-{
-        char *user_dir;
-
-       if (*line != '\0')
-               return;
-
-       /* completing filename parameter for /SCRIPT LOAD */
-       user_dir = g_strdup_printf("%s/scripts", get_irssi_dir());
-       *list = filename_complete(word, user_dir);
-       *list = g_list_concat(*list, filename_complete(word, SCRIPTDIR));
-        g_free(user_dir);
-
-       if (*list != NULL) {
-               *want_space = FALSE;
-               signal_stop();
-       }
-}
-
-static GList *script_complete(const char *name)
-{
-       GSList *tmp;
-        GList *list;
-        int len;
-
-        list = NULL;
-        len = strlen(name);
-       for (tmp = perl_scripts; tmp != NULL; tmp = tmp->next) {
-               PERL_SCRIPT_REC *rec = tmp->data;
-
-               if (strncmp(rec->name, name, len) == 0)
-                        list = g_list_append(list, g_strdup(rec->name));
-       }
-
-        return list;
-}
-
-static void sig_complete_unload(GList **list, WINDOW_REC *window,
-                               const char *word, const char *line,
-                               int *want_space)
-{
-       if (*line != '\0')
-               return;
-
-       /* completing script parameter for /SCRIPT UNLOAD */
-       *list = script_complete(word);
-       if (*list != NULL)
-               signal_stop();
-}
-
-void fe_perl_init(void)
-{
-       theme_register(feperl_formats);
-
-       command_bind("script", NULL, (SIGNAL_FUNC) cmd_script);
-       command_bind("script exec", NULL, (SIGNAL_FUNC) cmd_script_exec);
-       command_bind("script load", NULL, (SIGNAL_FUNC) cmd_script_load);
-       command_bind("script unload", NULL, (SIGNAL_FUNC) cmd_script_unload);
-       command_bind("script reset", NULL, (SIGNAL_FUNC) cmd_script_reset);
-       command_bind("script list", NULL, (SIGNAL_FUNC) cmd_script_list);
-       command_bind("load", NULL, (SIGNAL_FUNC) cmd_load);
-       command_set_options("script exec", "permanent");
-
-        signal_add("script error", (SIGNAL_FUNC) sig_script_error);
-       signal_add("complete command script load", (SIGNAL_FUNC) sig_complete_load);
-       signal_add("complete command script unload", (SIGNAL_FUNC) sig_complete_unload);
-
-        perl_core_print_script_error(FALSE);
-       module_register("perl", "fe");
-}
-
-void fe_perl_deinit(void)
-{
-       command_unbind("script", (SIGNAL_FUNC) cmd_script);
-       command_unbind("script exec", (SIGNAL_FUNC) cmd_script_exec);
-       command_unbind("script load", (SIGNAL_FUNC) cmd_script_load);
-       command_unbind("script unload", (SIGNAL_FUNC) cmd_script_unload);
-       command_unbind("script reset", (SIGNAL_FUNC) cmd_script_reset);
-       command_unbind("script list", (SIGNAL_FUNC) cmd_script_list);
-       command_unbind("load", (SIGNAL_FUNC) cmd_load);
-
-        signal_remove("script error", (SIGNAL_FUNC) sig_script_error);
-       signal_remove("complete command script load", (SIGNAL_FUNC) sig_complete_load);
-       signal_remove("complete command script unload", (SIGNAL_FUNC) sig_complete_unload);
-
-        perl_core_print_script_error(TRUE);
-}