Ideally, perl/win32.* will be updated by someone (or by me) to support the Wide functionality.
(Some/All?) the code to support this option is still there from when the -C command line option enabled the use of the wide apis on win32.
# Win32.c:775-782
/* do the FindFirstFile call */
if (USING_WIDE()) {
A2WHELPER(scanname, wbuffer, sizeof(wbuffer));
fh = FindFirstFileW(PerlDir_mapW(wbuffer), &wFindData);
}
else {
fh = FindFirstFileA(PerlDir_mapA(scanname), &aFindData);
}
# Win32.c:858-870
if (USING_WIDE()) {
res = FindNextFileW(dirp->handle, &wFindData);
if (res) {
W2AHELPER(wFindData.cFileName, buffer, sizeof(buffer));
ptr = buffer;
}
}
else {
res = FindNextFileA(dirp->handle, &aFindData);
if (res)
ptr = aFindData.cFileName;
}
All that is needed is the addition of code to enable this at runtime in perl.c/S_parse_body() where it presumably used to live. I can't see any signs of it there now.
Of course, it might be much harder to persuade the powers that be to allocate a new switch letter for the purpose. Maybe additional values could be added to the new interpretation of the -C switch (See perlrun).
Say 'W'/128 for Wide calls. Ie. perl -CW script.pl would do what -C used to do?
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|