mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-22 14:09:59 +02:00
merged from fixes-0_99_12
This commit is contained in:
parent
c1f28473c2
commit
c25711a2ef
@ -166,7 +166,7 @@ function SearchObjectForSymbol(O: PSymbol): PObjectSymbol;
|
||||
implementation
|
||||
|
||||
uses
|
||||
Drivers,Views,App,
|
||||
Verbose,Drivers,Views,App,
|
||||
aasm,globtype,globals,files,comphook;
|
||||
|
||||
{****************************************************************************
|
||||
@ -273,7 +273,13 @@ begin
|
||||
S2:=Upper(K2^.GetName);
|
||||
if S1<S2 then R:=-1 else
|
||||
if S1>S2 then R:=1 else
|
||||
R:=0;
|
||||
begin
|
||||
S1:=K1^.GetName;
|
||||
S2:=K2^.GetName;
|
||||
if S1<S2 then R:=-1 else
|
||||
if S1>S2 then R:=1 else
|
||||
R:=0;
|
||||
end;
|
||||
Compare:=R;
|
||||
end;
|
||||
|
||||
@ -300,11 +306,12 @@ begin
|
||||
OLI:=Left; ORI:=Right;
|
||||
Mid:=Left+(Right-Left) div 2;
|
||||
LeftP:=At(Left); RightP:=At(Right); MidP:=At(Mid);
|
||||
LeftS:=Upper(LeftP^.GetName); MidS:=Upper(MidP^.GetName);
|
||||
LeftS:=Upper(LeftP^.GetName);
|
||||
MidS:=Upper(MidP^.GetName);
|
||||
RightS:=Upper(RightP^.GetName);
|
||||
if copy(MidS,1,length(UpS))=UpS then
|
||||
begin
|
||||
Idx:=Mid; FoundS:=copy(MidS,1,length(S));
|
||||
Idx:=Mid; FoundS:=UpS{copy(MidS,1,length(S)) same and easier };
|
||||
end;
|
||||
{ else}
|
||||
if UpS<MidS then
|
||||
@ -368,7 +375,13 @@ begin
|
||||
S2:=Upper(K2^.GetName);
|
||||
if S1<S2 then R:=-1 else
|
||||
if S1>S2 then R:=1 else
|
||||
R:=0;
|
||||
begin
|
||||
S1:=K1^.GetName;
|
||||
S2:=K2^.GetName;
|
||||
if S1<S2 then R:=-1 else
|
||||
if S1>S2 then R:=1 else
|
||||
R:=0;
|
||||
end;
|
||||
Compare:=R;
|
||||
end;
|
||||
|
||||
@ -390,11 +403,12 @@ begin
|
||||
OLI:=Left; ORI:=Right;
|
||||
Mid:=Left+(Right-Left) div 2;
|
||||
LeftP:=At(Left); RightP:=At(Right); MidP:=At(Mid);
|
||||
LeftS:=Upper(LeftP^.GetName); MidS:=Upper(MidP^.GetName);
|
||||
LeftS:=Upper(LeftP^.GetName);
|
||||
MidS:=Upper(MidP^.GetName);
|
||||
RightS:=Upper(RightP^.GetName);
|
||||
if copy(MidS,1,length(UpS))=UpS then
|
||||
begin
|
||||
Idx:=Mid; FoundS:=copy(MidS,1,length(S));
|
||||
Idx:=Mid; FoundS:=UpS;
|
||||
end;
|
||||
{ else}
|
||||
if UpS<MidS then
|
||||
@ -976,6 +990,12 @@ procedure CreateBrowserCol;
|
||||
begin
|
||||
with pprocsym(sym)^ do
|
||||
if assigned(definition) then
|
||||
if assigned(definition^.nextoverloaded) then
|
||||
begin
|
||||
{ Several overloaded functions }
|
||||
Symbol^.Params:=TypeNames^.Add('...');
|
||||
end
|
||||
else
|
||||
begin
|
||||
if cs_local_browser in aktmoduleswitches then
|
||||
ProcessSymTable(Symbol,Symbol^.Items,definition^.parast);
|
||||
@ -1047,7 +1067,15 @@ procedure CreateBrowserCol;
|
||||
Ref:=Ref^.nextref;
|
||||
end;
|
||||
if Assigned(Symbol) then
|
||||
Owner^.Insert(Symbol);
|
||||
begin
|
||||
If Not Owner^.Search(Symbol,i) then
|
||||
Owner^.Insert(Symbol)
|
||||
else
|
||||
begin
|
||||
Comment(V_Warning,sym^.name+' already in SymbolCollection '+sym^.owner^.name^);
|
||||
dispose(Symbol,Done);
|
||||
end;
|
||||
end;
|
||||
sym:=psym(sym^.next);
|
||||
end;
|
||||
end;
|
||||
@ -1230,7 +1258,19 @@ begin
|
||||
end.
|
||||
{
|
||||
$Log$
|
||||
Revision 1.17 1999-06-22 16:24:39 pierre
|
||||
Revision 1.18 1999-06-25 00:27:41 pierre
|
||||
merged from fixes-0_99_12
|
||||
|
||||
Revision 1.16.2.1 1999/06/25 00:22:23 pierre
|
||||
* avoid problem with lowercase symbols
|
||||
(compare returns zero only if excat match,
|
||||
ordering is first done case unsensitive
|
||||
for a correct browser order)
|
||||
this solves memory leaks :
|
||||
TV and FV do not delete not inserted items in
|
||||
a sorted collection without duplicates (is this a bug or a feature ?)
|
||||
|
||||
Revision 1.17 1999/06/22 16:24:39 pierre
|
||||
* local browser stuff corrected
|
||||
|
||||
Revision 1.16 1999/05/13 21:59:20 peter
|
||||
|
Loading…
Reference in New Issue
Block a user