summaryrefslogtreecommitdiffstats
path: root/libdwfl/argp-std.c
diff options
context:
space:
mode:
authorRoland McGrath <[email protected]>2007-04-25 03:09:33 +0000
committerRoland McGrath <[email protected]>2007-04-25 03:09:33 +0000
commit4be1524398af8e24011cfdfa77c66832f8654a56 (patch)
tree84d4745346b459516ec67743a1b86b47793f146f /libdwfl/argp-std.c
parent89d6b4c552a469482d2a358fb492d39eb22beb13 (diff)
2007-04-24 Roland McGrath <[email protected]>
* run-strip-test.sh: When we saved the debug info, test unstrip too.
Diffstat (limited to 'libdwfl/argp-std.c')
-rw-r--r--libdwfl/argp-std.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/libdwfl/argp-std.c b/libdwfl/argp-std.c
index c12cb1dd..11397889 100644
--- a/libdwfl/argp-std.c
+++ b/libdwfl/argp-std.c
@@ -61,7 +61,7 @@
static const struct argp_option options[] =
{
- { NULL, 0, NULL, 0, N_("Input Selection:"), 0 },
+ { NULL, 0, NULL, 0, N_("Input selection options:"), 0 },
{ "executable", 'e', "FILE", 0, N_("Find addresses in FILE"), 0 },
{ "pid", 'p', "PID", 0,
N_("Find addresses in files mapped into process PID"), 0 },
@@ -244,14 +244,20 @@ parse_opt (int key, char *arg, struct argp_state *state)
int result = INTUSE(dwfl_report_end) (dwfl, NULL, NULL);
assert (result == 0);
-
- *(Dwfl **) state->input = dwfl;
}
break;
+ case ARGP_KEY_ERROR:
+ dwfl_end (state->hook);
+ state->hook = NULL;
+ break;
+
default:
return ARGP_ERR_UNKNOWN;
}
+
+ /* Update the input all along, so a parent parser can see it. */
+ *(Dwfl **) state->input = state->hook;
return 0;
}