1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-29 22:36:38 +02:00

Remove some messages during startup about scripts and plugins loaded

It is still possible to see messages by changing debug level for "core" or
plugins (perl, python, ruby, lua, tcl).
This commit is contained in:
Sebastien Helleu
2009-03-18 15:11:18 +01:00
parent 763f030ae8
commit a938ef736a
33 changed files with 530 additions and 200 deletions
+119 -13
View File
@@ -55,6 +55,7 @@
#include "plugin-config.h"
int plugin_quiet = 0;
struct t_weechat_plugin *weechat_plugins = NULL;
struct t_weechat_plugin *last_weechat_plugin = NULL;
@@ -125,6 +126,67 @@ plugin_get_name (struct t_weechat_plugin *plugin)
return (plugin) ? plugin->name : plugin_core;
}
/*
* plugin_find_pos: find position for a plugin (for sorting plugins list)
*/
struct t_weechat_plugin *
plugin_find_pos (struct t_weechat_plugin *plugin)
{
struct t_weechat_plugin *ptr_plugin;
for (ptr_plugin = weechat_plugins; ptr_plugin;
ptr_plugin = ptr_plugin->next_plugin)
{
if (string_strcasecmp (plugin->name, ptr_plugin->name) < 0)
return ptr_plugin;
}
return NULL;
}
/*
* plugin_insert_sorted: insert a plugin in list, keeping sort on name
*/
void
plugin_insert_sorted (struct t_weechat_plugin *plugin)
{
struct t_weechat_plugin *pos_plugin;
if (weechat_plugins)
{
pos_plugin = plugin_find_pos (plugin);
if (pos_plugin)
{
/* insert plugin into the list (before plugin found) */
plugin->prev_plugin = pos_plugin->prev_plugin;
plugin->next_plugin = pos_plugin;
if (pos_plugin->prev_plugin)
(pos_plugin->prev_plugin)->next_plugin = plugin;
else
weechat_plugins = plugin;
pos_plugin->prev_plugin = plugin;
}
else
{
/* add plugin to the end */
plugin->prev_plugin = last_weechat_plugin;
plugin->next_plugin = NULL;
last_weechat_plugin->next_plugin = plugin;
last_weechat_plugin = plugin;
}
}
else
{
/* first plugin in list */
plugin->prev_plugin = NULL;
plugin->next_plugin = NULL;
weechat_plugins = plugin;
last_weechat_plugin = plugin;
}
}
/*
* plugin_load: load a WeeChat plugin (a dynamic library)
* return: pointer to new WeeChat plugin, NULL if error
@@ -518,15 +580,8 @@ plugin_load (const char *filename)
new_plugin->upgrade_read = &upgrade_file_read;
new_plugin->upgrade_close = &upgrade_file_close;
/* add new plugin to list */
new_plugin->prev_plugin = last_weechat_plugin;
new_plugin->next_plugin = NULL;
if (weechat_plugins)
last_weechat_plugin->next_plugin = new_plugin;
else
weechat_plugins = new_plugin;
last_weechat_plugin = new_plugin;
plugin_insert_sorted (new_plugin);
/* associate orphan buffers with this plugin (if asked during upgrade
process) */
gui_buffer_set_plugin_for_upgrade (name, new_plugin);
@@ -591,9 +646,12 @@ plugin_load (const char *filename)
return NULL;
}
gui_chat_printf (NULL,
_("Plugin \"%s\" loaded"),
name);
if ((weechat_debug_core >= 1) || !plugin_quiet)
{
gui_chat_printf (NULL,
_("Plugin \"%s\" loaded"),
name);
}
free (full_name);
@@ -825,7 +883,7 @@ plugin_unload_all ()
{
while (weechat_plugins)
{
plugin_unload (last_weechat_plugin);
plugin_unload (weechat_plugins);
}
}
@@ -859,6 +917,49 @@ plugin_reload_name (const char *name)
}
}
/*
* plugin_display_short_list: print list of plugins on one line
*/
void
plugin_display_short_list ()
{
const char *plugins_loaded;
char *buf;
int length;
struct t_weechat_plugin *ptr_plugin;
if (weechat_plugins)
{
plugins_loaded = _("Plugins loaded:");
length = strlen (plugins_loaded) + 1;
for (ptr_plugin = weechat_plugins; ptr_plugin;
ptr_plugin = ptr_plugin->next_plugin)
{
length += strlen (ptr_plugin->name) + 2;
}
length++;
buf = malloc (length);
if (buf)
{
strcpy (buf, plugins_loaded);
strcat (buf, " ");
for (ptr_plugin = weechat_plugins; ptr_plugin;
ptr_plugin = ptr_plugin->next_plugin)
{
strcat (buf, ptr_plugin->name);
if (ptr_plugin->next_plugin)
strcat (buf, ", ");
}
gui_chat_printf (NULL, "%s", buf);
free (buf);
}
}
}
/*
* plugin_init: init plugin support
*/
@@ -878,7 +979,12 @@ plugin_init (int auto_load, int argc, char *argv[])
/* auto-load plugins if asked */
if (auto_load)
{
plugin_quiet = 1;
plugin_auto_load ();
plugin_display_short_list ();
plugin_quiet = 0;
}
/* discard command arguments for future plugins */
plugin_argc = 0;