summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.cz>2015-06-08 23:30:21 +0200
committerDavid Sterba <dsterba@suse.cz>2015-06-09 13:32:32 +0200
commit54003d7ee6c71011ec41a5e4e557ec6c83a831de (patch)
tree460d37aec4b614740bd3c87a43f1786e992c561b
parente99303c381b4041f8b5fce6f757242c5f1162c76 (diff)
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>
-rw-r--r--help.c6
-rw-r--r--utils.c5
-rw-r--r--utils.h2
3 files changed, 9 insertions, 4 deletions
diff --git a/help.c b/help.c
index 56aaf9c3..56aded3a 100644
--- a/help.c
+++ b/help.c
@@ -22,8 +22,6 @@
#include "commands.h"
#include "utils.h"
-static char argv0_buf[ARGV0_BUF_SIZE];
-
#define USAGE_SHORT 1U
#define USAGE_LONG 2U
#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)
{
- 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);
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;
- 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");
for (; cmd->token; cmd++) {
diff --git a/utils.c b/utils.c
index f34c27b7..17837377 100644
--- a/utils.c
+++ b/utils.c
@@ -54,6 +54,11 @@ static int btrfs_scan_done = 0;
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)
{
int len = strlen(argv0_buf);
diff --git a/utils.h b/utils.h
index 12923de8..e7714821 100644
--- a/utils.h
+++ b/utils.h
@@ -235,4 +235,6 @@ static inline u64 div_factor(u64 num, int factor)
int btrfs_tree_search2_ioctl_supported(int fd);
int btrfs_check_nodesize(u32 nodesize, u32 sectorsize);
+const char *get_argv0_buf(void);
+
#endif