From e1078b87ded65bd7af8401597ae017b90bdf3ce0 Mon Sep 17 00:00:00 2001 From: Andrew Bartlett Date: Thu, 14 Apr 2011 15:48:00 +1000 Subject: lib/util Move alpha_strcpy() from s3 into common code Autobuild-User: Andrew Bartlett Autobuild-Date: Thu Apr 14 09:21:59 CEST 2011 on sn-devel-104 --- source3/lib/util_str.c | 50 -------------------------------------------------- 1 file changed, 50 deletions(-) (limited to 'source3/lib/util_str.c') diff --git a/source3/lib/util_str.c b/source3/lib/util_str.c index 13b415070d9..88a3d703f4d 100644 --- a/source3/lib/util_str.c +++ b/source3/lib/util_str.c @@ -398,56 +398,6 @@ char *safe_strcat_fn(char *dest, return dest; } -/** - Paranoid strcpy into a buffer of given length (includes terminating - zero. Strips out all but 'a-Z0-9' and the character in other_safe_chars - and replaces with '_'. Deliberately does *NOT* check for multibyte - characters. Treats src as an array of bytes, not as a multibyte - string. Any byte >0x7f is automatically converted to '_'. - other_safe_chars must also contain an ascii string (bytes<0x7f). -**/ - -char *alpha_strcpy(char *dest, - const char *src, - const char *other_safe_chars, - size_t maxlength) -{ - size_t len, i; - - if (!dest) { - smb_panic("ERROR: NULL dest in alpha_strcpy"); - } - - if (!src) { - *dest = 0; - return dest; - } - - len = strlen(src); - if (len >= maxlength) - len = maxlength - 1; - - if (!other_safe_chars) - other_safe_chars = ""; - - for(i = 0; i < len; i++) { - int val = (src[i] & 0xff); - if (val > 0x7f) { - dest[i] = '_'; - continue; - } - if (isupper(val) || islower(val) || - isdigit(val) || strchr(other_safe_chars, val)) - dest[i] = src[i]; - else - dest[i] = '_'; - } - - dest[i] = '\0'; - - return dest; -} - /** Like strncpy but always null terminates. Make sure there is room! The variable n should always be one less than the available size. -- cgit v1.2.1