/*
irssi.c : irssi
- Copyright (C) 1999-2000 Timo Sirainen
+ Copyright (C) 1999-2000, 2007 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
#include "gui-readline.h"
#include "statusbar.h"
#include "gui-windows.h"
-#include "textbuffer-reformat.h"
+#include "irssi-version.h"
#include <signal.h>
#include <locale.h>
static GMainLoop *main_loop;
int quitting;
-static const char *firsttimer_text =
- "Looks like this is the first time you've run irssi.\n"
- "This is just a reminder that you really should go read\n"
- "startup-HOWTO if you haven't already. You can find it\n"
- "and more irssi beginner info at http://irssi.org/help/\n"
- "\n"
- "For the truly impatient people who don't like any automatic\n"
- "window creation or closing, just type: /MANUAL-WINDOWS";
static int display_firsttimer = FALSE;
-
static void sig_exit(void)
{
- quitting = TRUE;
+ quitting = TRUE;
}
/* redraw irssi's screen.. */
textbuffer_init();
textbuffer_view_init();
textbuffer_commands_init();
- textbuffer_reformat_init();
gui_expandos_init();
gui_printtext_init();
gui_readline_init();
fe_common_core_finish_init();
signal_emit("irssi init finished", 0);
-
-#if 0
- if (display_firsttimer) {
- printtext_window(active_win, MSGLEVEL_CLIENTNOTICE,
- "%s", firsttimer_text);
- }
-#endif
}
static void textui_deinit(void)
mainwindow_activity_deinit();
mainwindows_deinit();
gui_expandos_deinit();
- textbuffer_reformat_deinit();
textbuffer_commands_deinit();
textbuffer_view_deinit();
textbuffer_deinit();
core_deinit();
}
-static void check_oldcrap(void)
-{
- FILE *f;
- char *path, str[256];
- int found;
-
- /* check that default.theme is up-to-date */
- path = g_strdup_printf("%s/default.theme", get_irssi_dir());
- f = fopen(path, "r+");
- if (f == NULL) {
- g_free(path);
- return;
- }
- found = FALSE;
- while (!found && fgets(str, sizeof(str), f) != NULL)
- found = strstr(str, "abstracts = ") != NULL;
- fclose(f);
-
- if (found) {
- g_free(path);
- return;
- }
-
- printf("\nYou seem to have old default.theme in "IRSSI_DIR_SHORT"/ directory.\n");
- printf("Themeing system has changed a bit since last irssi release,\n");
- printf("you should either delete your old default.theme or manually\n");
- printf("merge it with the new default.theme.\n\n");
- printf("Do you want to delete the old theme now? (Y/n)\n");
-
- str[0] = '\0';
- fgets(str, sizeof(str), stdin);
- if (i_toupper(str[0]) == 'Y' || str[0] == '\n' || str[0] == '\0')
- remove(path);
- g_free(path);
-}
-
static void check_files(void)
{
struct stat statbuf;
if (stat(get_irssi_dir(), &statbuf) != 0) {
/* ~/.irssi doesn't exist, first time running irssi */
display_firsttimer = TRUE;
- } else {
- check_oldcrap();
}
}
int main(int argc, char **argv)
{
- static struct poptOption options[] = {
-#if 0 /* --dummy is not available in SILC Client */
- { "dummy", 'd', POPT_ARG_NONE, &dummy, 0, "Use the dummy terminal mode", NULL },
-#endif
- { NULL, '\0', 0, NULL }
+ static int version = 0;
+ static GOptionEntry options[] = {
+ { "version", 'v', 0, G_OPTION_ARG_NONE, &version, "Display version", NULL },
+ { NULL }
};
#ifdef USE_GC
g_mem_set_vtable(&gc_mem_table);
#endif
+ core_register_options();
+ fe_common_core_register_options();
+
srand(time(NULL));
dummy = FALSE;
quitting = FALSE;
- core_init_paths(argc, argv);
+ core_preinit(argv[0]);
check_files();
#ifdef HAVE_SOCKS
SOCKSinit(argv[0]);
#endif
-#ifdef ENABLE_NLS
- /* initialize the i18n stuff */
- bindtextdomain(PACKAGE, LOCALEDIR);
- textdomain(PACKAGE);
-#endif
/* setlocale() must be called at the beginning before any calls that
affect it, especially regexps seem to break if they're generated
setlocale(LC_ALL, "");
textui_init();
+
args_register(options);
args_execute(argc, argv);
+ if (version) {
+ printf(PACKAGE" " IRSSI_VERSION" (%d %04d)\n",
+ IRSSI_VERSION_DATE, IRSSI_VERSION_TIME);
+ return 0;
+ }
+
if (!dummy && !term_init()) {
fprintf(stderr, "Can't initialize screen handling, quitting.\n");
fprintf(stderr, "You can still use the dummy mode with -d parameter\n");