(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