Author: ed
Date: Sun Jan 31 14:51:04 2010
New Revision: 203290
URL: http://svn.freebsd.org/changeset/base/203290

Log:
  Perform some cleanups to devname(3).
  
  - Make sure the mode argument is either a character or a block device.
  - Use S_IS*() instead of checking S_IF*-flags by hand.
  - Don't use kern.devname when the argument is already NODEV.
  - Always call snprintf with the proper amount of arguments corresponding
    with the format.
  - Perform some whitespace fixes. Tabs instead of 4 spaces, missing space
    for return statement.
  - Remove unneeded includes.

Modified:
  head/lib/libc/gen/devname.c

Modified: head/lib/libc/gen/devname.c
==============================================================================
--- head/lib/libc/gen/devname.c Sun Jan 31 14:35:49 2010        (r203289)
+++ head/lib/libc/gen/devname.c Sun Jan 31 14:51:04 2010        (r203290)
@@ -36,10 +36,7 @@ __FBSDID("$FreeBSD$");
 #include <sys/types.h>
 #include <sys/sysctl.h>
 
-#include <err.h>
-#include <fcntl.h>
 #include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
 #include <sys/param.h>
 #include <sys/stat.h>
@@ -49,22 +46,22 @@ devname_r(dev_t dev, mode_t type, char *
 {
        int i;
        size_t j;
-       char *r;
 
-       if ((type & S_IFMT) == S_IFCHR) {
+       if (dev == NODEV || !(S_ISCHR(type) || S_ISBLK(dev))) {
+               strlcpy(buf, "#NODEV", len);
+               return (buf);
+       }
+
+       if (S_ISCHR(type)) {
                j = len;
                i = sysctlbyname("kern.devname", buf, &j, &dev, sizeof (dev));
                if (i == 0)
-                   return (buf);
+                       return (buf);
        }
 
        /* Finally just format it */
-       if (dev == NODEV)
-               r = "#NODEV";
-       else 
-               r = "#%c:%d:0x%x";
-       snprintf(buf, len, r,
-           (type & S_IFMT) == S_IFCHR ? 'C' : 'B', major(dev), minor(dev));
+       snprintf(buf, len, "#%c:%d:0x%x",
+           S_ISCHR(type) ? 'C' : 'B', major(dev), minor(dev));
        return (buf);
 }
 
@@ -73,5 +70,5 @@ devname(dev_t dev, mode_t type)
 {
        static char buf[SPECNAMELEN + 1];
 
-       return(devname_r(dev, type, buf, sizeof(buf)));
+       return (devname_r(dev, type, buf, sizeof(buf)));
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to