mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-03 18:06:34 +02:00
68 lines
1.4 KiB
ObjectPascal
68 lines
1.4 KiB
ObjectPascal
{
|
|
*****************************************************************************
|
|
This file is part of LazUtils.
|
|
|
|
See the file COPYING.modifiedLGPL.txt, included in this distribution,
|
|
for details about the license.
|
|
*****************************************************************************
|
|
}
|
|
unit FPCAdds;
|
|
|
|
{$mode objfpc}{$H+}{$inline on}
|
|
|
|
{$i lazutils_defines.inc}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils;
|
|
|
|
type
|
|
TStreamSeekType = int64;
|
|
TMemStreamSeekType = PtrInt;
|
|
TCompareMemSize = PtrUInt;
|
|
PHandle = ^THandle;
|
|
|
|
function StrToWord(const s: string): word;
|
|
|
|
function AlignToPtr(const p: Pointer): Pointer; inline;
|
|
function AlignToInt(const p: Pointer): Pointer; inline;
|
|
|
|
implementation
|
|
|
|
function StrToWord(const s: string): word;
|
|
var
|
|
i: Integer;
|
|
begin
|
|
Result:=0;
|
|
for i:=1 to Length(s) do
|
|
Result:=Result*10+ord(s[i])-ord('0');
|
|
end;
|
|
|
|
function AlignToPtr(const p: Pointer): Pointer; inline;
|
|
begin
|
|
{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
|
|
Result := Align(p, SizeOf(Pointer));
|
|
{$ELSE}
|
|
Result := p;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
function AlignToInt(const p: Pointer): Pointer; inline;
|
|
begin
|
|
{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT}
|
|
Result := Align(p, SizeOf(integer));
|
|
{$ELSE}
|
|
Result := p;
|
|
{$ENDIF}
|
|
end;
|
|
|
|
{$ifdef UTF8_RTL}
|
|
initialization
|
|
SetMultiByteConversionCodePage(CP_UTF8);
|
|
// SetMultiByteFileSystemCodePage(CP_UTF8); not needed, this is the default under Windows
|
|
SetMultiByteRTLFileSystemCodePage(CP_UTF8);
|
|
{$IFEND}
|
|
|
|
end.
|