From 63de2d9823f6211668b4b05cb23764ba69a7dc9a Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sat, 18 Oct 2008 15:56:45 +0200 Subject: Move substitute functions to a different file. --- lib/util/util_str.c | 138 ---------------------------------------------------- 1 file changed, 138 deletions(-) (limited to 'lib/util/util_str.c') diff --git a/lib/util/util_str.c b/lib/util/util_str.c index 9ea6403c52..bf4ae4d36e 100644 --- a/lib/util/util_str.c +++ b/lib/util/util_str.c @@ -259,144 +259,6 @@ _PUBLIC_ char *hex_encode_talloc(TALLOC_CTX *mem_ctx, const unsigned char *buff_ return hex_buffer; } -/** - Substitute a string for a pattern in another string. Make sure there is - enough room! - - This routine looks for pattern in s and replaces it with - insert. It may do multiple replacements. - - Any of " ; ' $ or ` in the insert string are replaced with _ - if len==0 then the string cannot be extended. This is different from the old - use of len==0 which was for no length checks to be done. -**/ - -_PUBLIC_ void string_sub(char *s, const char *pattern, const char *insert, size_t len) -{ - char *p; - ssize_t ls, lp, li, i; - - if (!insert || !pattern || !*pattern || !s) - return; - - ls = (ssize_t)strlen(s); - lp = (ssize_t)strlen(pattern); - li = (ssize_t)strlen(insert); - - if (len == 0) - len = ls + 1; /* len is number of *bytes* */ - - while (lp <= ls && (p = strstr(s, pattern))) { - if (ls + (li-lp) >= len) { - DEBUG(0,("ERROR: string overflow by %d in string_sub(%.50s, %d)\n", - (int)(ls + (li-lp) - len), - pattern, (int)len)); - break; - } - if (li != lp) { - memmove(p+li,p+lp,strlen(p+lp)+1); - } - for (i=0;i= len) { - DEBUG(0,("ERROR: string overflow by %d in all_string_sub(%.50s, %d)\n", - (int)(ls + (li-lp) - len), - pattern, (int)len)); - break; - } - if (li != lp) { - memmove(p+li,p+lp,strlen(p+lp)+1); - } - memcpy(p, insert, li); - s = p + li; - ls += (li-lp); - } -} - - - /** Unescape a URL encoded string, in place. **/ -- cgit