From 900682ebd541cad4fceb918c0ec37c3b1f98c78b Mon Sep 17 00:00:00 2001 From: Fumitoshi UKAI Date: Sat, 1 Jun 2002 17:09:04 +0000 Subject: [w3m-dev-en 00748] PATCH: Reinitialize w3m while running * funcname.tab (INIT_MAILCAP): deleted (REINIT): added * main.c (config_filename): added (reinit): added * proto.h (reinit): added * rc.c (rc_initialized): deleted * w3mhelperpanel.c (editMailcap): use REINIT MAILCAP From: Tushar Samant --- main.c | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 67 insertions(+), 2 deletions(-) (limited to 'main.c') diff --git a/main.c b/main.c index 5a48704..3d38d71 100644 --- a/main.c +++ b/main.c @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.100 2002/06/01 16:50:16 ukai Exp $ */ +/* $Id: main.c,v 1.101 2002/06/01 17:09:05 ukai Exp $ */ #define MAINPROGRAM #include "fm.h" #include @@ -25,6 +25,8 @@ extern int do_getch(); #define DSTR_LEN 256 +static char *config_filename = NULL; + Hist *LoadHist; Hist *SaveHist; Hist *URLHist; @@ -354,7 +356,6 @@ MAIN(int argc, char **argv, char **envp) char search_header = FALSE; char *default_type = NULL; char *post_file = NULL; - char *config_filename = NULL; Str err_msg; #ifndef HAVE_SYS_ERRLIST @@ -5092,6 +5093,70 @@ setAlarmEvent(int sec, short status, int cmd, void *data) } #endif +void +reinit() +{ + char *resource = searchKeyData(); + + if (resource == NULL) { + init_rc(config_filename); +#ifdef USE_COOKIE + initCookie(); +#endif + initKeymap(); +#ifdef USE_MENU + initMenu(); +#endif + return; + } + + if (!strcasecmp(resource, "CONFIG") || !strcasecmp(resource, "RC")) { + init_rc(config_filename); + return; + } + +#ifdef USE_COOKIE + if (!strcasecmp(resource, "COOKIE")) { + initCookie(); + return; + } +#endif + + if (!strcasecmp(resource, "KEYMAP")) { + initKeymap(); + return; + } + + if (!strcasecmp(resource, "MAILCAP")) { + initMailcap(); + return; + } + +#ifdef USE_MENU + if (!strcasecmp(resource, "MENU")) { + initMenu(); + return; + } +#endif + + if (!strcasecmp(resource, "MIMETYPES")) { + initMimeTypes(); + return; + } + +#ifdef USE_EXTERNAL_URI_LOADER + if (!strcasecmp(resource, "URIMETHODS")) { + initURIMethods(); + return; + } +#endif + + disp_err_message( + Sprintf("Don't know how to reinitialize '%s'", resource)->ptr, + FALSE + ); +} + void defKey(void) { -- cgit v1.2.3