svn commit: samba r10516 - in branches/SAMBA_4_0/source: lib torture/local

jelmer at samba.org jelmer at samba.org
Mon Sep 26 18:16:24 GMT 2005


Author: jelmer
Date: 2005-09-26 18:16:23 +0000 (Mon, 26 Sep 2005)
New Revision: 10516

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10516

Log:
Add seperator argument to str_list_{make,join}_shell()

Modified:
   branches/SAMBA_4_0/source/lib/util_strlist.c
   branches/SAMBA_4_0/source/torture/local/util_strlist.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/util_strlist.c
===================================================================
--- branches/SAMBA_4_0/source/lib/util_strlist.c	2005-09-26 18:15:24 UTC (rev 10515)
+++ branches/SAMBA_4_0/source/lib/util_strlist.c	2005-09-26 18:16:23 UTC (rev 10516)
@@ -75,7 +75,7 @@
    Entries are seperated by spaces and can be enclosed by quotes. 
    Does NOT support escaping
  */
-const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string)
+const char **str_list_make_shell(TALLOC_CTX *mem_ctx, const char *string, const char *sep)
 {
 	int num_elements = 0;
 	const char **ret = NULL;
@@ -85,13 +85,16 @@
 		return NULL;
 	}
 
+	if (sep == NULL)
+		sep = " \t\n\r";
+
 	while (string && *string) {
-		size_t len = strcspn(string, " ");
+		size_t len = strcspn(string, sep);
 		char *element;
 		const char **ret2;
 		
 		if (len == 0) {
-			string += strspn(string, " ");
+			string += strspn(string, sep);
 			continue;
 		}
 
@@ -148,7 +151,7 @@
 
 /* join a list back to one (shell-like) string; entries 
  * seperated by spaces, using quotes where necessary */
-char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list)
+char *str_list_join_shell(TALLOC_CTX *mem_ctx, const char **list, char sep)
 {
 	char *ret = NULL;
 	int i;
@@ -163,9 +166,9 @@
 
 	for (i = 1; list[i]; i++) {
 		if (strchr(list[i], ' ') || strlen(list[i]) == 0) 
-			ret = talloc_asprintf_append(ret, " \"%s\"", list[i]);
+			ret = talloc_asprintf_append(ret, "%c\"%s\"", sep, list[i]);
 		else 
-			ret = talloc_asprintf_append(ret, " %s", list[i]);
+			ret = talloc_asprintf_append(ret, "%c%s", sep, list[i]);
 	}
 
 	return ret;

Modified: branches/SAMBA_4_0/source/torture/local/util_strlist.c
===================================================================
--- branches/SAMBA_4_0/source/torture/local/util_strlist.c	2005-09-26 18:15:24 UTC (rev 10515)
+++ branches/SAMBA_4_0/source/torture/local/util_strlist.c	2005-09-26 18:16:23 UTC (rev 10516)
@@ -38,9 +38,9 @@
 		const char **ret1, **ret2, *tmp;
 		BOOL match = True;
 
-		ret1 = str_list_make_shell(mem_ctx, test_lists_shell_strings[i]);
-		tmp = str_list_join_shell(mem_ctx, ret1);
-		ret2 = str_list_make_shell(mem_ctx, tmp);
+		ret1 = str_list_make_shell(mem_ctx, test_lists_shell_strings[i], " ");
+		tmp = str_list_join_shell(mem_ctx, ret1, ' ');
+		ret2 = str_list_make_shell(mem_ctx, tmp, " ");
 		
 		if ((ret1 == NULL || ret2 == NULL) && ret2 != ret1) {
 			match = False;



More information about the samba-cvs mailing list