comp.lang.ada
 help / color / mirror / Atom feed
From: Martin Krischik <krischik@users.sourceforge.net>
Subject: Re: Filenames in Ada
Date: Thu, 24 Nov 2005 20:13:01 +0100
Date: 2005-11-24T20:13:01+01:00	[thread overview]
Message-ID: <24636991.vKdJMLXJE2@linux1.krischik.com> (raw)
In-Reply-To: hbczqrvgtqh8$.1ncb7r249gdb2.dlg@40tude.net

Dmitry A. Kazakov wrote:

> On Wed, 23 Nov 2005 18:36:47 +0100, Martin Krischik wrote:
> 
>> However, filenames in music collections contain all sort of funny
>> characters (especially the my wife's music - allmost entirely in
>> Cyrillic) - no big deal for modern file systems. But a big deal for Ada
>> as it seams. Not only are all filenames in Ada.Directories of type String
>> - actually all filenames anywhere are just String.
 
>> How does one deal with modern (utf-8) filenames in Ada?
> 
> An interesting question! Indeed the file name parameter is of String type.
> 
> Well, some quick check. The following works fine under Fedora / GNAT:
> 
> with Ada.Text_IO;                 use Ada.Text_IO;
> with Strings_Edit.UTF8.Handling;  use Strings_Edit.UTF8.Handling;
> 
> procedure UTF8_Test is
>    Name : Wide_String :=
>           (  Wide_Character'Val (1092)
>           &  Wide_Character'Val (1072)
>           &  Wide_Character'Val (1081)
>           &  Wide_Character'Val (1083)
>           );
>    File : File_Type;
> begin
>    Create (File, Out_File, To_UTF8 (Name));
>    Close (File);
> end UTF8_Test;

Nice and good to know. Only I never did open any files since I was still
reading the directories with Ada.Directories to know what to write into the
files.

Find the code at:
http://cvs.sourceforge.net/viewcvs.py/wikibook-ada/demos/Source/make_m3u.adb?only_with_tag=HEAD&view=markup

at let it loose at a directory with Cyrillic filenames.

> If you have Cyrillic code page installed you will see the file name
> correctly spelt in Russian. No wonder, Fedora Linux is natively UTF-8!

So is SuSE since 9.0.

> Though it cannot work under Windows, because GNAT run-time translates
> Create into some CreateFileA Windows API. Moreover Windows is UTF-16. So
> there is no chance for Ada.Text_IO.Create. I presume one could directly
> use CreateFileW from Windows API with a Wide_String file name, but that's
> another story.

I fear that is the only option available. But how to turn the Windows
filehandle into a Ada one...

>> Is there a chance for an add-on package (to late for Ada 2005) or are we
>> snookered until Ada 2015.
 
> I don't see any great problem here. I would add UTF-8 variants for all
> calls where a file name is mentioned. We could even switch from Latin-1 to
> UTF-8. This seems to be independent on Text_IO vs. Wide_Text_IO issue.

I am not sure. There are quite a few OS dependent functions involved here.

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



  reply	other threads:[~2005-11-24 19:13 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 [this message]
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
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