lazarus/lcl/fpcadds.pas

70 lines
1.5 KiB
ObjectPascal

{ $Id$ }
{
/***************************************************************************
FPCAdds.pas
-----------
***************************************************************************/
*****************************************************************************
This file is part of the Lazarus Component Library (LCL)
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
}
unit FPCAdds;
{$mode objfpc}{$H+}{$inline on}
interface
uses
Classes, SysUtils, Math;
// current TStream calculates in int64, old in longint
type
TStreamSeekType = int64;
TMemStreamSeekType = integer;
TCompareMemSize = integer;
PHandle = ^THandle;
function StrToWord(const s: string): word;
function AlignToPtr(const p: Pointer): Pointer;
function AlignToInt(const p: Pointer): Pointer;
implementation
function StrToWord(const s: string): word;
var
p: Integer;
begin
Result:=0;
p:=1;
while (p<=length(s)) do begin
Result:=Result*10+ord(s[p])-ord('0');
inc(p);
end;
end;
function AlignToPtr(const p: Pointer): Pointer;
begin
{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
Result := Align(p, SizeOf(Pointer));
{$ELSE}
Result := p;
{$ENDIF}
end;
function AlignToInt(const p: Pointer): Pointer;
begin
{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
Result := Align(p, SizeOf(integer));
{$ELSE}
Result := p;
{$ENDIF}
end;
end.