[Initng-svn] r2310 - in initng: plugins/simple_launcher src

svn at initng.thinktux.net svn at initng.thinktux.net
Fri Dec 2 13:42:07 CET 2005


Author: jimmy
Date: Fri Dec  2 13:42:06 2005
New Revision: 2310

Modified:
   initng/plugins/simple_launcher/initng_simple_launcher.c
   initng/src/initng_string_tools.c
   initng/src/initng_string_tools.h
Log:
Move split_argv to initng_string_tools.c


Modified: initng/plugins/simple_launcher/initng_simple_launcher.c
==============================================================================
--- initng/plugins/simple_launcher/initng_simple_launcher.c	(original)
+++ initng/plugins/simple_launcher/initng_simple_launcher.c	Fri Dec  2 13:42:06 2005
@@ -64,47 +64,6 @@
 			D_( "%s: %s\n", o, argv[i]);
 }
 
-/** Relinks a string to a argv-like string-array.
- * Something like split_n().
- * Example: \t  /bin/executeable --ham -flt   --moohoho  lalala
- *       => \t  /bin/executeable\0--ham\0-flt\0  --moo\0hoho\0 lalala
- *    argv:     ^[0]              ^[1]   ^[2]    ^[3]   ^[4]   ^[5]
- *    argc: 6
- * @idea DEac-
- * @author TheLich
- */
-static char **split_argv(char *string, const char *delim, size_t *argc)
-{
-    int len,pos=0;
-    char **array = (char **) initng_calloc(1, sizeof(char *));
-    size_t i=0;
-    
-    if (string)
-    {
-	while (string[pos]!='\0')
-	{
-	    len = strcspn(string+pos, delim);
-	    if (len!=0)
-	    {
-		i++;
-		array = (char **) initng_realloc(array, sizeof(char *) * (i+1));
-		array[i-1]=string+pos;
-		if (string[len+pos]!='\0')
-		{
-		    string[len+pos]='\0';
-		    len++;
-		}
-	    }
-	    else
-		len = 1;
-
-	    pos+=len;
-	}
-    }
-    array[i]=NULL;
-    *argc = i;
-    return array;
-}
 
 /* Completely rewritten function.
  * Contains old Code from SaTaN0rX and DEac-.

Modified: initng/src/initng_string_tools.c
==============================================================================
--- initng/src/initng_string_tools.c	(original)
+++ initng/src/initng_string_tools.c	Fri Dec  2 13:42:06 2005
@@ -78,6 +78,50 @@
     return v;
 }
 
+
+/** Relinks a string to a argv-like string-array.
+ * Something like split_n().
+ * Example: \t  /bin/executeable --ham -flt   --moohoho  lalala
+ *       => \t  /bin/executeable\0--ham\0-flt\0  --moo\0hoho\0 lalala
+ *    argv:     ^[0]              ^[1]   ^[2]    ^[3]   ^[4]   ^[5]
+ *    argc: 6
+ * @idea DEac-
+ * @author TheLich
+ */
+char **split_argv(char *string, const char *delim, size_t *argc)
+{
+    int len,pos=0;
+    char **array = (char **) initng_calloc(1, sizeof(char *));
+    size_t i=0;
+    
+    if (string)
+    {
+	while (string[pos]!='\0')
+	{
+	    len = strcspn(string+pos, delim);
+	    if (len!=0)
+	    {
+		i++;
+		array = (char **) initng_realloc(array, sizeof(char *) * (i+1));
+		array[i-1]=string+pos;
+		if (string[len+pos]!='\0')
+		{
+		    string[len+pos]='\0';
+		    len++;
+		}
+	    }
+	    else
+		len = 1;
+
+	    pos+=len;
+	}
+    }
+    array[i]=NULL;
+    *argc = i;
+    return array;
+}
+
+
 /*
  * a stack starts with {, and this function calculates
  * the string lent to the }, there can be many

Modified: initng/src/initng_string_tools.h
==============================================================================
--- initng/src/initng_string_tools.h	(original)
+++ initng/src/initng_string_tools.h	Fri Dec  2 13:42:06 2005
@@ -56,6 +56,10 @@
 int st_strip_end(char **string);
 char *st_get_path(char *string);
 
+/* to use with split_argv */
+#define WHITESPACE " \t\n\r\v"
+static char **split_argv(char *string, const char *delim, size_t *argc);
+
 /* pattern searching */
 int service_match(const char *string, const char *pattern);
 


More information about the Initng-svn mailing list