Browse Source

* patch by Evgeniy to overcome fp.ini line length limit for help files, resolves #36737

git-svn-id: trunk@44248 -
florian 5 years ago
parent
commit
9d7d146ddc
1 changed files with 12 additions and 16 deletions
  1. 12 16
      packages/ide/fpini.pas

+ 12 - 16
packages/ide/fpini.pas

@@ -117,7 +117,7 @@ const
   iePrimaryFile      = 'PrimaryFile';
   ieCompileMode      = 'CompileMode';
   iePalette          = 'Palette';
-  ieHelpFiles        = 'Files';
+  ieHelpFile        = 'File';
   ieDefaultTabSize   = 'DefaultTabSize';
   ieDefaultIndentSize = 'DefaultIndentSize';
   ieDefaultEditorFlags='DefaultFlags';
@@ -456,12 +456,11 @@ begin
         SwitchesMode:=ts;
     end;
   { Help }
-  S:=INIFile^.GetEntry(secHelp,ieHelpFiles,'');
+  I:=1;
   repeat
-    P:=Pos(';',S); if P=0 then P:=length(S)+1;
-    PS:=copy(S,1,P-1);
-    if PS<>'' then HelpFiles^.Insert(NewStr(PS));
-    Delete(S,1,P);
+    S:=INIFile^.GetEntry(secHelp,ieHelpFile + IntToStr(I),'');
+    inc(I);
+    if S<>'' then HelpFiles^.Insert(NewStr(S));
   until S='';
   { Editor }
   DefaultTabSize:=INIFile^.GetIntEntry(secEditor,ieDefaultTabSize,DefaultTabSize);
@@ -583,15 +582,9 @@ var INIFile: PINIFile;
     S: string;
     S1,S2,S3: string;
     W: word;
-    BreakPointCount,WatchesCount:longint;
+    HelpFileCount, BreakPointCount,WatchesCount:longint;
     I(*,OpenFileCount*): integer;
     OK: boolean;
-
-procedure ConcatName(P: PString);
-begin
-  if (S<>'') then S:=S+';';
-  S:=S+P^;
-end;
 begin
 {$ifdef Unix}
   if not FromSaveAs and (DirOf(IniFileName)=DirOf(SystemIDEDir)) then
@@ -680,9 +673,12 @@ begin
   INIFile^.SetEntry(secCompile,iePrimaryFile,PrimaryFile);
   INIFile^.SetEntry(secCompile,ieCompileMode,SwitchesModeStr[SwitchesMode]);
   { Help }
-  S:='';
-  HelpFiles^.ForEach(TCallbackProcParam(@ConcatName));
-  INIFile^.SetEntry(secHelp,ieHelpFiles,EscapeIniText(S));
+  HelpFileCount:=HelpFiles^.Count;
+  for I := 1 to HelpFileCount do
+    begin
+      S:=HelpFiles^.At(I-1)^;
+      INIFile^.SetEntry(secHelp, ieHelpFile + IntToStr(I), EscapeIniText(S));
+    end;
   { Editor }
   INIFile^.SetIntEntry(secEditor,ieDefaultTabSize,DefaultTabSize);
   INIFile^.SetIntEntry(secEditor,ieDefaultIndentSize,DefaultIndentSize);