Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Rework make_usage to print the usage message immediately
author
Alex Riesen
<raa.lkml@gmail.com>
Sat, 13 Oct 2007 22:10:51 +0000
(
00:10
+0200)
committer
Junio C Hamano
<gitster@pobox.com>
Tue, 30 Oct 2007 04:03:30 +0000
(21:03 -0700)
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
parse-options.c
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
beb4743
)
diff --git
a/parse-options.c
b/parse-options.c
index 57a2a1126613ad31ecb2d55c9ff37f58b42d1618..89c5f52be567cc5ee59e4d89e0ef671dd6d502ba 100644
(file)
--- a/
parse-options.c
+++ b/
parse-options.c
@@
-1,6
+1,5
@@
#include "git-compat-util.h"
#include "parse-options.h"
#include "git-compat-util.h"
#include "parse-options.h"
-#include "strbuf.h"
#define OPT_SHORT 1
#define OPT_UNSET 2
#define OPT_SHORT 1
#define OPT_UNSET 2
@@
-172,59
+171,57
@@
int parse_options(int argc, const char **argv, const struct option *options,
void usage_with_options(const char * const *usagestr,
const struct option *opts)
{
void usage_with_options(const char * const *usagestr,
const struct option *opts)
{
- struct strbuf sb;
-
- strbuf_init(&sb, 4096);
- strbuf_addstr(&sb, *usagestr);
- strbuf_addch(&sb, '\n');
- while (*++usagestr)
- strbuf_addf(&sb, " %s\n", *usagestr);
+ fprintf(stderr, "usage: %s\n", *usagestr++);
+ while (*usagestr && **usagestr)
+ fprintf(stderr, " or: %s\n", *usagestr++);
+ while (*usagestr)
+ fprintf(stderr, " %s\n", *usagestr++);
if (opts->type != OPTION_GROUP)
if (opts->type != OPTION_GROUP)
-
strbuf_addch(&sb, '\n'
);
+
fputc('\n', stderr
);
for (; opts->type != OPTION_END; opts++) {
size_t pos;
int pad;
if (opts->type == OPTION_GROUP) {
for (; opts->type != OPTION_END; opts++) {
size_t pos;
int pad;
if (opts->type == OPTION_GROUP) {
-
strbuf_addch(&sb, '\n'
);
+
fputc('\n', stderr
);
if (*opts->help)
if (*opts->help)
-
strbuf_addf(&sb
, "%s\n", opts->help);
+
fprintf(stderr
, "%s\n", opts->help);
continue;
}
continue;
}
- pos = sb.len;
- strbuf_addstr(&sb, " ");
+ pos = fprintf(stderr, " ");
if (opts->short_name)
if (opts->short_name)
-
strbuf_addf(&sb
, "-%c", opts->short_name);
+
pos += fprintf(stderr
, "-%c", opts->short_name);
if (opts->long_name && opts->short_name)
if (opts->long_name && opts->short_name)
-
strbuf_addstr(&sb
, ", ");
+
pos += fprintf(stderr
, ", ");
if (opts->long_name)
if (opts->long_name)
-
strbuf_addf(&sb
, "--%s", opts->long_name);
+
pos += fprintf(stderr
, "--%s", opts->long_name);
switch (opts->type) {
case OPTION_INTEGER:
switch (opts->type) {
case OPTION_INTEGER:
-
strbuf_addstr(&sb
, " <n>");
+
pos += fprintf(stderr
, " <n>");
break;
case OPTION_STRING:
if (opts->argh)
break;
case OPTION_STRING:
if (opts->argh)
-
strbuf_addf(&sb
, " <%s>", opts->argh);
+
pos += fprintf(stderr
, " <%s>", opts->argh);
else
else
-
strbuf_addstr(&sb
, " ...");
+
pos += fprintf(stderr
, " ...");
break;
default:
break;
}
break;
default:
break;
}
- pad = sb.len - pos;
- if (pad <= USAGE_OPTS_WIDTH)
- pad = USAGE_OPTS_WIDTH - pad;
+ if (pos <= USAGE_OPTS_WIDTH)
+ pad = USAGE_OPTS_WIDTH - pos;
else {
else {
-
strbuf_addch(&sb, '\n'
);
+
fputc('\n', stderr
);
pad = USAGE_OPTS_WIDTH;
}
pad = USAGE_OPTS_WIDTH;
}
-
strbuf_addf(&sb
, "%*s%s\n", pad + USAGE_GAP, "", opts->help);
+
fprintf(stderr
, "%*s%s\n", pad + USAGE_GAP, "", opts->help);
}
}
- usage(sb.buf);
+ fputc('\n', stderr);
+
+ exit(129);
}
}