Browse Source

* Fix working of fpdocclasstree in case of multiple files

git-svn-id: trunk@31367 -
michael 10 years ago
parent
commit
cb05e1dbf4
2 changed files with 9 additions and 13 deletions
  1. 5 4
      utils/fpdoc/fpclasschart.pp
  2. 4 9
      utils/fpdoc/fpdocclasstree.pp

+ 5 - 4
utils/fpdoc/fpclasschart.pp

@@ -520,28 +520,29 @@ Var
 
 begin
   Result:='';
+  ACount:=0;
   XML:=TXMLDocument.Create;
   Try
     //XML.
-    XML.AppendChild(XML.CreateElement(ObjKindNames[AObjectKind]));
+    XML.AppendChild(XML.CreateElement('TObject'));
     For I:=0 to MergeFiles.Count-1 do
       begin
       XMl2:=TXMLDocument.Create;
       ReadXMLFile(XML2,MergeFiles[i]);
       try
-        ACount:=MergeTrees(XML,XML2);
+        ACount:=ACount+MergeTrees(XML,XML2);
         WriteLn(StdErr,Format(SMergedFile,[ACount,MergeFiles[i]]));
       Finally
         FreeAndNil(XML2);
       end;
       end;
-    ACount:=0;
     For I:=0 to InputFiles.Count-1 do
       begin
       Engine := TClassTreeEngine.Create(XML,AObjectKind);
       Try
         ParseSource(Engine,InputFiles[I],OSTarget,CPUTarget);
-        ACount:=ACount+Engine.Ftree.BuildTree(Engine.FObjects);
+        Engine.Ftree.BuildTree(Engine.FObjects);
+        ACount:=ACount+MergeTrees(XML,Engine.FTree.ClassTree);
       Finally
         FreeAndNil(Engine);
       end;

+ 4 - 9
utils/fpdoc/fpdocclasstree.pp

@@ -81,7 +81,7 @@ begin
     S:=N.NodeName;
     if NoPath then
       Begin
-      Result:= (CompareText(S,AElement.Name)=0);
+      Result:=(CompareText(S,AElement.Name)=0);
       end
     else
       begin
@@ -131,10 +131,11 @@ Var
   N : TDomNode;
 
 begin
-  //Writeln('Enter TClassTreeBuilder.AddToClassTree');
+
+//  Writeln('Enter TClassTreeBuilder.AddToClassTree');
   //if Assigned(AElement) then
     //Writeln('Addtoclasstree : ',aElement.Name);
-  Result:=Nil; N:=Nil;PE:=NIL;
+  Result:=Nil; M:=Nil; N:=Nil;PE:=NIL;PC:=Nil;
   If (AElement=Nil) then
     begin
     Result:=FTreeStart;
@@ -144,9 +145,7 @@ begin
     begin
     N:=LookForElement(FTreeStart,AElement,True);
     If (N=Nil) then
-      begin
       PE:=FTreeStart;
-      end
     end
   else If (AElement is TPasClassType) then
     begin
@@ -163,8 +162,6 @@ begin
     end;
   If (N<>Nil) then
     begin
-//    if Assigned(PC) then
-//      Writeln(PC.Name,' already in tree');
     Result:=N as TDomElement
     end
   else
@@ -179,10 +176,8 @@ begin
       end;
     if PE=Nil then
       begin
-      //Writeln('PE = nil detected for ',AElement.PathName);
       PE:=FTreeStart
       end;
-    //Writeln('Appending to ',PE.NodeName);
     // if not assigned, probably needs to be assigned to something else.
     if assigned(PE) then
       PE.AppendChild(Result);