Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The clothes have no emperor. -- C. A. R. Hoare, commenting on ADA.


devel / comp.lang.ada / Re: Accessing Addresses in a Passed String

SubjectAuthor
* Accessing Addresses in a Passed StringPat Van Canada
+* Re: Accessing Addresses in a Passed StringDmitry A. Kazakov
|`* Re: Accessing Addresses in a Passed StringPat Van Canada
| `* Re: Accessing Addresses in a Passed StringDmitry A. Kazakov
|  `- Re: Accessing Addresses in a Passed StringPat Van Canada
`* Re: Accessing Addresses in a Passed StringNiklas Holsti
 +- Re: Accessing Addresses in a Passed StringPat Van Canada
 +- Re: Accessing Addresses in a Passed StringPat Van Canada
 `- Re: Accessing Addresses in a Passed StringPat Van Canada

1
Accessing Addresses in a Passed String

<ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6484&group=comp.lang.ada#6484

  copy link   Newsgroups: comp.lang.ada
X-Received: by 2002:a37:43cf:: with SMTP id q198mr27367087qka.689.1641063187761;
Sat, 01 Jan 2022 10:53:07 -0800 (PST)
X-Received: by 2002:a25:bcc3:: with SMTP id l3mr24111828ybm.148.1641063187440;
Sat, 01 Jan 2022 10:53:07 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.ada
Date: Sat, 1 Jan 2022 10:53:07 -0800 (PST)
Injection-Info: google-groups.googlegroups.com; posting-host=69.165.217.11; posting-account=cWMYQAoAAADC6Q2Ml1nyYgTWH7MBkx9I
NNTP-Posting-Host: 69.165.217.11
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com>
Subject: Accessing Addresses in a Passed String
From: goo...@spellingbeewinnars.org (Pat Van Canada)
Injection-Date: Sat, 01 Jan 2022 18:53:07 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 28
 by: Pat Van Canada - Sat, 1 Jan 2022 18:53 UTC

Hi Everyone.

Happy New Year!

I am stuck with a problem. I have an application were I must use pointers, despite the fact that I try to avoid them.

in the declarative section, I can write:

str2 : aliased string( 1 .. 4 ) ;

and then I could potentially access the address of each character in the string.

However, I cannot use "aliased" in an argument list and worse yet, since it is effectively a character array, it will be passed by pointer.

Here is a little snippet of what I am trying to do:

procedure double_draw ( row : in integer ;
column : in integer ;
word : in out string ) is

begin

for j in column .. word'length loop
input_pad(row,j).ch_ptr := word(j)'access ;

This is not going to work, does anyone have a suggestion of how I might work around this? My only solution right now is to move this to the calling code and simply pass the address of each character of a string

Thanks for reading-Pat

Re: Accessing Addresses in a Passed String

<sqq9nq$1osl$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6485&group=comp.lang.ada#6485

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!aioe.org!6Wzk4cIOQzbtIfSd/aOQqg.user.46.165.242.91.POSTED!not-for-mail
From: mail...@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: Accessing Addresses in a Passed String
Date: Sat, 1 Jan 2022 20:23:40 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sqq9nq$1osl$1@gioia.aioe.org>
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="58261"; posting-host="6Wzk4cIOQzbtIfSd/aOQqg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.4.1
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: Dmitry A. Kazakov - Sat, 1 Jan 2022 19:23 UTC

On 2022-01-01 19:53, Pat Van Canada wrote:
> in the declarative section, I can write:
>
> str2 : aliased string( 1 .. 4 ) ;
>
> and then I could potentially access the address of each character in the string.
>
> However, I cannot use "aliased" in an argument list and worse yet, since it is effectively a character array, it will be passed by pointer.

You probably mean "by reference." It is not clear why do you care.

> Here is a little snippet of what I am trying to do:
>
> procedure double_draw ( row : in integer ;
> column : in integer ;
> word : in out string ) is
>
> begin
>
> for j in column .. word'length loop
> input_pad(row,j).ch_ptr := word(j)'access ;

Looks like an attempt to produce a dangling pointer in Ada. Not an easy
task.

You certainly should never ever assign pointers to actual parameters
unless you communicating with C.

> This is not going to work, does anyone have a suggestion of how I might work around this? My only solution right now is to move this to the calling code and simply pass the address of each character of a string

You should describe the actual problem not a [wrong] solution to it. If
you want to reference inside a string you must declare a helper type.

Typically one uses some reference counting handle to the string body and
indices to the beginning and end of the slice. Though an access type
would do as well, just unsafe.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: Accessing Addresses in a Passed String

<39e6c150-e377-46a9-8140-fae57b9b2599n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6486&group=comp.lang.ada#6486

  copy link   Newsgroups: comp.lang.ada
X-Received: by 2002:ac8:5994:: with SMTP id e20mr35588825qte.75.1641066043196;
Sat, 01 Jan 2022 11:40:43 -0800 (PST)
X-Received: by 2002:a25:d086:: with SMTP id h128mr37730889ybg.646.1641066043034;
Sat, 01 Jan 2022 11:40:43 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.ada
Date: Sat, 1 Jan 2022 11:40:42 -0800 (PST)
In-Reply-To: <sqq9nq$1osl$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=69.165.217.11; posting-account=cWMYQAoAAADC6Q2Ml1nyYgTWH7MBkx9I
NNTP-Posting-Host: 69.165.217.11
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com> <sqq9nq$1osl$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <39e6c150-e377-46a9-8140-fae57b9b2599n@googlegroups.com>
Subject: Re: Accessing Addresses in a Passed String
From: goo...@spellingbeewinnars.org (Pat Van Canada)
Injection-Date: Sat, 01 Jan 2022 19:40:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Lines: 25
 by: Pat Van Canada - Sat, 1 Jan 2022 19:40 UTC

Hi Dmitry

Thanks. So here is what I am playing around with. There is an ncurses Ada binding and a binding to a the Forms library but I am trying to do something a little different.

The basic problem is to collect user input and assign characters back to many string variables in one go.

I tried some simple experiments with all of the code in one procedure and everything was okay, but I am trying to convert it into a sensible package and the passing of strings is an issue, it is no longer easy to obtain the address of each character for use later.

I want to call a procedure to load each string into an intermediate data structure but I do not want to have to pass them all back to have their values to be updated. I figured with the screen co-ordinates and addresses I could avoid this.

I don't really want to start with pointer arithmetic or similar but I also need the strings to have their values updated without the second batch of passing .

Thanks-Pat

Re: Accessing Addresses in a Passed String

<sqqcq9$15rk$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6487&group=comp.lang.ada#6487

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!aioe.org!6Wzk4cIOQzbtIfSd/aOQqg.user.46.165.242.91.POSTED!not-for-mail
From: mail...@dmitry-kazakov.de (Dmitry A. Kazakov)
Newsgroups: comp.lang.ada
Subject: Re: Accessing Addresses in a Passed String
Date: Sat, 1 Jan 2022 21:16:11 +0100
Organization: Aioe.org NNTP Server
Message-ID: <sqqcq9$15rk$1@gioia.aioe.org>
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com>
<sqq9nq$1osl$1@gioia.aioe.org>
<39e6c150-e377-46a9-8140-fae57b9b2599n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="38772"; posting-host="6Wzk4cIOQzbtIfSd/aOQqg.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.4.1
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: Dmitry A. Kazakov - Sat, 1 Jan 2022 20:16 UTC

On 2022-01-01 20:40, Pat Van Canada wrote:

> Thanks. So here is what I am playing around with. There is an ncurses Ada binding and a binding to a the Forms library but I am trying to do something a little different.

[ Of course, the right solution would be to remove ncurses from all
available computers. (:-)) ]

> The basic problem is to collect user input and assign characters back to many string variables in one go.

It is irrelevant. You need to learn how this abomination works. There
are many scenarios of how a C library could treat a "string" [C does not
have them]:

1. The caller maintains the string.

2. The caller passes ownership to the callee, which means that at some
point C will call free() on the pointer and also that the string must be
allocated using C malloc() or some library-specific allocator. Many
problem-specific libraries actually go this way.

In the scenario #1 the callee can:

1.1. Stop using the string after returning.

1.2. Keep on using it in consequent calls or asynchronously, which means
that the caller may not destroy the string until the library indicates
or implicates that the string is no more in use.

Well-designed C libraries tend to #1.1, of course.

The second stop is to know how the abomination determines the string length:

A. Nul-terminated

B. Extra parameter with the character count

For #1.1.A you must use function To_C that will create a nul-terminated
C string from Ada string or a slice of:

To_C (Text (I..I+22))

and char_array in the bindings.

For #1.1.B you can do the same or else trick GNAT compiler using
System.Address in place of char * in the bindings. It works well with
GNAT. E.g. instead of declaring

function strncpy (dest : chars_ptr; src : char_array; n : size_t)
return chars_ptr;
pragma Import (C, strncpy);

You can declare it as

function strncpy (dest : chars_ptr; src : Address; n : size_t)
return chars_ptr;
pragma Import (C, strncpy);

and use with a slice Text (I..I+22) like this:

strncpy (Target, Text (I)'Address, 23)

> I want to call a procedure to load each string into an intermediate data structure but I do not want to have to pass them all back to have their values to be updated. I figured with the screen co-ordinates and addresses I could avoid this.

Again, that depends on the way the abomination works. I would guess #1.1
But if it is #1.2 you would have much fun in your hands.

> I don't really want to start with pointer arithmetic or similar but I also need the strings to have their values updated without the second batch of passing .

The standard Ada library provides ready-to-use packages for that, but
normally you never need that for interfacing well-designed C libraries.

--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

Re: Accessing Addresses in a Passed String

<j3bti5Ff1o4U1@mid.individual.net>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6488&group=comp.lang.ada#6488

  copy link   Newsgroups: comp.lang.ada
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: niklas.h...@tidorum.invalid (Niklas Holsti)
Newsgroups: comp.lang.ada
Subject: Re: Accessing Addresses in a Passed String
Date: Sat, 1 Jan 2022 22:57:40 +0200
Organization: Tidorum Ltd
Lines: 96
Message-ID: <j3bti5Ff1o4U1@mid.individual.net>
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Trace: individual.net 39VGPPKEoSDiectWiQ8+NgI8foDxj1aeewuZTxciN8jbyBoLFS
Cancel-Lock: sha1:0eyeldzUPWzb/fC1L6DmGMgZFdo=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0)
Gecko/20100101 Thunderbird/78.14.0
In-Reply-To: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com>
Content-Language: en-US
 by: Niklas Holsti - Sat, 1 Jan 2022 20:57 UTC

On 2022-01-01 20:53, Pat Van Canada wrote:
> Hi Everyone.
>
> Happy New Year!
>
> I am stuck with a problem. I have an application were I must use
> pointers despite the fact that I try to avoid them. >
> in the declarative section, I can write:
>
> str2 : aliased string( 1 .. 4 ) ;
>
> and then I could potentially access the address of each character in the string.
>
> However, I cannot use "aliased" in an argument list and worse yet,
> since it is effectively a character array, it will be passed by pointer.

While I agree with Dmitry that it would be better to find another
solution to the root problem (whatever that is), here are some examples
on how to do what you have tried to do, as an example program with some
comments.

with Ada.Text_IO;

procedure AliChar
is

type Astring is array (Positive range <>) of aliased Character;
--
-- If you want to set pointers to the elements, the elements must
-- be marked "aliased"; it is not enough (nor needed) to mark the
-- entire array (or type) as "aliased".
--
-- For this we have to define our own "string" type.

A : Astring := "This is a string with aliased elements";

type Char_Ptr is access all Character;

C : constant Char_Ptr := A(4)'Access;

B : Astring renames A(6 .. 11);

BC : constant Char_Ptr := B(9)'Access;

D : Char_Ptr;

procedure PP (X : access Astring)
--
-- For a parameter, "aliased" is not enough to allow setting a
-- non-local pointer to point at the parameter (or some part of
-- it), but making the parameter "access" works. But then the
-- actual parameter must be an access value; see below.
--
is
begin
D := X(X'First + 5)'Access;
end PP;

AA : aliased Astring := "An aliased string with aliased elements";
--
-- Since AA is itself aliased, we can take AA'Access.
-- Since AA is an Astring, we can take AA(I)'Access for any valid I.

begin

Ada.Text_IO.Put_Line (String (A));
--
-- The conversion to String is needed because Astring is not the
-- same as String. However, they are similar enough for this
-- conversion to work, in this direction at least.

Ada.Text_IO.Put_Line (String (AA));

Ada.Text_IO.Put_Line ("C.all = " & C.all & ", BC.all = " & BC.all);

PP (AA'Access);

Ada.Text_IO.Put_Line ("D.all = " & D.all);

D.all := '?';

Ada.Text_IO.Put_Line (String (AA));
--
-- The result is "An al?ased string with aliased elements".

end AliChar;

But, again agreeing with Dmitry, this is quite messy and should be the
last-chance solution if nothing better is found. Your description (in a
later post) of the root problem was not clear enough for me to suggest
something better.

Re: Accessing Addresses in a Passed String

<0f467829-8f95-4057-84ba-90802baf8730n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6489&group=comp.lang.ada#6489

  copy link   Newsgroups: comp.lang.ada
X-Received: by 2002:a05:620a:454a:: with SMTP id u10mr29668449qkp.605.1641078202544; Sat, 01 Jan 2022 15:03:22 -0800 (PST)
X-Received: by 2002:a25:d086:: with SMTP id h128mr38282800ybg.646.1641078202370; Sat, 01 Jan 2022 15:03:22 -0800 (PST)
Path: i2pn2.org!i2pn.org!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!tr1.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.ada
Date: Sat, 1 Jan 2022 15:03:22 -0800 (PST)
In-Reply-To: <sqqcq9$15rk$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=69.165.217.11; posting-account=cWMYQAoAAADC6Q2Ml1nyYgTWH7MBkx9I
NNTP-Posting-Host: 69.165.217.11
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com> <sqq9nq$1osl$1@gioia.aioe.org> <39e6c150-e377-46a9-8140-fae57b9b2599n@googlegroups.com> <sqqcq9$15rk$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0f467829-8f95-4057-84ba-90802baf8730n@googlegroups.com>
Subject: Re: Accessing Addresses in a Passed String
From: goo...@spellingbeewinnars.org (Pat Van Canada)
Injection-Date: Sat, 01 Jan 2022 23:03:22 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 6
 by: Pat Van Canada - Sat, 1 Jan 2022 23:03 UTC

Ha!

Clean out your desks GTK and QT, this new curses based technology is taking over!

Thanks Dmitry, I think I will just move this to the calling code. For the one or two other people who might end up using my "killer app", it is not too much to ask them to copy and pasted a nested procedure into their calling code.

Thanks again-Patrick

Re: Accessing Addresses in a Passed String

<12531567-4040-4a06-acd6-8572e1ff9856n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6490&group=comp.lang.ada#6490

  copy link   Newsgroups: comp.lang.ada
X-Received: by 2002:a37:c50:: with SMTP id 77mr29302058qkm.717.1641080229865; Sat, 01 Jan 2022 15:37:09 -0800 (PST)
X-Received: by 2002:a25:2ce:: with SMTP id 197mr40430824ybc.152.1641080229688; Sat, 01 Jan 2022 15:37:09 -0800 (PST)
Path: i2pn2.org!i2pn.org!aioe.org!news.dns-netz.com!news.freedyn.de!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!tr2.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.ada
Date: Sat, 1 Jan 2022 15:37:09 -0800 (PST)
In-Reply-To: <j3bti5Ff1o4U1@mid.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=69.165.217.11; posting-account=cWMYQAoAAADC6Q2Ml1nyYgTWH7MBkx9I
NNTP-Posting-Host: 69.165.217.11
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com> <j3bti5Ff1o4U1@mid.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <12531567-4040-4a06-acd6-8572e1ff9856n@googlegroups.com>
Subject: Re: Accessing Addresses in a Passed String
From: goo...@spellingbeewinnars.org (Pat Van Canada)
Injection-Date: Sat, 01 Jan 2022 23:37:09 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 2
 by: Pat Van Canada - Sat, 1 Jan 2022 23:37 UTC

Thanks Niklas !

I think I will just use a nested procedure. Thanks so much for your helpful post

Re: Accessing Addresses in a Passed String

<b4d71fe3-dd59-4a75-8a74-066656c111aen@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6492&group=comp.lang.ada#6492

  copy link   Newsgroups: comp.lang.ada
X-Received: by 2002:a05:620a:111c:: with SMTP id o28mr28872816qkk.328.1641129346116;
Sun, 02 Jan 2022 05:15:46 -0800 (PST)
X-Received: by 2002:a25:c401:: with SMTP id u1mr48153016ybf.498.1641129345904;
Sun, 02 Jan 2022 05:15:45 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.ada
Date: Sun, 2 Jan 2022 05:15:45 -0800 (PST)
In-Reply-To: <j3bti5Ff1o4U1@mid.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=69.165.217.11; posting-account=cWMYQAoAAADC6Q2Ml1nyYgTWH7MBkx9I
NNTP-Posting-Host: 69.165.217.11
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com> <j3bti5Ff1o4U1@mid.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b4d71fe3-dd59-4a75-8a74-066656c111aen@googlegroups.com>
Subject: Re: Accessing Addresses in a Passed String
From: goo...@spellingbeewinnars.org (Pat Van Canada)
Injection-Date: Sun, 02 Jan 2022 13:15:46 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 0
 by: Pat Van Canada - Sun, 2 Jan 2022 13:15 UTC

Hi again Niklas. I wanted to added thanks for the help with the array of aliased characters, I did not know this and it would have really tripped me up for hours-Pat

Re: Accessing Addresses in a Passed String

<8e230b4c-8404-471f-856d-512aaeed77e4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=6494&group=comp.lang.ada#6494

  copy link   Newsgroups: comp.lang.ada
X-Received: by 2002:a05:622a:11c8:: with SMTP id n8mr37510026qtk.505.1641134488421;
Sun, 02 Jan 2022 06:41:28 -0800 (PST)
X-Received: by 2002:a25:c401:: with SMTP id u1mr48450817ybf.498.1641134488183;
Sun, 02 Jan 2022 06:41:28 -0800 (PST)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.ada
Date: Sun, 2 Jan 2022 06:41:27 -0800 (PST)
In-Reply-To: <j3bti5Ff1o4U1@mid.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=69.165.217.11; posting-account=cWMYQAoAAADC6Q2Ml1nyYgTWH7MBkx9I
NNTP-Posting-Host: 69.165.217.11
References: <ea4fff71-c53e-4416-a345-2df277f78d0fn@googlegroups.com> <j3bti5Ff1o4U1@mid.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8e230b4c-8404-471f-856d-512aaeed77e4n@googlegroups.com>
Subject: Re: Accessing Addresses in a Passed String
From: goo...@spellingbeewinnars.org (Pat Van Canada)
Injection-Date: Sun, 02 Jan 2022 14:41:28 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 0
 by: Pat Van Canada - Sun, 2 Jan 2022 14:41 UTC

Hi again Niklas. I wanted to add, thanks for the help with the array of aliased characters, I did not know this and it would have really tripped me up for hours-Pat

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor