summaryrefslogtreecommitdiff
path: root/fs/cifs/cifs_unicode.c
diff options
context:
space:
mode:
authorJody McIntyre <scjody@modernduck.com>2005-11-22 12:38:34 -0500
committerJody McIntyre <scjody@modernduck.com>2005-11-22 12:38:34 -0500
commit899a1fc084ef3dcb57737d8847bf219cbf353ed3 (patch)
treea9dc1c8530524e0ac345f06de6df105f847a7604 /fs/cifs/cifs_unicode.c
parentc64d472abc68dcad4d34f365545058c3f11973d8 (diff)
parent989e4d6cbc69191c41ddf4b1c492457410376b43 (diff)
Merge with http://kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'fs/cifs/cifs_unicode.c')
-rw-r--r--fs/cifs/cifs_unicode.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/cifs/cifs_unicode.c b/fs/cifs/cifs_unicode.c
index 4e12053f0806..d2b128255944 100644
--- a/fs/cifs/cifs_unicode.c
+++ b/fs/cifs/cifs_unicode.c
@@ -1,7 +1,7 @@
/*
* fs/cifs/cifs_unicode.c
*
- * Copyright (c) International Business Machines Corp., 2000,2002
+ * Copyright (c) International Business Machines Corp., 2000,2005
* Modified by Steve French (sfrench@us.ibm.com)
*
* This program is free software; you can redistribute it and/or modify
@@ -31,7 +31,7 @@
*
*/
int
-cifs_strfromUCS_le(char *to, const wchar_t * from, /* LITTLE ENDIAN */
+cifs_strfromUCS_le(char *to, const __le16 * from,
int len, const struct nls_table *codepage)
{
int i;
@@ -60,25 +60,26 @@ cifs_strfromUCS_le(char *to, const wchar_t * from, /* LITTLE ENDIAN */
*
*/
int
-cifs_strtoUCS(wchar_t * to, const char *from, int len,
+cifs_strtoUCS(__le16 * to, const char *from, int len,
const struct nls_table *codepage)
{
int charlen;
int i;
+ wchar_t * wchar_to = (wchar_t *)to; /* needed to quiet sparse */
for (i = 0; len && *from; i++, from += charlen, len -= charlen) {
/* works for 2.4.0 kernel or later */
- charlen = codepage->char2uni(from, len, &to[i]);
+ charlen = codepage->char2uni(from, len, &wchar_to[i]);
if (charlen < 1) {
cERROR(1,
("cifs_strtoUCS: char2uni returned %d",
charlen));
/* A question mark */
- to[i] = (wchar_t)cpu_to_le16(0x003f);
+ to[i] = cpu_to_le16(0x003f);
charlen = 1;
} else
- to[i] = (wchar_t)cpu_to_le16(to[i]);
+ to[i] = cpu_to_le16(wchar_to[i]);
}