From 3de6792173fede73cf153064d341d78ce8e00c0a Mon Sep 17 00:00:00 2001 From: Jan Dubois Date: Tue, 27 Nov 2007 04:04:47 -0800 Subject: [PATCH] Document improved support for Unicode filenames on Windows From: "Jan Dubois" Message-ID: <016e01c83130$c3237050$496a50f0$@com> p4raw-id: //depot/perl@32526 --- pod/perl5100delta.pod | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pod/perl5100delta.pod b/pod/perl5100delta.pod index ce4892e..232a102 100644 --- a/pod/perl5100delta.pod +++ b/pod/perl5100delta.pod @@ -260,6 +260,29 @@ code that used to undef the C<*ISA> glob will most probably break. Anyway, undef'ing C<*ISA> had the side-effect of removing the magic on the @ISA array and should not have been done in the first place. +=head2 readdir() may return a "short filename" on Windows + +The readdir() function may return a "short filename" when the long +filename contains characters outside the ANSI codepage. Similarly +Cwd::cwd() may return a short directory name, and glob() may return short +names as well. On the NTFS file system these short names can always be +represented in the ANSI codepage. This will not be true for all other file +system drivers; e.g. the FAT filesystem stores short filenames in the OEM +codepage, so some files on FAT volumes remain unaccessible through the +ANSI APIs. + +Similarly, $^X, @INC, and $ENV{PATH} are preprocessed at startup to make +sure all paths are valid in the ANSI codepage (if possible). + +The Win32::GetLongPathName() function now returns the UTF-8 encoded +correct long file name instead of using replacement characters to force +the name into the ANSI codepage. The new Win32::GetANSIPathName() +function can be used to turn a long pathname into a short one only if the +long one cannot be represented in the ANSI codepage. + +Many other functions in the C module have been improved to accept +UTF-8 encoded arguments. Please see L for details. + =head2 readpipe() is now overridable The built-in function readpipe() is now overridable. Overriding it permits -- 2.7.4