home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / dirs / cross_464.lzh / Cross / txt / FileReq.mod < prev    next >
Text File  |  1991-03-09  |  1KB  |  71 lines

  1. IMPLEMENTATION MODULE FileReq;
  2.  
  3. FROM ARP
  4.  IMPORT  FileRequest,FileRequester,FileRequesterPtr,WindowPtr,ReqFlags,
  5.          ReqFlagSet,ReqFlags2,ReqFlagSet2,longFsize,longDsize;
  6.  
  7. FROM ASCII
  8.  IMPORT nul;
  9.  
  10. FROM Strings
  11.  IMPORT Insert,Length,last;
  12.  
  13. FROM SYSTEM
  14.  IMPORT ADDRESS,ADR,CAST;
  15.  
  16. TYPE
  17.  FileStringPtr=POINTER TO FileString;
  18.  
  19.  
  20.  
  21. PROCEDURE MakeFRD(    header,deffile,defdir: FileString;
  22.                       reqwindow: ADDRESS;
  23.                   VAR frd: FileRequestData);
  24.  BEGIN
  25.   WITH frd DO
  26.    h:=header;
  27.    f:=deffile;
  28.    d:=defdir;
  29.    fr.hail:=ADR(h);
  30.    fr.file:=ADR(f);
  31.    fr.dir:=ADR(d);
  32.    fr.window:=reqwindow;
  33.    fr.funcFlags:=ReqFlagSet{newIDCMP,doColor};
  34.    fr.flags2:=ReqFlagSet2{longPath};
  35.    fr.function:=NIL;
  36.    fr.leftEdge:=100;
  37.    fr.topEdge:=30;
  38.   END;
  39.  END MakeFRD;
  40.  
  41.  
  42.  
  43. PROCEDURE FileReq(VAR frd: FileRequestData;
  44.                   VAR name: FileString);
  45.  VAR
  46.   fsp: FileStringPtr;
  47.   len: INTEGER;
  48.  BEGIN
  49.   fsp:=CAST(FileStringPtr,FileRequest(ADR(frd.fr)));
  50.   IF Length(fsp^)=0 THEN
  51.    name:="";
  52.   ELSE
  53.    fsp:=CAST(FileStringPtr,frd.fr.dir);
  54.    name:=fsp^;
  55.  
  56.    len:=Length(name);
  57.    IF (len>0) AND (name[len-1]#":") AND (name[len-1]#"/") THEN
  58.     name[len]:="/";
  59.     name[len+1]:=nul;
  60.    END;
  61.    fsp:=CAST(FileStringPtr,frd.fr.file);
  62.    IF Length(fsp^)>0 THEN
  63.     Insert(name,last,fsp^);
  64.    ELSE
  65.     name:="";
  66.    END;
  67.   END;
  68.  END FileReq;
  69.  
  70. END FileReq.
  71.