diff --git a/btrfs-find-root.c b/btrfs-find-root.c index cd69419d..0b274eb0 100644 --- a/btrfs-find-root.c +++ b/btrfs-find-root.c @@ -192,7 +192,7 @@ int main(int argc, char **argv) usage_command(&btrfs_find_root_cmd, 0, 0); return 0; default: - usage_unknown_option(btrfs_find_root_usage, argv); + usage_unknown_option(&btrfs_find_root_cmd, argv); } } diff --git a/cmds-balance.c b/cmds-balance.c index dc8957b4..94185fe3 100644 --- a/cmds-balance.c +++ b/cmds-balance.c @@ -587,7 +587,7 @@ static int cmd_balance_start(const struct cmd_struct *cmd, background = 1; break; default: - usage_unknown_option(cmd_balance_start_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -859,7 +859,7 @@ static int cmd_balance_status(const struct cmd_struct *cmd, verbose = 1; break; default: - usage_unknown_option(cmd_balance_status_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-device.c b/cmds-device.c index 4022fafc..c329eeb1 100644 --- a/cmds-device.c +++ b/cmds-device.c @@ -79,7 +79,7 @@ static int cmd_device_add(const struct cmd_struct *cmd, force = 1; break; default: - usage_unknown_option(cmd_device_add_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -331,7 +331,7 @@ static int cmd_device_scan(const struct cmd_struct *cmd, int argc, char **argv) forget = 1; break; default: - usage_unknown_option(cmd_device_scan_usage, argv); + usage_unknown_option(cmd, argv); } } devstart = optind; @@ -496,7 +496,7 @@ static int cmd_device_stats(const struct cmd_struct *cmd, int argc, char **argv) flags = BTRFS_DEV_STATS_RESET; break; default: - usage_unknown_option(cmd_device_stats_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-fi-du.c b/cmds-fi-du.c index cd7e8efc..6d034b3b 100644 --- a/cmds-fi-du.c +++ b/cmds-fi-du.c @@ -582,7 +582,7 @@ static int cmd_filesystem_du(const struct cmd_struct *cmd, summarize = 1; break; default: - usage_unknown_option(cmd_filesystem_du_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-fi-usage.c b/cmds-fi-usage.c index 2bafe341..66c28e79 100644 --- a/cmds-fi-usage.c +++ b/cmds-fi-usage.c @@ -988,7 +988,7 @@ static int cmd_filesystem_usage(const struct cmd_struct *cmd, tabular = 1; break; default: - usage_unknown_option(cmd_filesystem_usage_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-filesystem.c b/cmds-filesystem.c index f75f6778..f920877e 100644 --- a/cmds-filesystem.c +++ b/cmds-filesystem.c @@ -714,7 +714,7 @@ static int cmd_filesystem_show(const struct cmd_struct *cmd, where = BTRFS_SCAN_MOUNTED; break; default: - usage_unknown_option(cmd_filesystem_show_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -993,7 +993,7 @@ static int cmd_filesystem_defrag(const struct cmd_struct *cmd, recursive = 1; break; default: - usage_unknown_option(cmd_filesystem_defrag_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-inspect-dump-super.c b/cmds-inspect-dump-super.c index e0132c00..a85937fd 100644 --- a/cmds-inspect-dump-super.c +++ b/cmds-inspect-dump-super.c @@ -592,7 +592,7 @@ static int cmd_inspect_dump_super(const struct cmd_struct *cmd, all = 0; break; default: - usage_unknown_option(cmd_inspect_dump_super_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-inspect-dump-tree.c b/cmds-inspect-dump-tree.c index b9337b90..1588a0b0 100644 --- a/cmds-inspect-dump-tree.c +++ b/cmds-inspect-dump-tree.c @@ -401,7 +401,7 @@ static int cmd_inspect_dump_tree(const struct cmd_struct *cmd, traverse = BTRFS_PRINT_TREE_BFS; break; default: - usage_unknown_option(cmd_inspect_dump_tree_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-inspect-tree-stats.c b/cmds-inspect-tree-stats.c index dd4add54..10d6071e 100644 --- a/cmds-inspect-tree-stats.c +++ b/cmds-inspect-tree-stats.c @@ -445,7 +445,7 @@ static int cmd_inspect_tree_stats(const struct cmd_struct *cmd, no_pretty = 1; break; default: - usage_unknown_option(cmd_inspect_tree_stats_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-inspect.c b/cmds-inspect.c index fa99f7ea..e553014f 100644 --- a/cmds-inspect.c +++ b/cmds-inspect.c @@ -106,8 +106,7 @@ static int cmd_inspect_inode_resolve(const struct cmd_struct *cmd, verbose = 1; break; default: - usage_unknown_option(cmd_inspect_inode_resolve_usage, - argv); + usage_unknown_option(cmd, argv); } } @@ -170,8 +169,7 @@ static int cmd_inspect_logical_resolve(const struct cmd_struct *cmd, size = arg_strtou64(optarg); break; default: - usage_unknown_option(cmd_inspect_logical_resolve_usage, - argv); + usage_unknown_option(cmd, argv); } } @@ -626,8 +624,7 @@ static int cmd_inspect_min_dev_size(const struct cmd_struct *cmd, devid = arg_strtou64(optarg); break; default: - usage_unknown_option(cmd_inspect_min_dev_size_usage, - argv); + usage_unknown_option(cmd, argv); } } if (check_argc_exact(argc - optind, 1)) diff --git a/cmds-property.c b/cmds-property.c index 7823f3f8..5dc36256 100644 --- a/cmds-property.c +++ b/cmds-property.c @@ -272,7 +272,7 @@ static int parse_args(const struct cmd_struct *cmd, int argc, char **argv, type_str = optarg; break; default: - usage_unknown_option(cmd->usagestr, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-qgroup.c b/cmds-qgroup.c index b2f65073..bd947a43 100644 --- a/cmds-qgroup.c +++ b/cmds-qgroup.c @@ -68,7 +68,7 @@ static int _cmd_qgroup_assign(const struct cmd_struct *cmd, int assign, rescan = false; break; default: - usage_unknown_option(cmd->usagestr, argv); + usage_unknown_option(cmd, argv); } } } else { @@ -363,7 +363,7 @@ static int cmd_qgroup_show(const struct cmd_struct *cmd, int argc, char **argv) sync = 1; break; default: - usage_unknown_option(cmd_qgroup_show_usage, argv); + usage_unknown_option(cmd, argv); } } btrfs_qgroup_setup_units(unit_mode); @@ -447,7 +447,7 @@ static int cmd_qgroup_limit(const struct cmd_struct *cmd, int argc, char **argv) exclusive = 1; break; default: - usage_unknown_option(cmd_qgroup_limit_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-quota.c b/cmds-quota.c index 629b62ce..94b9c705 100644 --- a/cmds-quota.c +++ b/cmds-quota.c @@ -135,7 +135,7 @@ static int cmd_quota_rescan(const struct cmd_struct *cmd, int argc, char **argv) wait_for_completion = 1; break; default: - usage_unknown_option(cmd_quota_rescan_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-receive.c b/cmds-receive.c index 20a9446c..b833526e 100644 --- a/cmds-receive.c +++ b/cmds-receive.c @@ -1352,7 +1352,7 @@ static int cmd_receive(const struct cmd_struct *cmd, int argc, char **argv) dump = 1; break; default: - usage_unknown_option(cmd_receive_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-replace.c b/cmds-replace.c index 01314f83..5f39b109 100644 --- a/cmds-replace.c +++ b/cmds-replace.c @@ -148,7 +148,7 @@ static int cmd_replace_start(const struct cmd_struct *cmd, force_using_targetdev = 1; break; default: - usage_unknown_option(cmd_replace_start_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -348,7 +348,7 @@ static int cmd_replace_status(const struct cmd_struct *cmd, once = 1; break; default: - usage_unknown_option(cmd_replace_status_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -516,7 +516,7 @@ static int cmd_replace_cancel(const struct cmd_struct *cmd, switch (c) { case '?': default: - usage_unknown_option(cmd_replace_cancel_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-rescue.c b/cmds-rescue.c index 53673236..8dff8ac8 100644 --- a/cmds-rescue.c +++ b/cmds-rescue.c @@ -64,8 +64,7 @@ static int cmd_rescue_chunk_recover(const struct cmd_struct *cmd, verbose = 1; break; default: - usage_unknown_option(cmd_rescue_chunk_recover_usage, - argv); + usage_unknown_option(cmd, argv); } } @@ -135,8 +134,7 @@ static int cmd_rescue_super_recover(const struct cmd_struct *cmd, yes = 1; break; default: - usage_unknown_option(cmd_rescue_super_recover_usage, - argv); + usage_unknown_option(cmd, argv); } } if (check_argc_exact(argc - optind, 1)) diff --git a/cmds-restore.c b/cmds-restore.c index a821aa01..0b1a617b 100644 --- a/cmds-restore.c +++ b/cmds-restore.c @@ -1527,7 +1527,7 @@ static int cmd_restore(const struct cmd_struct *cmd, int argc, char **argv) get_xattrs = 1; break; default: - usage_unknown_option(cmd_restore_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-scrub.c b/cmds-scrub.c index a3fb6083..d7871e67 100644 --- a/cmds-scrub.c +++ b/cmds-scrub.c @@ -1171,7 +1171,7 @@ static int scrub_start(const struct cmd_struct *cmd, int argc, char **argv, force = 1; break; default: - usage_unknown_option(cmd->usagestr, argv); + usage_unknown_option(cmd, argv); } } @@ -1694,7 +1694,7 @@ static int cmd_scrub_status(const struct cmd_struct *cmd, int argc, char **argv) print_raw = 1; break; default: - usage_unknown_option(cmd_scrub_status_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-send.c b/cmds-send.c index ff04a0c2..5ce29546 100644 --- a/cmds-send.c +++ b/cmds-send.c @@ -637,7 +637,7 @@ static int cmd_send(const struct cmd_struct *cmd, int argc, char **argv) send_flags |= BTRFS_SEND_FLAG_NO_FILE_DATA; break; default: - usage_unknown_option(cmd_send_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/cmds-subvolume.c b/cmds-subvolume.c index 70910bb4..28b281fd 100644 --- a/cmds-subvolume.c +++ b/cmds-subvolume.c @@ -125,7 +125,7 @@ static int cmd_subvol_create(const struct cmd_struct *cmd, } break; default: - usage_unknown_option(cmd_subvol_create_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -280,7 +280,7 @@ static int cmd_subvol_delete(const struct cmd_struct *cmd, verbose++; break; default: - usage_unknown_option(cmd_subvol_delete_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -678,7 +678,7 @@ static int cmd_subvol_snapshot(const struct cmd_struct *cmd, } break; default: - usage_unknown_option(cmd_subvol_snapshot_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -985,7 +985,7 @@ static int cmd_subvol_show(const struct cmd_struct *cmd, int argc, char **argv) by_uuid = 1; break; default: - usage_unknown_option(cmd_subvol_show_usage, argv); + usage_unknown_option(cmd, argv); } } @@ -1221,7 +1221,7 @@ static int cmd_subvol_sync(const struct cmd_struct *cmd, int argc, char **argv) } break; default: - usage_unknown_option(cmd_subvol_sync_usage, argv); + usage_unknown_option(cmd, argv); } } diff --git a/help.c b/help.c index 9a5dbbb3..b94fa116 100644 --- a/help.c +++ b/help.c @@ -239,7 +239,7 @@ void usage_command(const struct cmd_struct *cmd, bool full, bool err) } __attribute__((noreturn)) -void usage_unknown_option(const char * const *usagestr, char **argv) +void usage_unknown_option(const struct cmd_struct *cmd, char **argv) { int i; int c; @@ -251,7 +251,7 @@ void usage_unknown_option(const char * const *usagestr, char **argv) */ i = 0; do { - c = usagestr[0][i]; + c = cmd->usagestr[0][i]; if (c == '<' || c == '[' || (prev == ' ' && c == '-')) { i--; break; @@ -268,7 +268,7 @@ void usage_unknown_option(const char * const *usagestr, char **argv) * Try 'btrfs device add --help' for more information */ - fprintf(stderr, "%.*s: ", i, usagestr[0]); + fprintf(stderr, "%.*s: ", i, cmd->usagestr[0]); if (!optopt) { /* * There's no better way to get the exact unrecognized token @@ -278,7 +278,8 @@ void usage_unknown_option(const char * const *usagestr, char **argv) } else { fprintf(stderr, "invalid option '%c'\n", optopt); } - fprintf(stderr, "Try '%.*s --help' for more information\n", i, usagestr[0]); + fprintf(stderr, "Try '%.*s --help' for more information\n", i, + cmd->usagestr[0]); exit(1); } diff --git a/help.h b/help.h index 18f0c1f4..c92d72a9 100644 --- a/help.h +++ b/help.h @@ -56,7 +56,7 @@ struct cmd_struct; struct cmd_group; __attribute__((noreturn)) -void usage_unknown_option(const char * const *usagestr, char **argv); +void usage_unknown_option(const struct cmd_struct *cmd, char **argv); __attribute__((noreturn)) void usage(const struct cmd_struct *cmd);