mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-05-04 11:23:51 +02:00

- An attempt to unify the defines for the different scenario's in the use of (not) codepage aware ansistrings and the use of the "Utf8 in RTL" feature. It makes for better separation of code and thus better readability and ease of maintainance (and in a later stadium it makes it easier to remove code that deals with non codepage aware ansistrings (fpc < 3.0)). - Also replace (FPC_FULLVERSION >= xxxx) with FPC_HAS_CPSTRING where appropriate. - Replace the custom HasCP define with built in FPC_HAS_CPSTRING define. git-svn-id: trunk@50498 -
77 lines
1.7 KiB
ObjectPascal
77 lines
1.7 KiB
ObjectPascal
{
|
|
/***************************************************************************
|
|
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}
|
|
|
|
{$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;
|
|
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;
|
|
|
|
{$ifdef UTF8_RTL}
|
|
initialization
|
|
SetMultiByteConversionCodePage(CP_UTF8);
|
|
// SetMultiByteFileSystemCodePage(CP_UTF8); not needed, this is the default under Windows
|
|
SetMultiByteRTLFileSystemCodePage(CP_UTF8);
|
|
{$IFEND}
|
|
|
|
end.
|