Author: delphij
Date: Tue Dec 11 01:12:29 2012
New Revision: 244104
URL: http://svnweb.freebsd.org/changeset/base/244104

Log:
  In parse():
  
   - Only operate on copy, don't operate on source.
   - Eliminate home-rolled strsep().
   - Constify the parameter.
  
  MFC after:    2 weeks

Modified:
  head/sbin/sysctl/sysctl.c

Modified: head/sbin/sysctl/sysctl.c
==============================================================================
--- head/sbin/sysctl/sysctl.c   Tue Dec 11 00:10:20 2012        (r244103)
+++ head/sbin/sysctl/sysctl.c   Tue Dec 11 01:12:29 2012        (r244104)
@@ -62,7 +62,7 @@ static int    aflag, bflag, dflag, eflag, h
 static int     Nflag, nflag, oflag, qflag, xflag, warncount;
 
 static int     oidfmt(int *, int, char *, u_int *);
-static void    parse(char *);
+static void    parse(const char *);
 static int     show_var(int *, int);
 static int     sysctl_all(int *oid, int len);
 static int     name2oid(char *, int *);
@@ -161,7 +161,7 @@ main(int argc, char **argv)
  * Set a new value if requested.
  */
 static void
-parse(char *string)
+parse(const char *string)
 {
        int len, i, j;
        void *newval = 0;
@@ -176,12 +176,11 @@ parse(char *string)
        char *cp, *bufp, buf[BUFSIZ], *endptr, fmt[BUFSIZ];
        u_int kind;
 
-       bufp = buf;
+       cp = buf;
        if (snprintf(buf, BUFSIZ, "%s", string) >= BUFSIZ)
                errx(1, "oid too long: '%s'", string);
-       if ((cp = strchr(string, '=')) != NULL) {
-               *strchr(buf, '=') = '\0';
-               *cp++ = '\0';
+       bufp = strsep(&cp, "=");
+       if (cp != NULL) {
                while (isspace(*cp))
                        cp++;
                newval = cp;
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to