[Info-vax] A SYS$ version of F$EDIT
Arne Vajhøj
arne at vajhoej.dk
Sat Jun 1 22:22:09 EDT 2019
On 6/1/2019 10:13 PM, Dave Froble wrote:
> On 6/1/2019 8:55 PM, Arne Vajhøj wrote:
>> On 5/31/2019 10:11 PM, John Reagan wrote:
>>> Many people used to call BAS$EDIT from non BASIC code on VAX. It is
>>> now called DBAS$EDIT in Alpha going forward. We use to document all
>>> those language RTL entry points.
>>
>> So like:
>>
>> $ type edit.pas
>> program edit(input,output);
>>
>> const
>> COLLAPSE = 2;
>> TRIM = 8 + 128;
>> COMPRESS = 16;
>> UPCASE = 32;
>> QUOTE = 256;
>>
>> type
>> varstr = varying[255] of char;
>>
>> [external]
>> function dbasic$edit(%DESCR newstr : varstr;
>> %DESCR oldstr : varstr;
>> %IMMED editlist : integer) : integer; external;
>>
>> procedure test(s : varstr; editlist : integer);
>>
>> var
>> res : varstr;
>>
>> begin
>> dbasic$edit(res, s, editlist);
>> writeln('|' + s + '| -> |' + res + '|');
>> end;
>>
>> begin
>> test('Test', UPCASE);
>> test(' X ', TRIM);
>> test('X X', COMPRESS);
>> test('X X X', COLLAPSE);
>> test(' x x x ', COMPRESS + TRIM + UPCASE);
>> test('x x " x x " x x', COLLAPSE + UPCASE);
>> test('x x " x x " x x', COLLAPSE + UPCASE + QUOTE);
>> end.
>> $ pas edit
>> $ lin edit + sys$input/opt
>> sys$share:dec$basrtl/share
>> $
>> run edit
>> |Test| -> |TEST|
>> | X | -> |X|
>> |X X| -> |X X|
>> |X X X| -> |XXX|
>> | x x x | -> |X X X|
>> |x x " x x " x x| -> |XX"XX"XX|
>> |x x " x x " x x| -> |XX" x x "XX|
>
> Now I'm totally confused. Same old territory for me ...
>
> John wrote that the routine name is DBAS$EDIT. You declared an external
> function named dbasic$edit, if I understand your code. I've never used
> Pascal. So, how do you reach an external routine when you don't use
> it's correct (if John is correct) name?
My BASRTL got a DBASIC$EDIT not a DBAS$EDIT.
VMS Alpha 8.4.
Arne
More information about the Info-vax
mailing list