From 9ac24fc02219f3b7bdf0cdfdf6d557a215f060f0 Mon Sep 17 00:00:00 2001 From: Marcus Brinkmann Date: Thu, 24 Feb 2005 01:48:44 +0000 Subject: 2005-02-24 Ben Asselstine * init.c (main): Only pass ARGP_NO_ERRS to argp_parse when invoked by the bootstrap filesystem. (flags): New variable. --- init/init.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'init/init.c') diff --git a/init/init.c b/init/init.c index 125084a9..d7e42467 100644 --- a/init/init.c +++ b/init/init.c @@ -529,13 +529,19 @@ main (int argc, char **argv, char **envp) { volatile int err; int i; + int flags; mach_port_t consdev; struct argp argp = { options, parse_opt, 0, doc }; - /* Parse the arguments. We don't want the vector reordered, - we should pass on to our child the exact arguments we got - and just ignore any arguments that aren't flags for us. */ - argp_parse (&argp, argc, argv, ARGP_NO_ERRS|ARGP_IN_ORDER, 0, 0); + /* Parse the arguments. We don't want the vector reordered, we + should pass on to our child the exact arguments we got and just + ignore any arguments that aren't flags for us. ARGP_NO_ERRS + suppresses --help and --version, so we only use that option if we + are booting. */ + flags = ARGP_IN_ORDER; + if (getpid () == 0) + flags |= ARGP_NO_ERRS; + argp_parse (&argp, argc, argv, flags, 0, 0); if (getpid () > 0) error (2, 0, "can only be run by bootstrap filesystem"); -- cgit v1.2.3