socsvn commit: r253457 - soc2013/mattbw/backend

mattbw at FreeBSD.org mattbw at FreeBSD.org
Mon Jun 24 22:15:36 UTC 2013


Author: mattbw
Date: Mon Jun 24 22:15:36 2013
New Revision: 253457
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=253457

Log:
  use strchr instead of rolling our own

Modified:
  soc2013/mattbw/backend/groups.c

Modified: soc2013/mattbw/backend/groups.c
==============================================================================
--- soc2013/mattbw/backend/groups.c	Mon Jun 24 21:33:19 2013	(r253456)
+++ soc2013/mattbw/backend/groups.c	Mon Jun 24 22:15:36 2013	(r253457)
@@ -19,13 +19,15 @@
  */
 
 #include <stdlib.h>		/* NULL */
-#include <string.h>		/* strdup */
+#include <string.h>		/* strchr, strdup */
 
 #include "glib.h"		/* g_strcmp0 */
 #include "pk-backend.h"		/* PkGroupEnum, PK_* */
 
 #include "groups.h"		/* prototypes */
 
+const char ORIGIN_SEPARATOR = '/';
+
 struct group_mapping {
 	const char     *dir;
 	PkGroupEnum	group;
@@ -140,20 +142,19 @@
 group_from_origin(const char *origin)
 {
 	char           *dir;
-	int		i;
+	char	       *sep;
 	PkGroupEnum	group;
 
 	/* Find the separation between dir and port name */
-	for (i = 0; origin[i] != '/' && origin[i] != '\0'; i++);
-
-	/* Is this a valid origin? If not, we want the default group */
-	if (origin[i] == '\0')
-		dir = NULL;
-	else
-		dir = strndup(origin, i);
+	sep = strchr(origin, ORIGIN_SEPARATOR);
 
+	/* Is this a valid origin (did it have a separator)?
+	 * If not, we want the default group.
+	 * If so, then the number of chars between the origin start and the
+	 * separator mark the port directory name we want to use.
+	 */
+	dir = (sep == NULL ? NULL : strndup(origin, sep - origin));
 	group = group_from_port_dir(dir);
-
 	if (dir)
 		free(dir);
 


More information about the svn-soc-all mailing list