diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2011-01-05 08:05:32 +0100 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2011-01-05 08:05:32 +0100 |
commit | c31977f59cb2e36fe6c0d036f85e96670b2ca603 (patch) | |
tree | 56843f53ea00be3c8a7134af7950fd3b20f5d566 | |
parent | f837dc49c9d2599f6c0f1231028f3b73da1b5b38 (diff) | |
download | weechat-c31977f59cb2e36fe6c0d036f85e96670b2ca603.zip |
Revert "Fix bug with /upgrade: check existence of binary even when command is executed without argument"
This reverts commit 3cd267ab23ff25c89204cb5be0f019c1254ac83f.
With this fix, upgrade was not possible any more if WeeChat was run without path,
ie for example "weechat-curses" running "/usr/bin/weechat-curses".
-rw-r--r-- | ChangeLog | 2 | ||||
-rw-r--r-- | src/core/wee-command.c | 52 |
2 files changed, 28 insertions, 26 deletions
@@ -9,8 +9,6 @@ Version 0.3.4 (under dev!) * core: add 256 colors support, new command /color, new section "palette" in weechat.conf (task #6834) -* core: fix bug with /upgrade: check existence of binary even when command is - executed without argument * core: add info "weechat_upgrading", signal "upgrade_ended", display duration of upgrade * core: replace the 10 nick color options and number of nick colors by a single diff --git a/src/core/wee-command.c b/src/core/wee-command.c index 5852b99e2..d6ab14857 100644 --- a/src/core/wee-command.c +++ b/src/core/wee-command.c @@ -3721,7 +3721,35 @@ COMMAND_CALLBACK(upgrade) } if (argc > 1) + { ptr_binary = string_expand_home (argv_eol[1]); + if (ptr_binary) + { + /* check if weechat binary is here and executable by user */ + rc = stat (ptr_binary, &stat_buf); + if ((rc != 0) || (!S_ISREG(stat_buf.st_mode))) + { + gui_chat_printf (NULL, + _("%sCan't upgrade: WeeChat binary \"%s\" " + "does not exist"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + ptr_binary); + free (ptr_binary); + return WEECHAT_RC_OK; + } + if ((!(stat_buf.st_mode & S_IXUSR)) && (!(stat_buf.st_mode & S_IXGRP)) + && (!(stat_buf.st_mode & S_IXOTH))) + { + gui_chat_printf (NULL, + _("%sCan't upgrade: WeeChat binary \"%s\" " + "does not have execute permissions"), + gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], + ptr_binary); + free (ptr_binary); + return WEECHAT_RC_OK; + } + } + } else ptr_binary = strdup (weechat_argv0); @@ -3733,30 +3761,6 @@ COMMAND_CALLBACK(upgrade) return WEECHAT_RC_OK; } - /* check if weechat binary is here and executable by user */ - rc = stat (ptr_binary, &stat_buf); - if ((rc != 0) || (!S_ISREG(stat_buf.st_mode))) - { - gui_chat_printf (NULL, - _("%sCan't upgrade: WeeChat binary \"%s\" " - "does not exist"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - ptr_binary); - free (ptr_binary); - return WEECHAT_RC_OK; - } - if ((!(stat_buf.st_mode & S_IXUSR)) && (!(stat_buf.st_mode & S_IXGRP)) - && (!(stat_buf.st_mode & S_IXOTH))) - { - gui_chat_printf (NULL, - _("%sCan't upgrade: WeeChat binary \"%s\" " - "does not have execute permissions"), - gui_chat_prefix[GUI_CHAT_PREFIX_ERROR], - ptr_binary); - free (ptr_binary); - return WEECHAT_RC_OK; - } - gui_chat_printf (NULL, _("Upgrading WeeChat with binary file: \"%s\"..."), ptr_binary); |