⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 module.c

📁 一个很有名的浏览器
💻 C
字号:
/* 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);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -