home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / vipf.zip / ipf.def < prev    next >
Text File  |  1994-03-02  |  2KB  |  69 lines

  1. DEFINITION MODULE IPF;
  2.  
  3.   (* IBM OS/2 IPF file support.
  4.    * (c)1994 by rps *)
  5.  
  6.   TYPE
  7.     BYTESET =           SET OF [0..7];
  8.     WORDSET =           SET OF [0..15];
  9.     LONGSET =           SET OF [0..31];
  10.  
  11.   TYPE
  12.     aCount =            INTEGER;
  13.     anIndex =           [0 .. MAX(CARDINAL) DIV 4 - 10];
  14.     aLength =           INTEGER;
  15.  
  16.   TYPE
  17.     aString =           ARRAY [0..255] OF CHAR;
  18.     aTocEntry =         RECORD
  19.       flags:              BYTESET;
  20.       slotCnt:            aCount;
  21.       slot:               POINTER TO ARRAY anIndex OF anIndex;
  22.       title:              POINTER TO aString;
  23.       nest:               CARDINAL;
  24.                         END;
  25.   CONST (*flags*)
  26.     HasChildren =       7;
  27.     Hidden =            6;
  28.     Extended =          5;
  29.     (* lowest 4 bits give nesting level *)
  30.  
  31.   TYPE
  32.     anIdxEntry =        RECORD
  33.       level:              CARDINAL;
  34.       toc:                anIndex;
  35.       name:               POINTER TO aString;
  36.                         END;
  37.  
  38.   TYPE
  39.     aWord =             SHORTCARD;
  40.     aSlotEntry =        RECORD
  41.       localCnt:           aWord;
  42.       local:              POINTER TO ARRAY aWord OF anIndex;  (* into dict *)
  43.       textCnt:            aCount;
  44.       text:               POINTER TO ARRAY anIndex OF aWord;  (* into local *)
  45.                         END;
  46.  
  47.   TYPE
  48.     aTocPtr =   POINTER TO aTocEntry;
  49.     anIdxPtr =  POINTER TO anIdxEntry;
  50.     aDictPtr =  POINTER TO aString;
  51.     aSlotPtr =  POINTER TO aSlotEntry;
  52.  
  53.   VAR
  54.     Title:      aString;
  55.     TocCnt:     anIndex;
  56.     Toc:        POINTER TO ARRAY anIndex OF aTocPtr;
  57.     IdxCnt:     anIndex;
  58.     Idx:        POINTER TO ARRAY anIndex OF anIdxPtr;
  59.     DictCnt:    anIndex;
  60.     Dict:       POINTER TO ARRAY anIndex OF aDictPtr;
  61.     SlotCnt:    anIndex;
  62.     Slot:       POINTER TO ARRAY anIndex OF aSlotPtr;
  63.  
  64.  
  65.   PROCEDURE Open (fname: ARRAY OF CHAR);
  66.   PROCEDURE Close;
  67.  
  68. END IPF.
  69.