filename problem.
Problem conditions:
case sensitive = no
default case = lower
mangle case = yes
preserve case = yes
short preserve case = yes
Problem: Win95 still writes upper case file names.
Patches supplied have been incorporated into mangle.c and server.c
but needs YOSTW to be defined for it to take effect.
Action:
=======
If we are happy with the patch, delete old code in mangle.c, then
remove all YOSTW #ifdefs.
(This used to be commit
84fc674c89e8999f284b59888dfa2cdc47438e88)
DEBUG(5,("checking %s for 8.3\n",fname));
if (case_mangle)
+#ifndef YOSTW
switch (case_default)
{
case CASE_LOWER:
if (strhaslower(fname)) return(False);
break;
}
+#endif
+#ifdef YOSTW
+ if (strhasupper(fname) && strhaslower(fname)) return(False);
+#endif
/* can't be longer than 12 chars */
if (len == 0 || len > 12)
struct stat st;
char *start, *end;
pstring dirpath;
+#ifdef YOSTW
+ char szName[132], *p;
+#endif
*dirpath = 0;
if(saved_last_component)
unix_format(name);
unix_clean_name(name);
+#ifdef YOSTW
+ /* Remove leading path specifications to check for 8_3 name */
+ if ( strncmp( name, "./",2) == 0 ) {
+ strcpy( szName, name+2 );
+ }
+ else {
+ strcpy( szName, name );
+ }
+ p = strrchr( szName, '/' );
+ if ( p != NULL ) {
+ p++;
+ }
+ else {
+ p = szName;
+ }
+#endif
+
if (!case_sensitive &&
(!case_preserve || (is_8_3(name) && !short_case_preserve)))
strnorm(name);