?? module.c
字號(hào):
/* General module system functionality *//* $Id: module.c,v 1.37 2004/11/19 16:54:21 zas Exp $ */#ifdef HAVE_CONFIG_H#include "config.h"#endif#include "elinks.h"#include "config/options.h"#include "modules/module.h"/* Dynamic area: */#include "bfu/dialog.h"#include "bookmarks/bookmarks.h"#include "cookies/cookies.h"#include "dialogs/exmode.h"#include "document/css/css.h"#include "document/document.h"#include "ecmascript/ecmascript.h"#include "formhist/formhist.h"#include "globhist/globhist.h"#include "mime/mime.h"#include "protocol/protocol.h"#include "scripting/scripting.h"#include "ssl/ssl.h"struct module *main_modules[] = { &document_module, NULL /* XXX: Keep this */};/* This is also used for version string composing so keep NULL terminated */struct module *builtin_modules[] = {#ifdef CONFIG_CSS &css_module,#endif &protocol_module,#ifdef CONFIG_SSL &ssl_module,#endif &mime_module,#ifdef CONFIG_LEDS &leds_module,#endif#ifdef CONFIG_BOOKMARKS &bookmarks_module,#endif#ifdef CONFIG_COOKIES &cookies_module,#endif#ifdef CONFIG_ECMASCRIPT &ecmascript_module,#endif#ifdef CONFIG_FORMHIST &forms_history_module,#endif#ifdef CONFIG_GLOBHIST &global_history_module,#endif#ifdef CONFIG_SCRIPTING &scripting_module,#endif#ifdef CONFIG_EXMODE &exmode_module,#endif NULL};/* Interface for handling single modules. */voidregister_module_options(struct module *module){ struct module *submodule; int i; if (module->options) register_options(module->options, config_options); foreach_module (submodule, module->submodules, i) { register_module_options(submodule); }}voidunregister_module_options(struct module *module){ struct module *submodule; int i; /* First knock out the submodules if any. */ foreachback_module (submodule, module->submodules, i) unregister_module_options(submodule); if (module->options) unregister_options(module->options, config_options);}voidinit_module(struct module *module){ struct module *submodule; int i; if (module->init) module->init(module); if (module->hooks) register_event_hooks(module->hooks); foreach_module (submodule, module->submodules, i) { init_module(submodule); }}voiddone_module(struct module *module){ struct module *submodule; int i; /* First knock out the submodules if any. */ foreachback_module (submodule, module->submodules, i) done_module(submodule); if (module->hooks) unregister_event_hooks(module->hooks); if (module->done) module->done(module);}/* Interface for handling builtin modules. */voidregister_modules_options(struct module *modules[]){ struct module *module; int i; foreach_module (module, modules, i) { register_module_options(module); }}voidunregister_modules_options(struct module *modules[]){ struct module *module; int i; /* Cleanups backward to initialization. */ foreachback_module (module, modules, i) unregister_module_options(module);}/* TODO: We probably need to have two builtin module tables one for critical * modules that should always be used and one for optional (the ones controlled * by init_b in main.c */voidinit_modules(struct module *modules[]){ struct module *module; int i; foreach_module (module, modules, i) { init_module(module); }}voiddone_modules(struct module *modules[]){ struct module *module; int i; /* Cleanups backward to initialization. */ foreachback_module (module, modules, i) done_module(module);}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -