There's a problem of mount_smb when mounting a share with Chinese Big5
in its name.

[EMAIL PROTECTED] has the update with
/usr/src/contrib/smbfs/lib/smb/nls.c:

nls_str_upper(char *dst, const char *src)
{
char *p = dst;

- while (*src)
- *dst++ = toupper(*src++);
*dst = 0;
return p;
}
--- 217,236 ----
nls_str_upper(char *dst, const char *src)
{
char *p = dst;
+ int big5 = 0;
+
+ while (*src) {
+ if (big5)
+ *dst++ = *src++;
+ else
+ *dst++ = toupper(*src++);
+
+ if (!big5 && *(src - 1) < 0)
+ big5 = 1;
+ else
+ big5 = 0;
+ }

*dst = 0;
return p;
}

It seems that the original code makes all character to upper case even
if it's a part of a multi-byte word.
Would you please fix the problem?

Thanks.

Liang-Heng [EMAIL PROTECTED]

_______________________________________________
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to