*/
#include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/usr.bin/getconf/getconf.c,v 1.9 2003/08/22 17:32:07 markm Exp $");
+__FBSDID("$FreeBSD: src/usr.bin/getconf/getconf.c,v 1.10 2006/12/06 12:00:26 maxim Exp $");
#include <sys/types.h>
}
if (argv[optind + 1] == NULL) { /* confstr or sysconf */
-#ifdef APPLE_GETCONF_SPEC
- if ((valid = find_progenv(name, &alt_path)) != 0) {
- printf(valid > 0 ? "defined\n" : "undefined\n");
- return 0;
- }
-#endif /* APPLE_GETCONF_SPEC */
if ((valid = find_limit(name, &limitval)) != 0) {
if (valid > 0)
printf("%" PRIdMAX "\n", limitval);
do_confstr(name, key);
else
printf("undefined\n");
- } else {
+ } else {
valid = find_sysconf(name, &key);
if (valid > 0) {
do_sysconf(name, key);
} else if (valid < 0) {
printf("undefined\n");
- } else
+ } else
errx(EX_USAGE,
"no such configuration parameter `%s'",
name);
do_confstr(const char *name, int key)
{
size_t len;
+ int savederr;
+ savederr = errno;
+ errno = 0;
len = confstr(key, 0, 0);
- if (len == (size_t)-1)
- err(EX_OSERR, "confstr: %s", name);
-
- if (len == 0)
- printf("undefined\n");
- else {
+ if (len == 0) {
+ if (errno)
+ err(EX_OSERR, "confstr: %s", name);
+ else
+ printf("undefined\n");
+ } else {
char buf[len + 1];
confstr(key, buf, len);
printf("%s\n", buf);
}
+ errno = savederr;
}
static void
else
printf("%ld\n", value);
}
-