svn commit: samba r9270 - in trunk/source/lib: .

jra at samba.org jra at samba.org
Fri Aug 12 20:12:29 GMT 2005


Author: jra
Date: 2005-08-12 20:12:28 +0000 (Fri, 12 Aug 2005)
New Revision: 9270

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

Log:
Fix problems with german umlauts - strcmp_w was broken (needs to always re-call macro
on termination). Fix all other cases where this was also occurring.
Jeremy.

Modified:
   trunk/source/lib/util_str.c
   trunk/source/lib/util_unistr.c


Changeset:
Modified: trunk/source/lib/util_str.c
===================================================================
--- trunk/source/lib/util_str.c	2005-08-12 16:50:39 UTC (rev 9269)
+++ trunk/source/lib/util_str.c	2005-08-12 20:12:28 UTC (rev 9270)
@@ -183,7 +183,7 @@
 int StrCaseCmp(const char *s, const char *t)
 {
 
-	const char * ps, * pt;
+	const char *ps, *pt;
 	size_t size;
 	smb_ucs2_t *buffer_s, *buffer_t;
 	int ret;
@@ -211,17 +211,17 @@
 			return +1;
 	}
 
-	size = push_ucs2_allocate(&buffer_s, s);
+	size = push_ucs2_allocate(&buffer_s, ps);
 	if (size == (size_t)-1) {
-		return strcmp(s, t); 
+		return strcmp(ps, pt); 
 		/* Not quite the right answer, but finding the right one
 		   under this failure case is expensive, and it's pretty close */
 	}
 	
-	size = push_ucs2_allocate(&buffer_t, t);
+	size = push_ucs2_allocate(&buffer_t, pt);
 	if (size == (size_t)-1) {
 		SAFE_FREE(buffer_s);
-		return strcmp(s, t); 
+		return strcmp(ps, pt); 
 		/* Not quite the right answer, but finding the right one
 		   under this failure case is expensive, and it's pretty close */
 	}

Modified: trunk/source/lib/util_unistr.c
===================================================================
--- trunk/source/lib/util_unistr.c	2005-08-12 16:50:39 UTC (rev 9269)
+++ trunk/source/lib/util_unistr.c	2005-08-12 20:12:28 UTC (rev 9270)
@@ -568,7 +568,7 @@
 		a++;
 		b++;
 	}
-	return cpa - cpb;
+	return (*(COPY_UCS2_CHAR(&cpa,a)) - *(COPY_UCS2_CHAR(&cpb,b)));
 	/* warning: if *a != *b and both are not 0 we return a random
 		greater or lesser than 0 number not realted to which
 		string is longer */
@@ -584,7 +584,7 @@
 		b++;
 		n++;
 	}
-	return (len - n)?(cpa - cpb):0;
+	return (len - n)?(*(COPY_UCS2_CHAR(&cpa,a)) - *(COPY_UCS2_CHAR(&cpb,b))):0;
 }
 
 /*******************************************************************
@@ -599,7 +599,7 @@
 		a++;
 		b++;
 	}
-	return (tolower_w(cpa) - tolower_w(cpb));
+	return (tolower_w(*(COPY_UCS2_CHAR(&cpa,a))) - tolower_w(*(COPY_UCS2_CHAR(&cpb,b))));
 }
 
 /*******************************************************************
@@ -616,7 +616,7 @@
 		b++;
 		n++;
 	}
-	return (len - n)?(tolower_w(cpa) - tolower_w(cpb)):0;
+	return (len - n)?(tolower_w(*(COPY_UCS2_CHAR(&cpa,a))) - tolower_w(*(COPY_UCS2_CHAR(&cpb,b)))):0;
 }
 
 /*******************************************************************



More information about the samba-cvs mailing list