Windows does not handle multi-byte char sets for file I/O

RESOLVED FIXED

Status

defect
P3
normal
RESOLVED FIXED
20 years ago
20 years ago

People

(Reporter: larryh, Assigned: larryh)

Tracking

x86
Windows NT

Firefox Tracking Flags

(Not tracked)

Details

This report is a dupe of BugSplat 381759. Text of that BugSplat follows:

Robin Maxwell reported that NSPR is not I18n compliant. He had been tinkering 
with a configuration utility related to NES. He said that when passing a unicode 
filename to PR_Open() that it did not do what he expected.

Historically, NSPR has stated that since it did not issue messages, that no 
Localization (L10n) was required. Ditto for I18n. So much for that.

Persuing Robin's complaint, I found that for at least the Japanese version of 
Directory server on NT, that unicode was not used, that "Shift-JIS" was the 
character set. The Japanese version of DS uses the Japanese version of NT. 
Similarly, the Unix variants of DS also do not use, or at least do not pass to 
NSPR wide character strings for PR_Open(); see "man 5 locale". ... At this 
writing, NTF ... I will talk to more I18n folks about other products.



------- Additional Comments From larryh  Jan-18-2000 11:59 ------- 

Research shows NSPR behaving as expected. Pramod says he has a test case to 
provoke the reported behaviour, but he has not forwarded it to me.

I'll leave this bug open to the end of this week. Absent confirmed failures, 
I'll close it as NoTroubleFound.

/* end quoted BugSplat */

Examination of source code finds that character manipulation of filenames on 
multi-byte character sets may yield incorrect results. Changes will be made to 
the broken code in ntio.c, w95io.c.
changed ntio.c, w95io.c to handle multi-byte character set filenames.

w95io.c
new revision: 3.16.4.3; previous revision: 3.16.4.2

ntio.c
new revision: 3.20.4.4; previous revision: 3.20.4.3
Fixed.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.