comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: variable lenght strings
Date: Thu, 28 Oct 2004 17:50:19 -0500
Date: 2004-10-28T17:50:19-05:00	[thread overview]
Message-ID: <o-CdnddJwfPP6hzcRVn-pw@megapath.net> (raw)
In-Reply-To: a4wfd.3107$kM.1044@newsread3.news.pas.earthlink.net

"Jeffrey Carter" <spam@spam.com> wrote in message
news:a4wfd.3107$kM.1044@newsread3.news.pas.earthlink.net...
> Randy Brukardt wrote:
>
> > My opinion is that GNAT is wrong in that case. A.10(7) makes it quite
> > clear that you can't have a file terminator without a line and page
> > terminator in front of it.
>
> Shouldn't that be "... without an implied line ..."? Clearly text files
> from external sources can lack the explicit terminators, or we wouldn't
> be having this discussion.
>
> FWIW, ObjectAda 7.2.2 SE gives the same behavior. Get_Line successfully
> reads a non-null line shorter than the string at the end of the file
> without the line-terminator characters, but fails on a null line at the
> same place. I can see the logic of that: If you've just skipped the line
> terminator of the last line, you have the same situation, and an attempt
> to read should raise End_Error.

Huh? A null line without a line terminator would be indistinguishable from a
line terminator at the end of a file. So it is perfectly reasonable for an
implementation to treat this as reading past the end of a file (Janus/Ada
certainly does too). Indeed, I'd argue that it is impossible for there to be
a null line without a line terminator at the end of a file.

The case I'm talking about is when the last line is *not* null and there is
no explicit line terminator. In that case, the implementation should provide
an implicit line terminator, as the logical view of a file is that it is
always there (see A.10(7)), and (IMHO) it is unreasonable to refuse to
properly process a file that is missing one.

But I don't think that there is anything that the ARG can say here, because
what is actually in a file is not defined by the language, and an
implementor can simply say that the file is misformatted. That may be bad
for users, but it certainly fits within the language.

Note that implementations have to have implicit page terminators at the end
of the file (putting in explicit ones would be awful, and there are ACATS
tests which check that the one at the end of the file actually exists), so
supporting implicit line terminators isn't that much extra work.

                      Randy.






  reply	other threads:[~2004-10-28 22:50 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-21 17:52 variable lenght strings fabio de francesco
2004-10-21 21:22 ` Martin Dowie
2004-10-21 22:42 ` Marius Amado Alves
2004-10-21 23:14   ` Matthew Heaney
2004-10-22  7:38     ` Martin Krischik
2004-10-22 12:30     ` fabio de francesco
2004-10-22  7:29   ` Martin Krischik
2004-10-22 13:01     ` Matthew Heaney
2004-10-24 15:46       ` Martin Krischik
2004-10-24 19:54         ` Jeffrey Carter
2004-10-24 21:30           ` Larry Kilgallen
2004-10-25  4:02             ` Jeffrey Carter
2004-10-21 23:01 ` Marius Amado Alves
2004-10-21 23:05 ` Stephen Leake
2004-10-22  7:25 ` Martin Krischik
2004-10-22 11:11   ` Martin Dowie
2004-10-24 15:43     ` Martin Krischik
2004-10-24 17:39       ` Martin Dowie
2004-10-24 18:37       ` Björn Persson
2004-10-25  7:30         ` Martin Krischik
2004-10-26  0:06           ` Randy Brukardt
2004-10-26  1:53             ` Larry Kilgallen
2004-10-26  8:49               ` Martin Krischik
2004-10-26 11:18               ` Marius Amado Alves
2004-10-26 12:48                 ` variable length strings Larry Kilgallen
2004-10-26 16:11                   ` Warren W. Gay VE3WWG
2004-10-26 18:50                     ` Björn Persson
2004-10-26 19:46                       ` Larry Kilgallen
2004-10-26  8:43             ` variable lenght strings Jean-Pierre Rosen
2004-10-26 13:15               ` Martin Krischik
2004-10-26 17:37                 ` Pascal Obry
2004-10-26 18:07                   ` Hyman Rosen
2004-10-26 20:10                     ` Pascal Obry
2004-10-27 10:26                       ` variable length strings Jacob Sparre Andersen
2004-10-27 10:39                         ` Pascal Obry
2004-10-27 11:47                         ` Larry Kilgallen
2004-10-28  7:18                           ` Jacob Sparre Andersen
2004-10-27 11:50                         ` Larry Kilgallen
     [not found]                         ` <uwtxcla1n.fsf@obry.Organization: LJK Software <PTzuwe3GsIg6@eisner.encompasserve.org>
2004-10-27 12:12                           ` Samuel Tardieu
2004-10-27 12:58                             ` Pascal Obry
2004-10-27 13:04                           ` Pascal Obry
2004-10-27 14:54                             ` Dmitry A. Kazakov
2004-10-27 16:38                               ` Pascal Obry
2004-10-28  8:14                                 ` Dmitry A. Kazakov
2004-10-28  8:49                                   ` Pascal Obry
2004-10-28  9:06                                     ` Dmitry A. Kazakov
2004-10-28 16:07                                       ` Pascal Obry
2004-10-28 22:05                                         ` Jeffrey Carter
2004-10-28 22:41                                           ` Randy Brukardt
2004-10-29  1:11                                             ` Jeffrey Carter
2004-10-29  7:42                                         ` Dmitry A. Kazakov
2004-10-28 10:31                         ` Larry Kilgallen
2004-10-26 18:13                   ` variable lenght strings Martin Krischik
2004-10-27 12:01                 ` Jean-Pierre Rosen
2004-10-26 17:46             ` Jeffrey Carter
2004-10-28 22:50               ` Randy Brukardt [this message]
2004-10-28 23:01                 ` Larry Kilgallen
2004-10-29 21:52                   ` Randy Brukardt
2004-10-29  8:48                 ` Dale Stanbrough
2004-10-29  9:11                   ` Larry Kilgallen
2004-10-24 18:38     ` Why these "Drop" parameters? (was: variable lenght strings) Björn Persson
2004-10-26  0:13       ` Randy Brukardt
2004-11-01  1:02         ` Why these "Drop" parameters? Björn Persson
2004-11-01 19:59           ` Randy Brukardt
2004-10-24 18:57 ` variable lenght strings Jeffrey Carter
replies disabled

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