mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 03:59:13 +02:00
* array[cardinal] is buggy, use array[word]
* small fix in getresourcestring
This commit is contained in:
parent
6dac94ac96
commit
ea34cb18fa
@ -25,7 +25,7 @@ unit objpas;
|
||||
smallint = system.integer;
|
||||
integer = system.longint;
|
||||
|
||||
{ the compiler searches in the objpas unit for the tvarrec symbol }
|
||||
{ the compiler searches in the objpas unit for the tvarrec symbol }
|
||||
TVarRec = System.TVarRec;
|
||||
PVarRec = ^TVarRec;
|
||||
{****************************************************************************
|
||||
@ -60,9 +60,9 @@ unit objpas;
|
||||
Function GetResourceString(Hash : Longint) : AnsiString;
|
||||
Procedure ResetResourceTables;
|
||||
Function SetResourceString(Hash : longint; Const Value : AnsiString) : Boolean;
|
||||
{$endif}
|
||||
|
||||
|
||||
{$endif}
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{****************************************************************************
|
||||
@ -149,10 +149,10 @@ begin
|
||||
if (Param>=0) and (Param<argc) then
|
||||
begin
|
||||
Len:=0;
|
||||
While Argv[Param][Len]<>#0 do
|
||||
While Argv[Param][Len]<>#0 do
|
||||
Inc(len);
|
||||
SetLength(Result,Len);
|
||||
If Len>0 then
|
||||
If Len>0 then
|
||||
Move(Argv[Param][0],Result[1],Len);
|
||||
end
|
||||
else
|
||||
@ -160,7 +160,7 @@ begin
|
||||
end;
|
||||
|
||||
{$IFDEF HasResourceStrings}
|
||||
|
||||
|
||||
{ ---------------------------------------------------------------------
|
||||
ResourceString support
|
||||
---------------------------------------------------------------------}
|
||||
@ -170,32 +170,33 @@ Type
|
||||
DefaultValue,
|
||||
CurrentValue : AnsiString;
|
||||
HashValue : longint;
|
||||
end;
|
||||
|
||||
TResourceStringTable = Packed Record
|
||||
end;
|
||||
|
||||
TResourceStringTable = Packed Record
|
||||
Count : longint;
|
||||
Resrec : Array[Cardinal] of TResourceStringRecord;
|
||||
end;
|
||||
|
||||
Var
|
||||
Resrec : Array[Word] of TResourceStringRecord;
|
||||
end;
|
||||
|
||||
Var
|
||||
ResourceStringTable : TResourceStringTable; External Name 'RESOURCESTRINGLIST';
|
||||
|
||||
Function FindHashIndex (Value : Longint) : Longint;
|
||||
|
||||
VAr I : longint;
|
||||
|
||||
Var
|
||||
I : longint;
|
||||
begin
|
||||
// Linear search, later we can implement binary search.
|
||||
With ResourceStringTable do
|
||||
With ResourceStringTable do
|
||||
For I:=0 to Count-1 do
|
||||
If Value=Resrec[result].HashValue then
|
||||
If Value=Resrec[I].HashValue then
|
||||
begin
|
||||
Result:=I;
|
||||
exit;
|
||||
end;
|
||||
Result:=-1;
|
||||
Result:=-1;
|
||||
end;
|
||||
|
||||
|
||||
|
||||
Function GetResourceString(Hash : Longint) : AnsiString;[Public,Alias : 'FPC_GETRESOURCESTRING'];
|
||||
|
||||
begin
|
||||
@ -203,9 +204,10 @@ begin
|
||||
If Hash<>-1 then
|
||||
Result:=ResourceStringTable.ResRec[Hash].CurrentValue
|
||||
else
|
||||
Result:='';
|
||||
Result:='';
|
||||
end;
|
||||
|
||||
|
||||
Function SetResourceString(Hash : longint; Const Value : AnsiString) : Boolean;
|
||||
|
||||
begin
|
||||
@ -215,25 +217,31 @@ begin
|
||||
ResourceStringTable.ResRec[Hash].CurrentValue:=Value;
|
||||
end;
|
||||
|
||||
|
||||
Procedure ResetResourceTables;
|
||||
|
||||
Var I : longint;
|
||||
|
||||
begin
|
||||
For I:=0 to ResourceStringTable.Count-1 do
|
||||
ResourceStringTable.ResRec[i].CurrentValue:=
|
||||
ResourceStringTable.ResRec[i].DefaultValue;
|
||||
With ResourceStringTable do
|
||||
For I:=0 to Count-1 do
|
||||
With ResRec[i] do
|
||||
CurrentValue:=DefaultValue;
|
||||
end;
|
||||
|
||||
Initialization
|
||||
ResetResourceTables;
|
||||
{$endif}
|
||||
|
||||
{$endif}
|
||||
|
||||
end.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.28 1999-07-23 22:51:11 michael
|
||||
Revision 1.29 1999-07-23 23:13:54 peter
|
||||
* array[cardinal] is buggy, use array[word]
|
||||
* small fix in getresourcestring
|
||||
|
||||
Revision 1.28 1999/07/23 22:51:11 michael
|
||||
* Added HasResourceStrings check
|
||||
|
||||
Revision 1.27 1999/07/22 20:30:13 michael
|
||||
|
Loading…
Reference in New Issue
Block a user