BARMSTRO@carleton.EDU (Pod Stolom Consulting) (05/05/88)
VAX Pascal has what it calls conformant parameters. This will work with
all sorts of arrays, including packed of char and varying of char.
program foo(output);
Procedure check_error
( return_status : unsigned;
message_1 : packed array [l1..u1:integer] of char;
message_2 : varying [l$] of char);
begin
lib$signal(return_status, message_1, message_2)
end;
begin
check_error (UTILITY_FILNOTFND, message_1, "operator.log")
end.
Things to remember: l1, u1, and l$ are all _implicitly declared variables_
(sounds like Fortran to you to, eh?) and therefore can only be used once
in a given procedure declaration (otherwise they'd be multiple defined,
and you get ugly compile time stuff). Just like any other identifier, they
can be full of $ and _.
One other trick is that the routine declaration be need to be in a different
module from the caller. I am pretty sure that I'm thinking of something
else, but I wanted to mention it just in case.
Good luck.
+-----------------------------------------------------------------------+
| Borden Armstrong Computer Center |
| System Manager and Carleton College |
| Academic Programmer/Analyst 1 North College Street |
| Northfield, MN 55057 |
| barmstro@carleton.edu U. S. A. |
| ...!umn-cs!stolaf!agnes!ccnfld!barmstro (507)663-4277 |
+-----------------------------------------------------------------------+