Jelajahi Sumber

* Patch from DoDi to allow easy import

git-svn-id: trunk@22150 -
michael 13 tahun lalu
induk
melakukan
9d528c65e3
2 mengubah file dengan 18 tambahan dan 2 penghapusan
  1. 14 0
      utils/fpdoc/dwriter.pp
  2. 4 2
      utils/fpdoc/mkfpdoc.pp

+ 14 - 0
utils/fpdoc/dwriter.pp

@@ -168,6 +168,7 @@ type
     Function InterpretOption(Const Cmd,Arg : String) : Boolean; Virtual;
     Class Function FileNameExtension : String; virtual;
     Class Procedure Usage(List : TStrings); virtual;
+    Class procedure SplitImport(var AFilename, ALinkPrefix: String); virtual;
     procedure WriteDoc; virtual; Abstract;
     Function WriteDescr(Element: TPasElement) : TDocNode;
     procedure WriteDescr(Element: TPasElement; DocNode: TDocNode);
@@ -370,6 +371,19 @@ begin
   // Do nothing.
 end;
 
+class procedure TFPDocWriter.SplitImport(var AFilename, ALinkPrefix: String);
+var
+  i: integer;
+begin
+//override in HTML and CHM writer
+  i := Pos(',', AFilename);
+  if i > 0 then
+    begin  //split CSV into filename and prefix
+    ALinkPrefix := Copy(AFilename,i+1,Length(AFilename));
+    SetLength(AFilename, i-1);
+    end;
+end;
+
 Function TFPDocWriter.FindTopicElement(Node : TDocNode): TTopicElement;
 
 Var

+ 4 - 2
utils/fpdoc/mkfpdoc.pp

@@ -186,16 +186,18 @@ var
   i,j: Integer;
   Engine : TFPDocEngine;
   Cmd,Arg : String;
+  WriterClass: TFPDocWriterClass;
 
 begin
   FCurPackage:=APackage;
   Engine:=TFPDocEngine.Create;
   try
+    WriterClass:=GetWriterClass(Options.Backend);
     For J:=0 to Apackage.Imports.Count-1 do
       begin
       Arg:=Apackage.Imports[j];
-      i := Pos(',', Arg);
-      Engine.ReadContentFile(Copy(Arg,1,i-1),Copy(Arg,i+1,Length(Arg)));
+      WriterClass.SplitImport(Arg,Cmd);
+      Engine.ReadContentFile(Arg, Cmd);
       end;
     for i := 0 to APackage.Descriptions.Count - 1 do
       Engine.AddDocFile(APackage.Descriptions[i],Options.donttrim);