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