DEFINITION MODULE RequestFile;       (* FileRequester v1.0  (c) EBM 14/11-90 *)

(* 3-94 module renamed to prevent nameconflict with the new Requester module *)

(*$ DEFINE Test:=FALSE *)
(*$ LongAlign:=TRUE StackParms:=TRUE CStrings:=TRUE LargeVars:=FALSE *)
(*$ IF Test *)
  (*$ Volatile:=FALSE StackChk:=TRUE RangeChk:=TRUE OverflowChk:=TRUE
  NilChk:=TRUE EntryClear:=TRUE CaseChk:=TRUE ReturnChk:=TRUE *)
(*$ ELSE *)
  (*$ Volatile:=TRUE StackChk:=FALSE RangeChk:=FALSE OverflowChk:=FALSE
  NilChk:=FALSE EntryClear:=FALSE CaseChk:=FALSE ReturnChk:=FALSE *)
(*$ ENDIF *)

FROM IntuitionD IMPORT
  ScreenPtr;
       
PROCEDURE FileRequest(VAR Path,FilNvn,Pattern:ARRAY OF CHAR;  (* giver/modtager resultat *)
                      RqHead,RqOK,RqAbort:ARRAY OF CHAR;      (* tekst *)
                      RqPath,RqName,RqPattern:ARRAY OF CHAR;  (* tekst path,navn,pattern *)
                      ScrPtr:ScreenPtr): BOOLEAN;             (* NIL=WORKBENCH, OK=TRUE *)

(* Pattern med super wildcards, normalt * men kan være f.eks. ~*.(info,bak) *)
(* (alle, der IKKE (~) ender på .info eller .bak), se Diverse.Valid         *)
(* Lager-brug : 
   kode, intern            = ca 10Kb
   kode, m2-biblioteker    = ca 6kb, QuickIntuition ca 3Kb, andre ca 3Kb
   kode, runtime-bib.      = Åbner Dos,Graphics,Intuition,Exec
   Statiske variable       = ca 70 bytes, 
   Heap-Statisk            = ca 600 bytes til gadgets
   Heap-dynamisk           = ca 6500 bytes til dir
   Lokale variable (Stak)  = ca 800 + det som Libraryfunktionerne bruger
   INAKTIV                 = ca 11Kb + 6Kb (de 6 kan genbruges)
   AKTIV                   = ca 7Kb ekstra + et intuition-window 

           - Advanced wildcards in the filter field 'Chosen' (files to show):
             normally * for all files, but can be ~*.(info,bak) meaning all,
             wich NOT (~) ends with .info OR .bak

               WILDCARD MEANING            EXAMPLE     EXPLANATION
               ?        1 char             ???         three chars long
               ¿        0-1 char           ??¿¿        two to four chars long
               *        0-n chars          *ef*        containing ef
               [abf]    set for 1 char     [abf]*      starts with a,b or f
               (s1,,sn) set for 0-n chars  *.(c,asm)   ends with .c or .asm
               ~        not following      (~*e,tre)   tre, or not end with e
*) 

(*DirSort,FileSort:BOOLEAN;  Her sættes sortering fra/TIL, dynamisk*)
(*DirOn           :BOOLEAN;  Fuld dir fra/TIL, FØR første kald *)

END RequestFile.
