Right now, config doesn't work when either -b or -s is specified. It does work
when both or none are specified. Does anyone know what the correct behaviour
should be?

Here is a diff that would at least make this behaviour explicit (if correct, 
OK?).

-- 
Cheers,
Jasper

"Capable, generous men do not create victims, they nurture them."

Index: config.8
===================================================================
RCS file: /cvs/src/usr.sbin/config/config.8,v
retrieving revision 1.54
diff -p -u -r1.54 config.8
--- config.8    10 Dec 2009 22:07:19 -0000      1.54
+++ config.8    5 Jan 2011 13:33:28 -0000
@@ -39,8 +39,7 @@
 .Sh SYNOPSIS
 .Nm config
 .Op Fl p
-.Op Fl b Ar builddir
-.Op Fl s Ar srcdir
+.Op Fl b Ar builddir Fl s Ar srcdir
 .Op Ar config-file
 .Nm config
 .Op Fl u
Index: main.c
===================================================================
RCS file: /cvs/src/usr.sbin/config/main.c,v
retrieving revision 1.41
diff -p -u -r1.41 main.c
--- main.c      27 Oct 2009 23:59:51 -0000      1.41
+++ main.c      5 Jan 2011 13:33:29 -0000
@@ -84,7 +84,7 @@ usage(void)
        extern char *__progname;
 
        fprintf(stderr,
-               "usage: %s [-p] [-b builddir] [-s srcdir] [config-file]\n"
+               "usage: %s [-p] [-b builddir -s srcdir] [config-file]\n"
                "       %s [-u] [-f | -o outfile] -e infile\n",
                __progname, __progname);
 
@@ -162,6 +162,12 @@ main(int argc, char *argv[])
        argv += optind;
        if (argc > 1 || (eflag && argv[0] == NULL))
                usage();
+
+       if ((builddir && !srcdir) || (!builddir && srcdir)) {
+               fprintf(stderr, "config: both -b (builddir) and -s 
(sourcedir)");
+               fprintf(stderr, " need to be specified\n");
+               usage();
+       }
 
        if (eflag) {
 #ifdef MAKE_BOOTSTRAP

Reply via email to