Hi David,
I actually tested the FWRITE intercept routine I offered earlier
and found a problem in that QUIZ seems to clear the system JCW just
before it exits :(( , so the SETJCW in this case is not a good idea.
So I have appended a modified version which invokes a
command file instead of setting JCW.
So if you are interested and you dont have Splash,
I can mail you the XL. Let me know.
Cheers,
Tad.
$subprogram
BEGIN
Procedure FWRITE (filenum,buffer,length,cctl);
Value filenum,length,cctl;
Integer filenum,length,cctl;
FullVirtual byte array buffer;
Option uppercase,intrinsic;
Begin
Equate CCL=0,CCG=1,CCE=2
;
Own Double pLabel:=0d
;
Double hpStatus,hpStrlen
;
Byte array strg(0:127)
;
Integer err1,err2,nc
;
Logical CC = Q-1 ! STACK MARKER STATUS WORD IS AT Q-1
;
Intrinsic FFileinfo,hpCIcommand,hpGetprocplabel
;
procedure HPFWRITE(filenum,buffer,length,cctl);
Value filenum,buffer,length,cctl;
Integer filenum,length,cctl;
FullVirtual byte pointer buffer;
Option native,dynamic;
move strg:=" FWRITE ";
if pLabel=0d
then hpGetprocplabel(strg,pLabel,hpStatus,,true);
@HPFWRITE:=pLabel;
FFileinfo(filenum,01,strg);
HPFWRITE(filenum,buffer,length,cctl);
CC.(6:2):=if = then CCE else if < then CCL else CCG;
if CC.(6:2)=CCE and strg="STDLIST"
then begin
nc:=move strg:="PHWARNCF ";
hpStrlen:=(if length < 0 then -length else length*2);
if hpStrlen>3 and buffer="*W*"
then begin
hpStrlen:=(if hpStrlen > 80 then 80 else hpStrlen);
nc:=nc+(move strg(nc):=buffer,(hpStrlen));
strg(nc):=$0D;
hpCIcommand(strg,err1,err2,0);
end;
end;
End;
END.
USER DEFINED COMMAND FILE: PHWARNCF
anyparm wmsg=none
setjcw pherrjcw Warn0001
echo **********************************************************
echo !wmsg
echo **********************************************************
-----------------------------------------------------------------------------
This message is confidential; its contents do not constitute a
commitment by Paribas except where provided for in a written agreement
between you and Paribas. Any unauthorised disclosure, use or
dissemination, either whole or partial, is prohibited. If you are not
the intended recipient of the message, please notify the sender
immediately.
Ce message est confidentiel ; son contenu ne représente en aucun cas un
engagement de la part de Paribas sous réserve de tout accord conclu par
écrit entre vous et Paribas. Toute publication, utilisation ou
diffusion, même partielle, doit être autorisée préalablement. Si vous
n'êtes pas destinataire de ce message, merci d'en avertir immédiatement
l'expéditeur.
|