=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/xargs/xargs.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- src/usr.bin/xargs/xargs.c 1998/04/26 17:12:48 1.7 +++ src/usr.bin/xargs/xargs.c 1998/06/23 00:22:58 1.8 @@ -1,4 +1,4 @@ -/* $OpenBSD: xargs.c,v 1.7 1998/04/26 17:12:48 deraadt Exp $ */ +/* $OpenBSD: xargs.c,v 1.8 1998/06/23 00:22:58 deraadt Exp $ */ /* $NetBSD: xargs.c,v 1.7 1994/11/14 06:51:41 jtc Exp $ */ /*- @@ -47,7 +47,7 @@ #if 0 static char sccsid[] = "@(#)xargs.c 8.1 (Berkeley) 6/6/93"; #endif -static char rcsid[] = "$OpenBSD: xargs.c,v 1.7 1998/04/26 17:12:48 deraadt Exp $"; +static char rcsid[] = "$OpenBSD: xargs.c,v 1.8 1998/06/23 00:22:58 deraadt Exp $"; #endif /* not lint */ #include @@ -78,6 +78,7 @@ register char *p, *bbp, *ebp, **bxp, **exp, **xp; int cnt, indouble, insingle, nargs, nflag, nline, xflag; char **av, *argp; + int arg_max; setlocale(LC_ALL, ""); @@ -95,7 +96,9 @@ * probably not worthwhile. */ nargs = 5000; - nline = ARG_MAX - 4 * 1024; + if ((arg_max = sysconf(_SC_ARG_MAX)) == -1) + errx(1, "sysconf(_SC_ARG_MAX) failed"); + nline = arg_max - 4 * 1024; nflag = xflag = 0; while ((ch = getopt(argc, argv, "0n:s:tx")) != -1) switch(ch) {