(FILECREATED "14-Feb-86 15:33:48" {QV}<IDL>SOURCES>DMACROS.;10 2182 changes to: (MACROS SETRELT GETRELT SETRELTD GETRELTD RELTPTR) (VARS DMACROSCOMS) (FNS GETRELTDECL IJKCOMPILE LITFIXP) previous date: " 7-Oct-85 23:36:12" {QV}<IDL>SOURCES>DMACROS.;8) (* Copyright (c) 1983, 1984, 1985, 1986 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT DMACROSCOMS) (RPAQQ DMACROSCOMS ((* (MACROS GETRELT GETAELT GETRELTD SETRELT SETRELTD)) (* (MACROS OFFSET)) (MACROS GETRELT GETRELTD RELTPTR SETRELT SETRELTD))) (* (MACROS GETRELT GETAELT GETRELTD SETRELT SETRELTD)) (* (MACROS OFFSET)) (DECLARE: EVAL@COMPILE [PUTPROPS GETRELT DMACRO (OPENLAMBDA (R N) (LET ((PTR (RELTPTR R N))) (SELECTQ (fetch RELTTYPE of R) (INTEGER (if (AND (fetch MAYHAVENIL of R) (TESTMISSING (fetch I of PTR))) then NIL else (fetch I of PTR))) (FLOATING (if (AND (fetch MAYHAVENIL of R) (TESTMISSING (fetch I of PTR))) then NIL else (fetch F of PTR))) (POINTER (\GETBASEPTR PTR 0)) NIL] [PUTPROPS GETRELTD DMACRO (OPENLAMBDA (R N) (\GETBASEPTR (fetch ROWBLKD of R) (LLSH (SUB1 N) 1] [PUTPROPS RELTPTR DMACRO (OPENLAMBDA (R N) (\ADDBASE (fetch ROWBLK of R) (LLSH (SUB1 N) 1] (PUTPROPS SETRELT DMACRO (OPENLAMBDA (R N V) (if V then (SELECTQ (fetch RELTTYPE of R) (INTEGER (replace I of (RELTPTR R N) with V)) (FLOATING (replace F of (RELTPTR R N) with (FLOAT V))) (POINTER (\RPLPTR (RELTPTR R N) 0 V)) NIL) elseif (type? ROWPTR R) then (\RPLPTR (RELTPTR R N) 0 NIL) else (replace MAYHAVENIL of R with T) (replace I of (RELTPTR R N) with (CONSTANT MIN.FIXP))) V)) (PUTPROPS SETRELTD DMACRO (OPENLAMBDA (R N V) (\RPLPTR (fetch ROWBLKD of R) (LLSH (SUB1 N) 1) V) V)) ) (PUTPROPS DMACROS COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986)) (DECLARE: DONTCOPY (FILEMAP (NIL))) STOP