(FILECREATED " 5-Dec-85 19:41:06" {ERIS}<LANE>REMOTEGRAPHER.;10 6400
changes to: (COURIERPROGRAMS GRAPH)
(FNS GRAPHNODES.TO.GRAPHRECORDS REMOTELAYOUTGRAPH GRAPH.REMOTELAYOUT
GRAPHRECORDS.TO.GRAPHNODES)
(VARS REMOTEGRAPHERCOMS)
previous date: "21-Nov-85 19:14:38" {ERIS}<LANE>REMOTEGRAPHER.;7)
(* Copyright (c) 1985 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT REMOTEGRAPHERCOMS)
(RPAQQ REMOTEGRAPHERCOMS ((FNS REMOTELAYOUTGRAPH GRAPH.REMOTELAYOUT GRAPHNODES.TO.GRAPHRECORDS
GRAPHRECORDS.TO.GRAPHNODES)
(COURIERPROGRAMS GRAPH)
(DECLARE: DONTCOPY (RECORDS GRAPHRECORD))
(FILES COURIERDEFS)))
(DEFINEQ
(REMOTELAYOUTGRAPH
[LAMBDA (STREAM NODELST ROOTIDS FORMAT FONT MOTHERD PERSONALD FAMILYD)
(* cdl " 5-Dec-85 19:09")
(* DECLARATIONS: (RECORD RESULT
(GRAPHRECORDS SIDES? DIRECTED?)))
(if (NULL FONT)
then (SETQ FONT DEFAULTFONT))
(with RESULT (COURIER.CALL STREAM (QUOTE GRAPH)
(QUOTE LAYOUT)
(GRAPHNODES.TO.GRAPHRECORDS NODELST FONT)
ROOTIDS
(OR FORMAT (QUOTE (COMPACT)))
FONT MOTHERD PERSONALD FAMILYD)
(create GRAPH
GRAPHNODES ←(GRAPHRECORDS.TO.GRAPHNODES GRAPHRECORDS)
SIDESFLG ← SIDES?
DIRECTEDFLG ← DIRECTED?])
(GRAPH.REMOTELAYOUT
[LAMBDA (STREAM PROGRAM PROCEEDURE GRAPHRECORDS ROOTIDS FORMAT FONT MOTHERD PERSONALD FAMILYD)
(* cdl " 5-Dec-85 19:07")
(with GRAPH (LAYOUTGRAPH (GRAPHRECORDS.TO.GRAPHNODES GRAPHRECORDS)
ROOTIDS FORMAT FONT MOTHERD PERSONALD FAMILYD)
(BQUOTE (RETURN (, (GRAPHNODES.TO.GRAPHRECORDS GRAPHNODES)
, SIDESFLG , DIRECTEDFLG])
(GRAPHNODES.TO.GRAPHRECORDS
[LAMBDA (GRAPHNODES FONT) (* cdl " 5-Dec-85 19:30")
(bind COPYLST (COPYCOUNT ← 0) for NODE in GRAPHNODES
collect (with GRAPHNODE NODE
(create GRAPHRECORD
GR.ID ←(if (LISTP NODEID)
then [LIST
(CAR NODEID)
(LET (N)
(if (SETQ N (FASSOC NODEID COPYLST))
then (CDR N)
else (push COPYLST
(CONS NODEID
(ADD1VAR
COPYCOUNT)))
(CDR (CAR COPYLST]
else (LIST NODEID 0))
GR.POSITION ← NODEPOSITION
GR.LABEL ←(MKSTRING NODELABEL)
GR.WIDTH ← NODEWIDTH
GR.HEIGHT ← NODEHEIGHT
GR.TONODES ←(for TONODE in TONODES
collect
(if (LISTP TONODE)
then
[LIST
(CAR TONODE)
(LET (N)
(if (SETQ N (FASSOC TONODE
COPYLST))
then (CDR N)
else (push COPYLST
(CONS TONODE
(ADD1VAR
COPYCOUNT)))
(CDR (CAR COPYLST]
else (LIST TONODE 0)))
GR.FROMNODES ← FROMNODES
GR.FONT ←(OR NODEFONT FONT)
GR.BORDER ←[if (NUMBERP NODEBORDER)
then (LIST (QUOTE NUMBER)
NODEBORDER)
else (LIST (QUOTE FLAG)
(NOT (NULL NODEBORDER]
GR.LABELSHADE ← NODELABELSHADE])
(GRAPHRECORDS.TO.GRAPHNODES
[LAMBDA (GRAPHRECORDS) (* cdl " 5-Dec-85 19:09")
(bind COPYLST for GRAPHRECORD in GRAPHRECORDS
collect (with GRAPHRECORD GRAPHRECORD
(create GRAPHNODE
NODEID ←[if (ZEROP (CADR GR.ID))
then (CAR GR.ID)
else (LET ((N (FASSOC (CADR GR.ID)
COPYLST)))
(if N
then (CDR N)
else (push COPYLST
(LIST (CADR GR.ID)
(CAR GR.ID)))
(CDR (CAR COPYLST]
NODEPOSITION ← GR.POSITION
NODEWIDTH ← GR.WIDTH
NODEHEIGHT ← GR.HEIGHT
NODELABEL ← GR.LABEL
FROMNODES ← GR.FROMNODES
TONODES ←[for TONODE in GR.TONODES
collect
(if (ZEROP (CADR TONODE))
then (CAR TONODE)
else
(LET ((N (FASSOC (CADR TONODE)
COPYLST)))
(if N
then (CDR N)
else [push COPYLST
(LIST (CADR TONODE)
(MKATOM
(CAR TONODE]
(CDR (CAR COPYLST]
NODEFONT ← GR.FONT
NODEBORDER ←(CADR GR.BORDER)
NODELABELSHADE ← GR.LABELSHADE])
)
(COURIERPROGRAM GRAPH (1113 0)
TYPES
((GRAPH (RECORD (NODES GRAPHNODES)
(SIDESFLG BOOLEAN)
(DIRECTEDFLG BOOLEAN)))
(GRAPHNODE (RECORD (ID NODE)
(POSITION POSITION)
(LABEL STRING)
(WIDTH NUMBER)
(HEIGHT NUMBER)
(TONODES (SEQUENCE NODE))
(FROMNODES (SEQUENCE ATOM))
(FONT FONT)
(BORDER (CHOICE (FLAG 0 BOOLEAN)
(NUMBER 1 CARDINAL)))
(LABELSHADE TEXTURE)))
(NODE (RECORD (NODEID ATOM)
(COPYOF CARDINAL)))
(GRAPHNODES (SEQUENCE GRAPHNODE))
(ROOTIDS (SEQUENCE ATOM))
(FORMAT (SEQUENCE FORMAT.TYPE))
(FORMAT.TYPE (ENUMERATION (COMPACT 0)
(FAST 1)
(LATTICE 2)
(HORIZONTAL 3)
(VERTICAL 4)
(REVERSE 5)
(COPIES/ONLY 6)
(NOT/LEAVES 7)
(REVERSE/DAUGHTERS 8)))
(MOTHERD NUMBER)
(PERSONALD NUMBER)
(FAMILYD NUMBER))
INHERITS
(INTERLISP)
PROCEDURES
((LAYOUT 0 (GRAPHNODES ROOTIDS FORMAT FONT MOTHERD PERSONALD FAMILYD)
RETURNS
(GRAPH)
REPORTS
(LAYOUT.ERROR)
IMPLEMENTEDBY GRAPH.REMOTELAYOUT))
ERRORS
((LAYOUT.ERROR 0)))
(DECLARE: DONTCOPY
[DECLARE: EVAL@COMPILE
(RECORD GRAPHRECORD (GR.ID GR.POSITION GR.LABEL GR.WIDTH GR.HEIGHT GR.TONODES GR.FROMNODES GR.FONT
GR.BORDER GR.LABELSHADE))
]
)
(FILESLOAD COURIERDEFS)
(PUTPROPS REMOTEGRAPHER COPYRIGHT ("Xerox Corporation" 1985))
(DECLARE: DONTCOPY
(FILEMAP (NIL (678 4921 (REMOTELAYOUTGRAPH 688 . 1480) (GRAPH.REMOTELAYOUT 1482 . 1938) (
GRAPHNODES.TO.GRAPHRECORDS 1940 . 3561) (GRAPHRECORDS.TO.GRAPHNODES 3563 . 4919)))))
STOP