en·vÅos HASHDATUM 2 4 1 HASHDATUM 1 4 By: Christopher Lane (Lane@Sumex-Aim.Stanford.Edu) Uses: HASH HASHDATUM facilitates storing random Envos Lisp datatypes on hash files using the hashed text feature of the HASH Lisp Library module. The module defines functions which access an item on a hash file as a stream of bytes using user supplied input and output functions. Since the items are stored using text hashing, when rehashing or copying of the file occurs, the data portion of the file is copied correctly. (GETHASHDATUM KEY HASHFILE READFN) [Function] (PUTHASHDATUM KEY DATUM HASHFILE PRINTFN) [Function] Use READFN and PRINTFN to store and retrieve DATUM on HASHFILE. The READFN takes a stream as its argument, the PRINTFN takes the DATUM and a stream. The put function returns the hash file text pointer record which contains two byte pointers that indicate where the datum begins and ends on the file. The get function returns the result of the READFN. The following macros and functions are also defined using the above functions: (GETHASHGRAPH KEY HASHFILE) [Macro] (PUTHASHGRAPH KEY GRAPH HASHFILE) [Macro] Use GRAPHER functions READGRAPH and DUMPGRAPH to store GRAPH on HASHFILE under KEY. (GETHASHBITMAP KEY HASHFILE) [Macro] (PUTHASHBITMAP KEY BITMAP HASHFILE) [Macro] Use READBITMAP and PRINTBITMAP to store BITMAP on HASHFILE in a text format. (GETHASHBINARYBITMAP KEY HASHFILE) [Macro] (PUTHASHBINARYBITMAP KEY BITMAP HASHFILE) [Macro] Use READBM and WRITEBM from BITMAPFNS to store BITMAP on HASHFILE in a binary format. (GETHASHTEDIT KEY HASHFILE [WINDOW PROPS]) [Function] (PUTHASHTEDIT KEY TEXTOBJ HASHFILE) [Macro] Use OPENTEXTSTREAM and TEDIT.PUT.PCTB from TEDIT to store TEXTOBJ on HASHFILE, preserving both the text and formatting information. WINDOW and PROPS are optional and are passed to OPENTEXTSTREAM. If the WINDOW argument is not supplied, the result of the get function can be passed to OPENTEXTSTREAM along with a window to display the text. (GETHASHUGLY KEY HASHFILE) [Macro] (PUTHASHUGLY KEY UGLYVAR HASHFILE) [Macro] Use HREAD and HPRINT to store random data, like menus, on HASHFILE.(LIST ((PAGE NIL (PAPERSIZE LETTER FOLIOINFO (ARABIC "" "") STARTINGPAGE# 107) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC "" "")) (174 36 288 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 528 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL))) (PAGE NIL NIL (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD CENTERED) CHARLOOKS (SUPERSCRIPT 0 SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF SLOPE REGULAR WEIGHT MEDIUM)) (282 42 72 36) NIL) (HEADING NIL (HEADINGTYPE RUNNINGHEAD) (84 744 444 36) NIL) (TEXT NIL NIL (84 96 456 600) NIL)))))3ÈÈT2ÈÈ5ÈÈ,È,È,ŠŠ8,ŠŠ8HÈÈ PAGEHEADING RUNNINGHEADCLASSICCLASSICCLASSIC HELVETICA MODERN MODERN MODERNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN 4 = W  % •$O 7 (   /  :88-R     :Y zº