diff options
author | kevlo <kevlo@FreeBSD.org> | 2011-11-27 15:43:49 +0000 |
---|---|---|
committer | kevlo <kevlo@FreeBSD.org> | 2011-11-27 15:43:49 +0000 |
commit | d4bd483becb3c4303d13eb71ecf8cafbd7258ac1 (patch) | |
tree | 832e685d4019487c6301c776010127818a7d8e28 /sys/fs/ntfs/ntfs_vnops.c | |
parent | 5846bf2bc16f98b448da1b644193426d20b75686 (diff) | |
download | FreeBSD-src-d4bd483becb3c4303d13eb71ecf8cafbd7258ac1.zip FreeBSD-src-d4bd483becb3c4303d13eb71ecf8cafbd7258ac1.tar.gz |
Add unicode support to ntfs
Obtained from: imura
Diffstat (limited to 'sys/fs/ntfs/ntfs_vnops.c')
-rw-r--r-- | sys/fs/ntfs/ntfs_vnops.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/sys/fs/ntfs/ntfs_vnops.c b/sys/fs/ntfs/ntfs_vnops.c index 6970474..3273790 100644 --- a/sys/fs/ntfs/ntfs_vnops.c +++ b/sys/fs/ntfs/ntfs_vnops.c @@ -481,7 +481,7 @@ ntfs_readdir(ap) struct uio *uio = ap->a_uio; struct ntfsmount *ntmp = ip->i_mp; int i, j, error = 0; - wchar c; + char *c; u_int32_t faked = 0, num; int ncookies = 0; struct dirent cde; @@ -538,11 +538,10 @@ ntfs_readdir(ap) if(!ntfs_isnamepermitted(ntmp,iep)) continue; - for(i=0, j=0; i<iep->ie_fnamelen; i++, j++) { + for(i=0, j=0; i<iep->ie_fnamelen; i++) { c = NTFS_U28(iep->ie_fname[i]); - if (c&0xFF00) - cde.d_name[j++] = (char)(c>>8); - cde.d_name[j] = (char)c&0xFF; + while (*c != '\0') + cde.d_name[j++] = *c++; } cde.d_name[j] = '\0'; dprintf(("ntfs_readdir: elem: %d, fname:[%s] type: %d, flag: %d, ", |