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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,13b19740d69cbdc2 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-10-14 19:16:49 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!news-out1.nntp.be!propagator2-sterling!news-in-sterling.nuthinbutnews.com!cyclone1.gnilink.net!chi1.webusenet.com!news.webusenet.com!pd2nf1so.cg.shawcable.net!residential.shaw.ca!feed.cgocable.net!read1.cgocable.net.POSTED!53ab2750!not-for-mail From: "Warren W. Gay VE3WWG" Newsgroups: comp.lang.ada References: <20031010074015.761204C40C1@lovelace.ada-france.org> <94skovca8efqisiip65q37of63g28n1284@4ax.com> Subject: Re: Modes (was unbounded_string) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1165 Message-ID: Date: Tue, 14 Oct 2003 22:16:48 -0400 NNTP-Posting-Host: 24.150.168.167 X-Complaints-To: abuse@cogeco.ca X-Trace: read1.cgocable.net 1066184556 24.150.168.167 (Tue, 14 Oct 2003 22:22:36 EDT) NNTP-Posting-Date: Tue, 14 Oct 2003 22:22:36 EDT Organization: Cogeco Cable Xref: archiver1.google.com comp.lang.ada:868 Date: 2003-10-14T22:16:48-04:00 List-Id: "Stephane Richard" wrote in message news:rquib.4914$zw4.1688@nwrdny01.gnilink.net... > "Dmitry A. Kazakov" wrote in message > news:94skovca8efqisiip65q37of63g28n1284@4ax.com... > > On Fri, 10 Oct 2003 19:06:00 GMT, Jeffrey Carter > > wrote: > > > > >Since GNAT.OS_Lib.Getenv returns type String_Access, you have to use > > >String_Access if you want to use Getenv. But note the description of > > >Getenv from GNAT.OS_Lib: > > > > > >-- Get the value of the environment variable. Returns an access > > >-- to the empty string if the environment variable does not exist > > >-- or has an explicit null value (in some operating systems these > > >-- are distinct cases, in others they are not; this interface > > >-- abstracts away that difference. The argument is allocated on > > >-- the heap (even in the null case), and needs to be freed explicitly > > >-- when no longer needed to avoid memory leaks. > > > > Awful, I didn't expected that from ACT. The design above is definitely > > not Ada's idiom. ... > Perhaps as in many OS it's the only way as the OS (probably written in C or > some other language simply returns it this way? Well, C returns a pointer, if you use getenv(2). However, there is no reason that ACT could not have converted this into a normal Ada string, which is what I would have expected. Even in C, you are really expected to use putenv or setenv to make a change. However, programmers have been known to "cheat" and modify the string that the getenv pointer points to, which works provided that the string does not require more length. But even in C terms, IMHO, this is a bad practice. -- Warren W. Gay http://home.cogeco.ca/~ve3wwg