comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: What about a glob standard method in Ada.Command_Line ?
Date: Wed, 25 Aug 2010 17:51:39 +0200
Date: 2010-08-25T17:51:40+02:00	[thread overview]
Message-ID: <4c753c0c$0$6877$9b4e6d93@newsspool2.arcor-online.net> (raw)
In-Reply-To: <17uj112bzfc47$.1jlqotsp6zuup.dlg@40tude.net>

On 25.08.10 16:56, Dmitry A. Kazakov wrote:
> Certainly and without any doubt it is
> possible to provide an abstraction which would work for Posix, Unix,
> Windows, VMS, MacOS and name what OS.

It is not actually possible to provide a common abstraction
for *new* and *existing* file names.  While "broken", the file
names do exist.  Just a few examples illustrating a variety of file
naming fun:

- Names created in NTFS that end in a '.'

- Two names in existing ext2 directories that contain
 "mutually exclusive" characters (via incompatible encoding)

- Names containing characters that are special in Windows but
 not in POSIX.

- Names with spaces in them

To work with these, the abstraction would have to be super
fault tolerant and employ AI, or just tell the user they should
forget about working with their files because the file names
are broken. I consider this disrespectful. Raising an exception
is out of the question; it is the file contents that matter, not
their just their names, no matter how the names have arrived
in the state they are in.

Wide_Wide_String can't cure these, String can, and you
can transform from String to Wide_Wide_String after successful
file name deciphering.


>>  And since there is no single, well defined,
>> portable οΏ½ for file names,
> 
> It is same as to say that there is no portable Integer type.

If in the real word, I/O of "broken" integer values is a
reality.  I/O of integer cannot rely on a perfect
external representation.  Neither can I/O of file names.
The statistics of broken integers are just so much better.
Possibly because no one even remembers that integers
have a representation.  There are less many encodings
for them than for character sets, so there is less risk
that we run into integers of unknown encoding,
or sets of integers of different encodings.

> Unicode code
> points are portable because they are defined so.

Before the fact.  And then the facts are different,
because someone managed to inject some invalid
octet sequence... Nevertheless, this file's content
is darn important. Can't just raise an exception
because of a faulty name!

Almost all WWW documents are broken by your taxonomy.
Google is rich...

Georg



  reply	other threads:[~2010-08-25 15:51 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-21  4:47 What about a glob standard method in Ada.Command_Line ? Yannick Duchêne (Hibou57)
2010-08-21  6:41 ` J-P. Rosen
2010-08-21  7:21   ` Yannick Duchêne (Hibou57)
2010-08-21  9:11   ` Pascal Obry
2010-08-22 19:00     ` J-P. Rosen
2010-08-22 19:29       ` Yannick Duchêne (Hibou57)
2010-08-23 23:06       ` Randy Brukardt
2010-08-24  0:02         ` Yannick Duchêne (Hibou57)
2010-08-24  0:24           ` Adam Beneschan
2010-08-24 10:27             ` Georg Bauhaus
2010-08-24 14:24               ` Dmitry A. Kazakov
2010-08-24 15:42                 ` Georg Bauhaus
2010-08-24 16:04                   ` Dmitry A. Kazakov
2010-08-24 17:10                     ` Georg Bauhaus
2010-08-24 17:24                       ` Georg Bauhaus
2010-08-24 18:42                         ` Yannick Duchêne (Hibou57)
2010-08-24 18:51                           ` Simon Wright
2010-08-24 17:41                       ` Dmitry A. Kazakov
2010-08-24 21:32                         ` Georg Bauhaus
2010-08-25  7:55                           ` Dmitry A. Kazakov
2010-08-25  8:24                             ` Yannick Duchêne (Hibou57)
2010-08-25 20:15                               ` (see below)
2010-08-25 20:39                                 ` Yannick Duchêne (Hibou57)
2010-08-25 21:05                                   ` (see below)
2010-08-25 21:32                                     ` Yannick Duchêne (Hibou57)
2010-08-25  8:57                             ` Georg Bauhaus
2010-08-25  9:28                               ` Dmitry A. Kazakov
2010-08-25 11:09                                 ` Georg Bauhaus
2010-08-25 12:01                                   ` Dmitry A. Kazakov
2010-08-25 13:09                                     ` Georg Bauhaus
2010-08-25 13:30                                       ` Dmitry A. Kazakov
2010-08-25 14:20                                         ` Georg Bauhaus
2010-08-25 14:56                                           ` Dmitry A. Kazakov
2010-08-25 15:51                                             ` Georg Bauhaus [this message]
2010-08-25 16:46                                               ` Dmitry A. Kazakov
2010-08-25 18:44                                                 ` Georg Bauhaus
2010-08-25 19:39                                                   ` Dmitry A. Kazakov
2010-08-26  0:59                                                     ` Georg Bauhaus
2010-08-26  8:49                                                       ` Dmitry A. Kazakov
2010-09-02 19:25                                                         ` Randy Brukardt
2010-09-02 20:47                                                           ` Dmitry A. Kazakov
2010-09-02 19:08                                                       ` Randy Brukardt
2010-09-02 20:48                                                         ` Georg Bauhaus
2010-08-22 19:30     ` Yannick Duchêne (Hibou57)
2010-08-22 19:46       ` Dmitry A. Kazakov
2010-08-25 13:09 ` anon
2010-08-25 13:13   ` Georg Bauhaus
2010-08-25 13:28     ` J-P. Rosen
2010-08-25 20:29       ` Yannick Duchêne (Hibou57)
2010-08-25 14:14     ` Jeffrey Carter
2010-08-25 21:37     ` anon
2010-08-26  8:21       ` J-P. Rosen
2010-08-26 16:29         ` anon
2010-08-26 20:34           ` Yannick Duchêne (Hibou57)
2010-08-27  4:40             ` Yannick Duchêne (Hibou57)
2010-08-27 12:10           ` J-P. Rosen
2010-09-01  8:08             ` Ada compilers and Ada 2005 (was: What about a glob standard method in Ada.Command_Line ?) Georg Bauhaus
2010-09-01  9:45               ` Ada compilers and Ada 2005 Pascal Obry
2010-09-01 10:28                 ` J-P. Rosen
2010-09-02 19:37                   ` Randy Brukardt
replies disabled

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