瀏覽代碼

--- Merging r45407 into '.':
U packages/ide/wchmhwrap.pas
G .
--- Recording mergeinfo for merge of r45407 into '.':
G .

git-svn-id: tags/release_3_2_0@45408 -

marco 5 年之前
父節點
當前提交
7162afecff
共有 1 個文件被更改,包括 25 次插入19 次删除
  1. 25 19
      packages/ide/wchmhwrap.pas

+ 25 - 19
packages/ide/wchmhwrap.pas

@@ -116,12 +116,25 @@ begin
   FormatAlias:=Alias;
   FormatAlias:=Alias;
 end;
 end;
 
 
+function searchlocal(item:TChmSiteMapItem):string;
+var i:integer;
+    sitem : TChmSiteMapSubItem;
+begin
+  result:='';
+  for i:=0 to item.SubItemcount-1 do
+     begin
+       sitem:=item.subitem[i];
+       if sitem.local<>'' then
+          exit(sitem.local);
+     end;
+end;
+
 var
 var
     m : Classes.TMemoryStream;
     m : Classes.TMemoryStream;
     i,j : integer;
     i,j : integer;
     item : TChmSiteMapItem;
     item : TChmSiteMapItem;
     tli: integer;
     tli: integer;
-    s  : String;
+    s,s2 : String;
 begin
 begin
  result:=false;
  result:=false;
  if floaded then exit;
  if floaded then exit;
@@ -130,22 +143,10 @@ begin
      debugmessageS({$i %file%},'TCHMWrapper: indexfilename:'+fchmr.indexfile,{$i %line%},'1',0,0);
      debugmessageS({$i %file%},'TCHMWrapper: indexfilename:'+fchmr.indexfile,{$i %line%},'1',0,0);
  {$endif}
  {$endif}
 
 
-
+  if assigned(findex) then
+    freeandnil(findex);
   findex:=fchmr.GetIndexSitemap(false);
   findex:=fchmr.GetIndexSitemap(false);
-(*  m:=fchmr.getobject(fchmr.indexfile);
-  try
-   if assigned(m) then
-     begin
-      {$ifdef wdebug}
-       debugmessageS({$i %file%},'TCHMWrapper: stream size loaded :'+inttostr(m.size),{$i %line%},'1',0,0);
-      {$endif}
-      findex.loadfromStream(m);
-    end;
-  finally
-    freeandnil(m);
-    end;
-    *)
-   {$ifdef wdebug}
+  {$ifdef wdebug}
      debugmessageS({$i %file%},'TCHMWrapper: loadindex after final ',{$i %line%},'1',0,0);
      debugmessageS({$i %file%},'TCHMWrapper: loadindex after final ',{$i %line%},'1',0,0);
   {$endif}
   {$endif}
 
 
@@ -164,10 +165,15 @@ begin
       s:=formatalias(item.text);
       s:=formatalias(item.text);
       if s<>'' then
       if s<>'' then
         begin
         begin
-          if (length(item.local)>0) and (item.local[1]<>'/') then
-            tli:=TopicLinks^.AddItem('/'+item.local)
+          s2:='';
+          if item.SubItemcount>1 then
+           s2:=item.SubItem[1].local;
+          if s2='' then
+            s2:=searchlocal(item);
+          if (length(s2)>0) and (s2[1]<>'/') then
+            tli:=TopicLinks^.AddItem('/'+s2)
           else
           else
-            tli:=TopicLinks^.AddItem(item.local);
+            tli:=TopicLinks^.AddItem(s2);
           TLI:=EncodeHTMLCtx(ID,TLI+1);
           TLI:=EncodeHTMLCtx(ID,TLI+1);
           IndexEntries^.Insert(NewIndexEntry(  FormatAlias(item.text),ID,TLI));
           IndexEntries^.Insert(NewIndexEntry(  FormatAlias(item.text),ID,TLI));
         end;
         end;