From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,438195d3ecbbc805 X-Google-Attributes: gid103376,public From: kst@thomsoft.com (Keith Thompson) Subject: Re: Question on Ada.Strings.Unbounded.Slice Date: 1996/07/16 Message-ID: #1/1 X-Deja-AN: 168497374 sender: news@thomsoft.com (USENET News Admin @flash) x-nntp-posting-host: pulsar references: organization: Thomson Software Products, San Diego, CA, USA keywords: Slice Strings Ada.Strings Index_Error newsgroups: comp.lang.ada originator: kst@pulsar Date: 1996-07-16T00:00:00+00:00 List-Id: In bn@alsys.com (Brian Nettleton @pulsar) writes: > While building David Wheeler's "small" program (part of the Lovelace > tutorial) I came across a problem with Ada.Strings.Unbounded.Slice. > > I'm getting Index_error when the High > Length(Source) + 1 (where > High, Length and Source are as defined in spec of Ada.Strings.Unbounded). [example deleted] > RM A.4.4:101 states Slice "propagates Index_Error if Low > > Length(Source) + 1." But the RM is silent on what happens when > High > Length(Source) + 1! Is this an oversight in the RM, or > by silence does the RM mean to imply that Index_Error is only > raised when Low exceeds the bounds of the source? Is it implementation > dependent what happens when High > Length(Source) + 1? According to the current (unapproved) version of AI95-00128, "A call to Bounded.Slice with High > Length(Source) is equivalent to a call with High = Length(Source)." In other words, a slice that overlaps the end of the string is silently truncated. Personally, I disagree with this; I think the Slice function should correspond to the predefined slice operation for type String (raising Index_Error when a slice would raise Constraint_Error). At least two existing implementations do it this way. I've just submitted a comment to this effect to the ada-comment mailing list; we'll see what happens. Incidentally, the problem occurs when High > Length(Source), not just when High > Length(Source) + 1. AI95-00128 is one of many commentaries on the Ada 95 standard; they're available at Note that these commentaries have little or no official standing until they've gone through an approval process. Someone more directly involved than I am may wish to comment further on this process. -- Keith Thompson (The_Other_Keith) kst@thomsoft.com <*> TeleSoft^H^H^H^H^H^H^H^H Alsys^H^H^H^H^H Thomson Software Products 10251 Vista Sorrento Parkway, Suite 300, San Diego, CA, USA, 92121-2718 "As the most participatory form of mass speech yet developed, the Internet deserves the highest protection from government intrusion." -- ACLU v. Reno