X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=help.c;h=f1dd39460bc63b3741e449fea13bbd7e4bc03a51;hb=f5dd778f5299088f89d380ce922a84d77a98b9d6;hp=99097db84ec4a02c9f74edd821f41899909520b3;hpb=628307f5c4de32b282bef30eda7fc034d198c6d4;p=platform%2Fupstream%2Fbtrfs-progs.git diff --git a/help.c b/help.c index 99097db..f1dd394 100644 --- a/help.c +++ b/help.c @@ -115,7 +115,7 @@ void clean_args_no_options(int argc, char *argv[], const char * const *usagestr) * - "-- option1 option2 ..." * - "option1 option2 ..." */ -void clean_args_no_options_relaxed(int argc, char *argv[], const char * const *usagestr) +void clean_args_no_options_relaxed(int argc, char *argv[]) { if (argc <= 1) return; @@ -128,12 +128,32 @@ static int do_usage_one_command(const char * const *usagestr, unsigned int flags, FILE *outf) { int pad = 4; + const char *prefix = "usage: "; + const char *pad_listing = " "; if (!usagestr || !*usagestr) return -1; - fprintf(outf, "%s%s", (flags & USAGE_LISTING) ? " " : "usage: ", - *usagestr++); + if (flags & USAGE_LISTING) + prefix = pad_listing; + + fputs(prefix, outf); + if (strchr(*usagestr, '\n') == NULL) { + fputs(*usagestr, outf); + } else { + const char *c = *usagestr; + const char *nprefix = " "; + + if (flags & USAGE_LISTING) + nprefix = pad_listing; + + for (c = *usagestr; *c; c++) { + fputc(*c, outf); + if (*c == '\n') + fputs(nprefix, outf); + } + } + usagestr++; /* a short one-line description (mandatory) */ if ((flags & USAGE_SHORT) == 0)