comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: Filenames in Ada
Date: Thu, 01 Dec 2005 07:59:45 +0100
Date: 2005-12-01T07:59:45+01:00	[thread overview]
Message-ID: <1839239.KAMAmvIqvL@linux1.krischik.com> (raw)
In-Reply-To: h86jf.151583$dP1.509417@newsc.telia.net

Bjï¿œrn Persson wrote:

> Martin Krischik wrote:
>> But I take it that on a Russian system the Windows-1251 code
>> page is active and all filenames are expressed using that and not Latin
>> 1.
> 
> Speaking of that, do you know how to find out which code page is active?
> Can I get it from C's nl_langinfo like in Unix?

Depends. cygwin and mingw do indeed support those functions - but MS-C does
not. MS is a real pain when it comes to standart functionality. I guess
they don't want to support full ANSI/ISO C: It cost money and my lead to
less custom as porting away becomes easier.
 
>> It is sad that XML/Ada has no UCS-2 and UCS-4 convertion available - but
>> AdaCL allready has that - so not problem for you really.
> 
> My main problem is lack of time. I found a job a year ago. Darn! ;-)

Damm - I got the bloody same problem ;-) .
 
>>>It seems that the right thing to do would be to tap into the Gnat
>>>library and make UTF-16 (or UCS-2) versions of the file operations. It
>>>could be as easy as changing the parameter type and replacing calls to
>>>the Windows functions with their -W equivalents, or it could be very
>>>hairy.
>> 
>> I had that idea as well and did take a look. Lots of "pragma Import"
>> there.
> 
> I take it you mean that's a complication. You can't just import other
> functions?

Well it usually is some 

pragma Import (C, ....., "_gnat_.....");

So we have Ada -> C -> libC  and we don't only have to replace the Ada
functions but the C functions as well.

>> Well there seems an better article:

>>http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp

> Well, it says "Windows stores the long file names on disk in Unicode",
> so now we have to guess which encoding it is they call "Unicode". I'm
> guessing UTF-16, because UTF-16 was defined by Unicode while I think
> UCS-2 was defined by ISO.

I am more pessimistic here. If MS likes to implement an encoding with
variable length why would they have used an 16 encoding for long filenames
in VFAT? At that time MP3 libraries where uncommon and almost all filenames
where plain ASCII.

> Maybe you can do an experiment? Create a file with a surrogate pair in
> the name and see how it's shown in the file manager. You may get boxes
> or something if Windows doesn't have the glyphs, but if you see only one
> box it's obviusly been interpreted as UTF-16. If you see two boxes or
> you get some error then Windows seems to expect UCS-2.

Anybody got an example? If not I get one from Wikibooks. There is a good
book an "Mandarin Chinese" there which should have enough examples ;-).

>> I wonder about that \\?\ stuff and what it really means
> 
> It looks like a crude hack to allow longer paths by bypassing parts of
> the library.

Well, Windows is full of Hacks as well. An so is Unix. Just yesterday I read
that the "Uni" in Unix stands for "single user". Originally Unix was a
scaled down single user alternative to "Multrix". Well that explains a lot.
Indeed there is only one real user on Unix - the user with the ID 0.

> Anyway it's not relevant to the question of character 
> encodings.

The question is: Which encoding is used for \\?\ Filenames. If it is UTF-8
it would solve some of our problems.

Martin

-- 
mailto://krischik@users.sourceforge.net
Ada programming at: http://ada.krischik.com



  reply	other threads:[~2005-12-01  6:59 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-23 17:36 Filenames in Ada Martin Krischik
2005-11-23 18:09 ` Martin Dowie
2005-11-24 19:16   ` Martin Krischik
2005-11-23 18:59 ` Dmitry A. Kazakov
2005-11-24 19:13   ` Martin Krischik
2005-11-24 20:49     ` Dmitry A. Kazakov
2005-11-24 21:23       ` Larry Kilgallen
2005-11-25  7:12       ` krischik
2005-11-25 12:25         ` [OT] VMS ODS-5 filesystems, was: " Simon Clubley
2005-11-25 18:01           ` Martin Krischik
2005-11-25 18:27             ` Georg Bauhaus
2005-11-25 19:54               ` Martin Krischik
     [not found]             ` <gjqeo157udsnbfuq8ak4dosf6nep5fomss@4ax.com>
2005-11-27  9:31               ` [OT] VMS DCL prompt, was: " Martin Krischik
2005-11-30  0:16                 ` [OT] Administrator accounts (was: VMS DCL prompt) Björn Persson
2005-11-30  4:23                   ` Larry Kilgallen
2005-11-23 22:18 ` Filenames in Ada Randy Brukardt
2005-11-24  3:21   ` Silly question about strings (was: Filenames in Ada) Steve
2005-11-24  4:58     ` Larry Kilgallen
2005-11-24  9:15       ` Martin Dowie
2005-11-24 11:30         ` Silly question about strings Brian May
2005-11-24 13:06         ` Silly question about strings (was: Filenames in Ada) Larry Kilgallen
2005-11-29  3:17     ` Randy Brukardt
2005-11-29  5:53       ` tmoran
2005-11-29 21:48         ` Randy Brukardt
2005-11-30  0:15         ` Björn Persson
2005-11-24 19:05   ` Filenames in Ada Martin Krischik
2005-11-25  6:54     ` Martin Dowie
2005-11-26  1:22 ` Björn Persson
2005-11-27 10:21   ` Martin Krischik
2005-11-30  0:13     ` Björn Persson
2005-12-01  6:59       ` Martin Krischik [this message]
2005-12-03  1:07         ` Björn Persson
2005-12-14  6:59         ` Dave Thompson
2005-12-15 20:23           ` Martin Krischik
2005-12-17  0:22             ` program privileges (was: Filenames in Ada) Georg Bauhaus
2005-12-17 16:59             ` Filenames in Ada Simon Wright
2005-12-17 23:18               ` Larry Kilgallen
2005-12-18 13:30                 ` privileges in Unix and VMS (was: Filenames in Ada) Björn Persson
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox