diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2009-03-21 16:09:18 +0100 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2009-03-21 16:09:18 +0100 |
commit | 2dc13ebd21d86009062c00d5ad122c31f4351d2c (patch) | |
tree | 24581a7949c88775d68283ee46c03a71d684bff1 /src/core/wee-command.c | |
parent | 8a68adbf3fb9eeda31c57c012e89465ed01fafb5 (diff) | |
download | weechat-2dc13ebd21d86009062c00d5ad122c31f4351d2c.zip |
Add new command /version, add count of /upgrade, fix bugs with command exec
New (core) command /version displays version, and number of upgrades done with
first start date (if # /upgrade > 0).
The number of upgrades is displayed at startup (if > 0).
Diffstat (limited to 'src/core/wee-command.c')
-rw-r--r-- | src/core/wee-command.c | 112 |
1 files changed, 90 insertions, 22 deletions
diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 33a222f9c..4adbacd06 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -766,7 +766,7 @@ command_command (void *data, struct t_gui_buffer *buffer, if (argc > 2) { ptr_plugin = NULL; - if (string_strcasecmp (argv[1], "weechat") != 0) + if (string_strcasecmp (argv[1], PLUGIN_CORE) != 0) { ptr_plugin = plugin_search (argv[1]); if (!ptr_plugin) @@ -1243,22 +1243,16 @@ command_help (void *data, struct t_gui_buffer *buffer, && HOOK_COMMAND(ptr_hook, command) && HOOK_COMMAND(ptr_hook, command)[0]) { - gui_chat_printf (NULL, " %s%s%s%s%s%s%s%s", + gui_chat_printf (NULL, " %s%s%s%s%s", GUI_COLOR(GUI_COLOR_CHAT_BUFFER), - (HOOK_COMMAND(ptr_hook, level) > 0) ? - "(" : "", HOOK_COMMAND(ptr_hook, command), - (HOOK_COMMAND(ptr_hook, level) > 0) ? - ")" : "", GUI_COLOR(GUI_COLOR_CHAT), (HOOK_COMMAND(ptr_hook, description) && HOOK_COMMAND(ptr_hook, description)[0]) ? " - " : "", (HOOK_COMMAND(ptr_hook, description) && HOOK_COMMAND(ptr_hook, description)[0]) ? - _(HOOK_COMMAND(ptr_hook, description)) : "", - (HOOK_COMMAND(ptr_hook, level) > 0) ? - _(" (used by a plugin)") : ""); + _(HOOK_COMMAND(ptr_hook, description)) : ""); } } gui_chat_printf (NULL, ""); @@ -1271,22 +1265,16 @@ command_help (void *data, struct t_gui_buffer *buffer, && HOOK_COMMAND(ptr_hook, command) && HOOK_COMMAND(ptr_hook, command)[0]) { - gui_chat_printf (NULL, " %s%s%s%s%s%s%s%s", + gui_chat_printf (NULL, " %s%s%s%s%s", GUI_COLOR(GUI_COLOR_CHAT_BUFFER), - (HOOK_COMMAND(ptr_hook, level) > 0) ? - "(" : "", HOOK_COMMAND(ptr_hook, command), - (HOOK_COMMAND(ptr_hook, level) > 0) ? - ")" : "", GUI_COLOR(GUI_COLOR_CHAT), (HOOK_COMMAND(ptr_hook, description) && HOOK_COMMAND(ptr_hook, description)[0]) ? " - " : "", (HOOK_COMMAND(ptr_hook, description) && HOOK_COMMAND(ptr_hook, description)[0]) ? - _(HOOK_COMMAND(ptr_hook, description)) : "", - (HOOK_COMMAND(ptr_hook, level) > 0) ? - _(" (masked by a plugin)") : ""); + _(HOOK_COMMAND(ptr_hook, description)) : ""); } } @@ -1300,7 +1288,6 @@ command_help (void *data, struct t_gui_buffer *buffer, if (!ptr_hook->deleted && HOOK_COMMAND(ptr_hook, command) && HOOK_COMMAND(ptr_hook, command)[0] - && (HOOK_COMMAND(ptr_hook, level) == 0) && (string_strcasecmp (HOOK_COMMAND(ptr_hook, command), argv[1]) == 0)) { @@ -3209,7 +3196,7 @@ command_uptime (void *data, struct t_gui_buffer *buffer, { time_t running_time; int day, hour, min, sec; - char string[256]; + char string[512]; /* make C compiler happy */ (void) data; @@ -3221,7 +3208,7 @@ command_uptime (void *data, struct t_gui_buffer *buffer, min = ((running_time % (60 * 60 * 24)) % (60 * 60)) / 60; sec = ((running_time % (60 * 60 * 24)) % (60 * 60)) % 60; - if ((argc == 2) && (string_strcasecmp (argv[1], "-o") == 0)) + if ((argc >= 2) && (string_strcasecmp (argv[1], "-o") == 0)) { snprintf (string, sizeof (string), _("WeeChat uptime: %d %s %02d:%02d:%02d, started on %s"), @@ -3261,6 +3248,81 @@ command_uptime (void *data, struct t_gui_buffer *buffer, } /* + * command_version_display: display WeeChat version + */ + +void +command_version_display (struct t_gui_buffer *buffer, + int send_to_buffer_as_input) +{ + char string[512]; + + if (send_to_buffer_as_input) + { + snprintf (string, sizeof (string), + "WeeChat %s [%s %s %s]", + PACKAGE_VERSION, + _("compiled on"), + __DATE__, + __TIME__); + input_data (buffer, string); + if (weechat_upgrade_count > 0) + { + snprintf (string, sizeof (string), + _("Upgraded %d %s, first start: %s"), + weechat_upgrade_count, + NG_("time", "times", weechat_upgrade_count), + ctime (&weechat_start_time)); + string[strlen (string) - 1] = '\0'; + input_data (buffer, string); + } + } + else + { + gui_chat_printf (NULL, "%sWeeChat %s %s[%s%s %s %s%s]", + GUI_COLOR(GUI_COLOR_CHAT_BUFFER), + PACKAGE_VERSION, + GUI_COLOR(GUI_COLOR_CHAT_DELIMITERS), + GUI_COLOR(GUI_COLOR_CHAT_HOST), + _("compiled on"), + __DATE__, + __TIME__, + GUI_COLOR(GUI_COLOR_CHAT_DELIMITERS)); + if (weechat_upgrade_count > 0) + { + gui_chat_printf (NULL, + _("Upgraded %d %s, first start: %s"), + weechat_upgrade_count, + /* TRANSLATORS: text is: "upgraded xx times" */ + NG_("time", "times", weechat_upgrade_count), + ctime (&weechat_start_time)); + } + } +} + +/* + * command_version: display WeeChat version + */ + +int +command_version (void *data, struct t_gui_buffer *buffer, + int argc, char **argv, char **argv_eol) +{ + int send_to_buffer_as_input; + + /* make C compiler happy */ + (void) data; + (void) argv_eol; + + send_to_buffer_as_input = ((argc >= 2) + && (string_strcasecmp (argv[1], "-o") == 0)); + + command_version_display (buffer, send_to_buffer_as_input); + + return WEECHAT_RC_OK; +} + +/* * command_window: manage windows */ @@ -3633,7 +3695,7 @@ command_init () "command)\n" "command: command to execute (a '/' is automatically " "added if not found at beginning of command)"), - "%p|weechat %P", + "%p|" PLUGIN_CORE " %P", &command_command, NULL); hook_command (NULL, "debug", N_("control debug for core/plugins"), @@ -3850,9 +3912,15 @@ command_init () hook_command (NULL, "uptime", N_("show WeeChat uptime"), N_("[-o]"), - N_("-o: send uptime on current channel as an IRC message"), + N_("-o: send uptime to current buffer as input"), "-o", &command_uptime, NULL); + hook_command (NULL, "version", + N_("show WeeChat version and compilation date"), + N_("[-o]"), + N_("-o: send version to current buffer as input"), + "-o", + &command_version, NULL); hook_command (NULL, "window", N_("manage windows"), N_("[list | -1 | +1 | b# | up | down | left | right | " |