btrfs-progs: fix argv0_buf handling

The variable argv0_buf was duplicated and the changes done in utils.c
were not propagated to help.c. So if an unknown commandline token was
found, the error message did not contain the known part:

 $ btrfs scrub test
 : unknown token 'test'

instead of

 $ btrfs scrub test
 btrfs scrub: uknown token 'test'

Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
David Sterba 2015-06-08 23:30:21 +02:00
parent e99303c381
commit 54003d7ee6
3 changed files with 9 additions and 4 deletions

6
help.c
View File

@ -22,8 +22,6 @@
#include "commands.h" #include "commands.h"
#include "utils.h" #include "utils.h"
static char argv0_buf[ARGV0_BUF_SIZE];
#define USAGE_SHORT 1U #define USAGE_SHORT 1U
#define USAGE_LONG 2U #define USAGE_LONG 2U
#define USAGE_OPTIONS 4U #define USAGE_OPTIONS 4U
@ -183,7 +181,7 @@ void usage_command_group(const struct cmd_group *grp, int full, int err)
void help_unknown_token(const char *arg, const struct cmd_group *grp) void help_unknown_token(const char *arg, const struct cmd_group *grp)
{ {
fprintf(stderr, "%s: unknown token '%s'\n", argv0_buf, arg); fprintf(stderr, "%s: unknown token '%s'\n", get_argv0_buf(), arg);
usage_command_group(grp, 0, 1); usage_command_group(grp, 0, 1);
exit(1); exit(1);
} }
@ -192,7 +190,7 @@ void help_ambiguous_token(const char *arg, const struct cmd_group *grp)
{ {
const struct cmd_struct *cmd = grp->commands; const struct cmd_struct *cmd = grp->commands;
fprintf(stderr, "%s: ambiguous token '%s'\n", argv0_buf, arg); fprintf(stderr, "%s: ambiguous token '%s'\n", get_argv0_buf(), arg);
fprintf(stderr, "\nDid you mean one of these ?\n"); fprintf(stderr, "\nDid you mean one of these ?\n");
for (; cmd->token; cmd++) { for (; cmd->token; cmd++) {

View File

@ -54,6 +54,11 @@ static int btrfs_scan_done = 0;
static char argv0_buf[ARGV0_BUF_SIZE] = "btrfs"; static char argv0_buf[ARGV0_BUF_SIZE] = "btrfs";
const char *get_argv0_buf(void)
{
return argv0_buf;
}
void fixup_argv0(char **argv, const char *token) void fixup_argv0(char **argv, const char *token)
{ {
int len = strlen(argv0_buf); int len = strlen(argv0_buf);

View File

@ -235,4 +235,6 @@ static inline u64 div_factor(u64 num, int factor)
int btrfs_tree_search2_ioctl_supported(int fd); int btrfs_tree_search2_ioctl_supported(int fd);
int btrfs_check_nodesize(u32 nodesize, u32 sectorsize); int btrfs_check_nodesize(u32 nodesize, u32 sectorsize);
const char *get_argv0_buf(void);
#endif #endif