windows-unicode-support-20080509
authorAsanka Herath <asanka@secure-endpoints.com>
Fri, 9 May 2008 15:49:36 +0000 (15:49 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Fri, 9 May 2008 15:49:36 +0000 (15:49 +0000)
commita36ec90cff608c3805f524070eb21aacc118f9e2
tree2dcccc1d869fbe92faf4d5d2948c0d139019aad4
parent048ae7c7e63e03af16925613aeec8243b45ffe70
windows-unicode-support-20080509

LICENSE MIT

This delta provides a fairly complete implementation of Unicode character
set support for the Windows Cache Manager and supporting tools including
fs.exe, symlink.exe, the pioctl library, and the explorer shell extension.

New Build requirements:

In order to build the Microsoft IDN Mitigation APIs SDK 1.1 is now required.
This SDK provides the normalization.h header and the redistribution
install packages required to install normaliz.dll.   The AFSDEV_INCLUDE
path must be modified to point to the directory containing normalization.h.
There are no lib files for this package.

Cache Manager:

The CM SMB server has been modified to negotiate the use of UNICODE.
By default it is on.  The "fs smbunicode" command can be used to disable
UNICODE at runtime.

cm_utils now contains UNICODE normalization and conversion routines built
on top of the IDN Mitigation APIs.

All input strings are normalized with UNICODE Normalization Form C.

The pioctl interface now supports UTF8 strings in addition to ANSI.
UTF8 strings are prefixed with <ESC> % 8 as per the ISO 2022 extension.

Pioctl Library:

New apps should use the pioctl_utf8() function instead of pioctl().
pioctl() is for ANSI strings and provides backward compatibility
with third party apps.

fs.exe and symlink.exe:

Converted to Unicode applications.  All strings are now communicated
using UTF-8.

Explorer Shell Extension:

Converted to a Unicode DLL.  All strings are now communicated using
UTF-8.  Fonts on U.S. Windows distributions are not fully populated.
As a result not all of the characters can be displayed in all of the
dialog boxes.

Still to do:

1. Add Unicode normalization to AFS directory entries and mountpoint
   and symlink target strings.

2. Use the Unicode version of GetCurrentDirectory in fs_utils.c

3. Update the installers to install the IDN Mitigation APIs on XP
   and 2003.  Vista already has them and they are not supported on
   pre XP SP2 releases.
37 files changed:
README-NT
src/WINNT/afsd/NTMakefile
src/WINNT/afsd/afsd_init.c
src/WINNT/afsd/cm_ioctl.c
src/WINNT/afsd/cm_ioctl.h
src/WINNT/afsd/cm_utils.c
src/WINNT/afsd/cm_utils.h
src/WINNT/afsd/fs.c
src/WINNT/afsd/fs_utils.c
src/WINNT/afsd/smb.c
src/WINNT/afsd/smb.h
src/WINNT/afsd/smb3.c
src/WINNT/afsd/smb3.h
src/WINNT/afsd/smb_iocons.h
src/WINNT/afsd/smb_ioctl.c
src/WINNT/afsd/symlink.c
src/WINNT/client_exp/afs_shl_ext.cpp
src/WINNT/client_exp/copy_acl_dlg.cpp
src/WINNT/client_exp/gui2fs.cpp
src/WINNT/client_exp/gui2fs.h
src/WINNT/client_exp/help.cpp
src/WINNT/client_exp/help.h
src/WINNT/client_exp/hourglass.h
src/WINNT/client_exp/klog_dlg.cpp
src/WINNT/client_exp/msgs.cpp
src/WINNT/client_exp/partition_info_dlg.cpp
src/WINNT/client_exp/set_afs_acl.cpp
src/WINNT/client_exp/shell_ext.cpp
src/WINNT/client_exp/shell_ext.h
src/WINNT/client_exp/submounts_dlg.cpp
src/WINNT/client_exp/unlog_dlg.cpp
src/WINNT/client_exp/volumeinfo.cpp
src/config/NTMakefile.i386_w2k
src/libafsauthent/afsauthent.def
src/ntbuild.bat
src/sys/pioctl_nt.c
src/sys/pioctl_nt.h