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 /src | |
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".
Diffstat (limited to 'src')
-rw-r--r-- | src/core/wee-command.c | 52 |
1 files changed, 28 insertions, 24 deletions
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); |