1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-15 23:24:37 +03:00

make strupper() and strlower() not modify the string if it doesn't

need modifying

that makes constant strings OK
This commit is contained in:
Andrew Tridgell -
parent 14bfd9107a
commit 57196635d9
2 changed files with 16 additions and 6 deletions

View File

@ -140,7 +140,7 @@ int unix_strupper(const char *src, size_t srclen, char *dest, size_t destlen)
smb_ucs2_t *buffer=(smb_ucs2_t*)cvtbuf;
size=convert_string(CH_UNIX, CH_UCS2, src, srclen, buffer, sizeof(cvtbuf));
len=size/2;
strupper_w(buffer);
if (!strupper_w(buffer) && (dest == src)) return srclen;
return convert_string(CH_UCS2, CH_UNIX, buffer, size, dest, destlen);
}
@ -150,7 +150,7 @@ int unix_strlower(const char *src, size_t srclen, char *dest, size_t destlen)
smb_ucs2_t *buffer=(smb_ucs2_t*)cvtbuf;
size=convert_string(CH_UNIX, CH_UCS2, src, srclen, buffer, sizeof(cvtbuf));
len=size/2;
strlower_w(buffer);
if (!strlower_w(buffer) && (dest == src)) return srclen;
return convert_string(CH_UCS2, CH_UNIX, buffer, size, dest, destlen);
}

View File

@ -248,26 +248,36 @@ smb_ucs2_t *strchr_w(const smb_ucs2_t *s, smb_ucs2_t c)
/*******************************************************************
Convert a string to lower case.
return True if any char is converted
********************************************************************/
void strlower_w(smb_ucs2_t *s)
BOOL strlower_w(smb_ucs2_t *s)
{
BOOL ret = False;
while (*s) {
if (isupper_w(*s))
if (isupper_w(*s)) {
*s = tolower_w(*s);
ret = True;
}
s++;
}
return ret;
}
/*******************************************************************
Convert a string to upper case.
return True if any char is converted
********************************************************************/
void strupper_w(smb_ucs2_t *s)
BOOL strupper_w(smb_ucs2_t *s)
{
BOOL ret = False;
while (*s) {
if (islower_w(*s))
if (islower_w(*s)) {
*s = toupper_w(*s);
ret = True;
}
s++;
}
return ret;
}
/*******************************************************************