home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d5xx
/
d537
/
cross.lha
/
Cross
/
Source
/
FileReq.mod
< prev
next >
Wrap
Text File
|
1991-08-26
|
1KB
|
75 lines
IMPLEMENTATION MODULE FileReq;
FROM ARP
IMPORT FileRequest,FileRequester,FileRequesterPtr,WindowPtr,ReqFlags,
ReqFlagSet,ReqFlags2,ReqFlagSet2,longFsize,longDsize;
FROM ASCII
IMPORT nul;
FROM String
IMPORT Insert,Length,last;
FROM SYSTEM
IMPORT ADDRESS,ADR,CAST;
TYPE
FileStringPtr=POINTER TO FileString;
PROCEDURE MakeFRD( header,deffile,defdir: FileString;
reqwindow: ADDRESS; x,y: INTEGER;
VAR frd: FileRequestData);
BEGIN
WITH frd DO
h:=header;
f:=deffile;
d:=defdir;
fr.hail:=ADR(h);
fr.file:=ADR(f);
fr.dir:=ADR(d);
fr.window:=reqwindow;
fr.funcFlags:=ReqFlagSet{doColor};
fr.flags2:=ReqFlagSet2{longPath};
fr.function:=NIL;
fr.leftEdge:=x;
fr.topEdge:=y;
END;
END MakeFRD;
PROCEDURE FileReq(VAR frd: FileRequestData;
VAR name: FileString);
VAR
fsp: FileStringPtr;
len: INTEGER;
BEGIN
fsp:=CAST(FileStringPtr,FileRequest(ADR(frd.fr)));
IF (fsp=NIL) OR (Length(fsp^)=0) THEN
name:="";
ELSE
fsp:=CAST(FileStringPtr,frd.fr.dir);
name:=fsp^;
len:=Length(name);
IF (len>0) AND (name[len-1]#":") AND (name[len-1]#"/") THEN
name[len]:="/";
name[len+1]:=nul;
END;
fsp:=CAST(FileStringPtr,frd.fr.file);
IF Length(fsp^)>0 THEN
Insert(name,last,fsp^);
ELSE
name:="";
END;
END;
END FileReq;
END FileReq.