]> git.saurik.com Git - apple/system_cmds.git/blobdiff - getconf.tproj/getconf.c
system_cmds-735.30.2.tar.gz
[apple/system_cmds.git] / getconf.tproj / getconf.c
index 8b636ddbdd08ba232d28087252f43ac7aa451714..b2a275298cf3dd7d8db9a618ea84fe6f0239e5b8 100644 (file)
@@ -28,7 +28,7 @@
  */
 
 #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>
 
@@ -96,12 +96,6 @@ main(int argc, char **argv)
        }
 
        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);
@@ -115,13 +109,13 @@ main(int argc, char **argv)
                                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);
@@ -145,19 +139,23 @@ static void
 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
@@ -189,4 +187,3 @@ do_pathconf(const char *name, int key, const char *path)
        else
                printf("%ld\n", value);
 }
-