This is the mail archive of the
mailing list for the GCC project.
Internationalization of Ada.Directories (MinGW)
- From: "Y.Tomino" <demoonlit at panathenaia dot halfmoon dot jp>
- To: gcc at gcc dot gnu dot org
- Date: Tue, 03 Oct 2006 19:53:29 +0900
- Subject: Internationalization of Ada.Directories (MinGW)
In Japanese version Windows, package Ada.Directories often raises
Name_Error with DBCS-filename. I was shocked that Get_Next_Entry
reported error when reading dir.
I looked for the reason and found gcc/ada/mingw32.h.
#define GNAT_UNICODE_SUPPORT was commented out.
If GNAT_UNICODE_SUPPORT was defined, GNAT runtime use W-version API and
"String" type has UTF-8. I consented.
But, GNAT_UNICODE_SUPPORT was NOT defined(it's default), adaint.c,
GNAT.Directory_Operations use C runtime.
C runtime takes filenames as DBCS, not UTF-8.
But, Ada.Directories.Validity(Mingw32-ver) always thinks filenames as
UTF-8. It's reason of Name_Error.
I want to correct this problem, but I do not understand the policy.
If Ada.Directories must take filenames as UTF-8, it's necessary to
insert the character-code conversion.
If Ada.Directories can take filenames according to the locale, The
condition of a-dirval-mingw.adb should be made loose.
And, if all String should always be UTF-8, the correction is needed
Ada.Text_IO(System.File_IO), etc packages used C runtime directly like
fopen, regardless of GNAT_UNICODE_SUPPORT.