[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