diff options
author | Ulrich Drepper <drepper@redhat.com> | 2007-03-15 20:09:02 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2007-03-15 20:09:02 +0000 |
commit | 44969f17bb8e323ab66799f73a05d23a5a2cf83a (patch) | |
tree | 6df32fdd8e591f15fa7d606c07f5370615dbfd15 /argp/argp-help.c | |
parent | 05eb8975048ff270f6c0d61332e2130bcf2c9b6c (diff) | |
download | glibc-44969f17bb8e323ab66799f73a05d23a5a2cf83a.tar.gz glibc-44969f17bb8e323ab66799f73a05d23a5a2cf83a.tar.xz glibc-44969f17bb8e323ab66799f73a05d23a5a2cf83a.zip |
[BZ #4101]
* argp/argp-help.c (hol_cluster_cmp): Fix comparisons used to find ancestors with the same depths. Patch by Niels Moeller <nisse@lysator.liu.se>. (filter_doc): Don't crash if argp is NULL. * argp/Makefile (tests): Add tst-argp2. * argp/tst-argp2.c: New test. 2007-03-15 Jakub Jelinek <jakub@redhat.com>
Diffstat (limited to 'argp/argp-help.c')
-rw-r--r-- | argp/argp-help.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/argp/argp-help.c b/argp/argp-help.c index 13c0820710..c12b10e235 100644 --- a/argp/argp-help.c +++ b/argp/argp-help.c @@ -1,5 +1,6 @@ /* Hierarchial argument parsing help output - Copyright (C) 1995-2003, 2004, 2005, 2006 Free Software Foundation, Inc. + Copyright (C) 1995-2003, 2004, 2005, 2006, 2007 + Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. @@ -672,9 +673,9 @@ hol_cluster_cmp (const struct hol_cluster *cl1, const struct hol_cluster *cl2) { /* If one cluster is deeper than the other, use its ancestor at the same level, so that finding the common ancestor is straightforward. */ - while (cl1->depth < cl2->depth) + while (cl1->depth > cl2->depth) cl1 = cl1->parent; - while (cl2->depth < cl1->depth) + while (cl2->depth > cl1->depth) cl2 = cl2->parent; /* Now reduce both clusters to their ancestors at the point where both have @@ -987,7 +988,7 @@ static const char * filter_doc (const char *doc, int key, const struct argp *argp, const struct argp_state *state) { - if (argp->help_filter) + if (argp && argp->help_filter) /* We must apply a user filter to this output. */ { void *input = __argp_input (argp, state); |