diff options
author | Miles Bader <miles@gnu.org> | 1997-06-18 16:29:05 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 1997-06-18 16:29:05 +0000 |
commit | a44b384f25696e3ca00c8e9f72a8cdebd209ec31 (patch) | |
tree | 8f801f9b7355de2f6fae90b08a733dd4f7899cf6 | |
parent | 5ef0f568dcd0422dcd71849a7c6ccd458a41ae7f (diff) |
(argp_args_usage):
Don't modify `fdoc' value since it is used to distinguish filtered strings
from unmodifed strings.
-rw-r--r-- | libshouldbeinlibc/argp-help.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/libshouldbeinlibc/argp-help.c b/libshouldbeinlibc/argp-help.c index 0d944414..f0e86d9c 100644 --- a/libshouldbeinlibc/argp-help.c +++ b/libshouldbeinlibc/argp-help.c @@ -922,7 +922,7 @@ filter_doc (const char *doc, int key, const struct argp *argp, } else /* No filter. */ - return (char *)doc; + return doc; } /* Prints STR as a header line, with the margin lines set appropiately, and @@ -1319,7 +1319,8 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, if (fdoc) { - nl = strchr (fdoc, '\n'); + const char *cp = fdoc; + nl = strchr (cp, '\n'); if (nl) /* This is a `multi-level' args doc; advance to the correct position as determined by our state in LEVELS, and update LEVELS. */ @@ -1327,17 +1328,17 @@ argp_args_usage (const struct argp *argp, const struct argp_state *state, int i; multiple = 1; for (i = 0; i < *our_level; i++) - fdoc = nl + 1, nl = strchr (fdoc, '\n'); + cp = nl + 1, nl = strchr (cp, '\n'); (*levels)++; } if (! nl) - nl = fdoc + strlen (fdoc); + nl = cp + strlen (cp); /* Manually do line wrapping so that it (probably) won't get wrapped at any embedded spaces. */ - space (stream, 1 + nl - fdoc); + space (stream, 1 + nl - cp); - __argp_fmtstream_write (stream, fdoc, nl - fdoc); + __argp_fmtstream_write (stream, cp, nl - cp); } if (fdoc && fdoc != tdoc) free ((char *)fdoc); /* Free user's modified doc string. */ |