(FILECREATED "13-May-87 23:40:31" {QV}<NOTECARDS>1.3K>NEXT>RHTPATCH261.;4 6458 changes to: (FNS NC.ConvertVersion2BrowserCard) (VARS RHTPATCH261COMS) previous date: "13-May-87 19:00:29" {QV}<NOTECARDS>1.3K>NEXT>RHTPATCH261.;1) (* Copyright (c) 1987 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT RHTPATCH261COMS) (RPAQQ RHTPATCH261COMS ((DECLARE: FIRST (P (NC.LoadFileFromDirectories (QUOTE NCCONVERTVERSION2TO3)) )) (* * Fixes bug %#432: Browser expand node on newly converted notefile destroys links.) (* * Change to NCCONVERTVERSION2TO3) (FNS NC.ConvertVersion2BrowserCard))) (DECLARE: FIRST (NC.LoadFileFromDirectories (QUOTE NCCONVERTVERSION2TO3)) ) (* * Fixes bug %#432: Browser expand node on newly converted notefile destroys links.) (* * Change to NCCONVERTVERSION2TO3) (DEFINEQ (NC.ConvertVersion2BrowserCard (LAMBDA (Card Version2HashArray) (* rht: "13-May-87 23:40") (* * Fix the browser roots and graphnode IDs to be version 3 - this is just modified version of the code in NCMERGEFILES that processes browser cards.) (* * rht 4/5/86: Now removes NODEID and DESTNODEID fields from LinkParams of TOLINKS of graphnodes. This effectively converts multiple links between pairs of nodes into single links. Thus, users will have to ReconnectNodesInBrowser in order to recover the multiple links they had in 1.2.) (* * fgh 5/28/86 Changed the way the TONODES and FROMNODES lists are converted. Now uses an ASSOC list to map from old to new NodeIds when convreting the NODEID field. This is then used to convert each NodeID in the TO and FTOM lists. This way virtual nodes we can be sure for virtual nodes that all references are EQ not just EQUAL as required by grapher.) (* * rht 5/13/87: Now puts the information regarding link dashing onto the individual graph node id props. This gets saved when the browser is "put" to the 1.3 notefile.) (DECLARE (GLOBALVARS NC.DashingStyles)) (* Get various stuff off browser's prop list.) (LET (MappingList LinksLegend) (NC.SetBrowserLinkLabels Card (CAR (NC.GetProp Card (QUOTE BrowserLinkLabels)))) (NC.RemProp Card (QUOTE BrowserLinkLabels)) (NC.SetBrowserLinksLegend Card (SETQ LinksLegend (CAR (NC.GetProp Card (QUOTE BrowserLinksLegend))))) (NC.RemProp Card (QUOTE BrowserLinksLegend)) (NC.SetBrowserDepth Card (NC.GetProp Card (QUOTE BrowserDepth))) (NC.RemProp Card (QUOTE BrowserDepth)) (NC.SetBrowserFormat Card (CAR (NC.GetProp Card (QUOTE BrowserFormat)))) (NC.RemProp Card (QUOTE BrowserFormat)) (NC.SetSpecialBrowserSpecs Card (CAR (NC.GetProp Card (QUOTE SpecialBrowserSpecs)))) (NC.RemProp Card (QUOTE SpecialBrowserSpecs)) (* Fix up browser roots) (NC.SetBrowserRoots Card (for BrowserRootID in (CAR (NC.GetProp Card (QUOTE BrowserRoots))) collect (NC.Version3CardFromVersion2ID BrowserRootID Version2HashArray))) (* Throw away old browser roots.) (NC.RemProp Card (QUOTE BrowserRoots)) (* * Fix up graph nodeids and store a mapping between old and new IDs on MappingList) (bind OldNodeID NewNodeID for GraphNode in (fetch (GRAPH GRAPHNODES) of (NC.FetchSubstance Card)) do (replace (GRAPHNODE NODEID) of GraphNode with (SETQ NewNodeID ( NC.ConvertVersion2GraphNodeID (SETQ OldNodeID (fetch (GRAPHNODE NODEID) of GraphNode)) Card Version2HashArray))) (push MappingList (CONS OldNodeID NewNodeID))) (* * Fix up the TONODES and FROMNODES for each GRAPHNODE using the new IDs created above and stored in MappingList.) (for GraphNode in (fetch (GRAPH GRAPHNODES) of (NC.FetchSubstance Card)) do (LET ((GraphNodeID (NC.CoerceToGraphNodeID GraphNode))) (replace (GRAPHNODE TONODES) of GraphNode with (for ToNode in (fetch (GRAPHNODE TONODES) of GraphNode) collect (LET ((ToNodeDashingStyle (if (EQ (CAR ToNode) LINKPARAMS) then (LISTGET ToNode (QUOTE DASHING)) else NIL)) ToNodeID) (SETQ ToNodeID (CDR (ASSOC (if (EQ (CAR ToNode) LINKPARAMS) then (CADR ToNode) else ToNode) MappingList))) (NC.GraphNodeIDPutProp GraphNodeID ToNodeID (for DashingStyle in NC.DashingStyles as DashingPair in LinksLegend when (EQUAL DashingStyle ToNodeDashingStyle) do (RETURN DashingPair) finally (RETURN (CAR LinksLegend)))) (if (EQ (CAR ToNode) LINKPARAMS) then (RPLACA (CDR ToNode) ToNodeID) (AND (LISTGET ToNode (QUOTE NODEID) ) (LISTPUT ToNode (QUOTE NODEID) NIL)) (AND (LISTGET ToNode (QUOTE DESTNODEID)) (LISTPUT ToNode (QUOTE DESTNODEID) NIL)) ToNode else ToNodeID))))) (replace (GRAPHNODE FROMNODES) of GraphNode with (for NodeID in (fetch (GRAPHNODE FROMNODES) of GraphNode) collect (COND ((EQ (CAR NodeID) LINKPARAMS) (RPLACA (CDR NodeID) (CDR (ASSOC (CADR NodeID) MappingList)))) (T (CDR (ASSOC NodeID MappingList)))))))))) ) (PUTPROPS RHTPATCH261 COPYRIGHT ("Xerox Corporation" 1987)) (DECLARE: DONTCOPY (FILEMAP (NIL (876 6376 (NC.ConvertVersion2BrowserCard 886 . 6374))))) STOP