* get it to load old and new desktops

This commit is contained in:
pierre 2002-09-09 06:22:45 +00:00
parent f7a7c4d81b
commit b5c78c2073

View File

@ -1,3 +1,20 @@
{
$Id$
This file is part of the Free Pascal Integrated Development Environment
Copyright (c) 1998 by Berczi Gabor
Code Complete routines
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
unit FPCodCmp; { CodeComplete }
interface
@ -269,6 +286,11 @@ end;
function LoadCodeComplete(var S: TStream): boolean;
var C: PCodeCompleteWordList;
OK: boolean;
NewCodeCompleteMinLen : byte;
NewUseStandardUnitsInCodeComplete,
NewUseAllUnitsInCodeComplete,
NewShowOnlyUnique : boolean;
NewCodeCompleteCase : TCodeCompleteCase;
StPtr : PString;
begin
New(C, Load(S));
@ -277,15 +299,42 @@ begin
begin
if Assigned(CodeCompleteWords) then Dispose(CodeCompleteWords, Done);
CodeCompleteWords:=C;
S.Read(CodeCompleteCase,Sizeof(TCodeCompleteCase));
S.Read(UseStandardUnitsInCodeComplete,Sizeof(UseStandardUnitsInCodeComplete));
S.Read(UseAllUnitsInCodeComplete,Sizeof(UseAllUnitsInCodeComplete));
S.Read(ShowOnlyUnique,Sizeof(ShowOnlyUnique));
S.Read(CodeCompleteMinLen,Sizeof(CodeCompleteMinLen));
StPtr:=S.ReadStr;
StandardUnits:=GetStr(StPtr);
S.Read(NewCodeCompleteCase,Sizeof(TCodeCompleteCase));
OK:=(S.Status=stOk);
if OK then
CodeCompleteCase:=NewCodeCompleteCase;
{ Old version of Code complete, also OK PM }
if not OK or (S.getPos=S.getSize) then
begin
LoadCodeComplete:=OK;
exit;
end;
if S.Status=stOK then
S.Read(NewUseStandardUnitsInCodeComplete,Sizeof(UseStandardUnitsInCodeComplete));
if S.Status=stOK then
NewUseStandardUnitsInCodeComplete:=UseStandardUnitsInCodeComplete;
if S.Status=stOK then
S.Read(NewUseAllUnitsInCodeComplete,Sizeof(UseAllUnitsInCodeComplete));
if S.Status=stOK then
NewUseAllUnitsInCodeComplete:=UseAllUnitsInCodeComplete;
if S.Status=stOK then
S.Read(NewShowOnlyUnique,Sizeof(ShowOnlyUnique));
if S.Status=stOK then
NewShowOnlyUnique:=ShowOnlyUnique;
if S.Status=stOK then
S.Read(NewCodeCompleteMinLen,Sizeof(CodeCompleteMinLen));
if S.Status=stOK then
NewCodeCompleteMinLen:=CodeCompleteMinLen;
if S.Status=stOK then
StPtr:=S.ReadStr
else
StPtr:=nil;
if (S.Status=stOK) then
StandardUnits:=GetStr(StPtr);
if assigned(StPtr) then
FreeMem(StPtr,Length(StandardUnits)+1);
OK:=S.Status=stOK;
end
else
if Assigned(C) then
@ -301,6 +350,7 @@ begin
begin
CodeCompleteWords^.Store(S);
S.Write(CodeCompleteCase,Sizeof(TCodeCompleteCase));
{ New fields added }
S.Write(UseStandardUnitsInCodeComplete,Sizeof(UseStandardUnitsInCodeComplete));
S.Write(UseAllUnitsInCodeComplete,Sizeof(UseAllUnitsInCodeComplete));
S.Write(ShowOnlyUnique,Sizeof(ShowOnlyUnique));
@ -579,3 +629,11 @@ begin
end;
END.
{
$Log$
Revision 1.8 2002-09-09 06:22:45 pierre
* get it to load old and new desktops
}