mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 09:21:43 +01: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.
 | 
