mirror of
				https://gitlab.com/freepascal.org/fpc/source.git
				synced 2025-10-30 05:11:29 +01:00 
			
		
		
		
	 d66d15aad3
			
		
	
	
		d66d15aad3
		
	
	
	
	
		
			
			* renamed platform-specific pchar versions of those rouines to do_*() and
    changed them to either rawbytestring or unicodestring depending on the
    FPCRTL_FILESYSTEM_SINGLE_BYTE_API/FPCRTL_FILESYSTEM_TWO_BYTE_API setting
  * implemented generic shortstring versions of those routines on top of either
    rawbytestring or unicodestring depending on the API-kind (in case of the
    embedded target, if ansistring are not supported they will map directly
    to shortstring routines instead)
  * all platform-specific *dir() routines with rawbytestring parameters now
    receive their parameters in DefaultFileSystemCodePage
  - removed no longer required ansistring variants from the objpas unit
  - removed no longer required FPC_SYS_MKDIR etc aliases
  * factored out empty string and inoutres<>0 checks from platform-specific
    *dir() routines to generic ones
  o platform-specific notes:
   o amiga/morphos: check new pathconv(rawbytestring) function
   o macos TODO: convert PathArgToFSSpec (and the routines it calls) to
     rawbytestring
   o nativent: added SysUnicodeStringToNtStr() function
   o wii: convert dirio callbacks to use rawbytestring to avoid conversion
  + test for unicode mk/ch/rm/getdir()
git-svn-id: branches/cpstrrtl@25048 -
		
	
			
		
			
				
	
	
		
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| {
 | |
|     This file is part of the Free Pascal run time library.
 | |
|     Copyright (c) 1999-2000 by Florian Klaempfl and Pavel Ozerski
 | |
|     member of the Free Pascal development team.
 | |
| 
 | |
|     FPC Pascal system unit for the Win32 API.
 | |
| 
 | |
|     See the file COPYING.FPC, included in this distribution,
 | |
|     for details about the copyright.
 | |
| 
 | |
|     This program is distributed in the hope that it will be useful,
 | |
|     but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
| 
 | |
|  **********************************************************************}
 | |
| 
 | |
| {*****************************************************************************
 | |
|                            Directory Handling
 | |
| *****************************************************************************}
 | |
| Procedure do_MkDir(const s: rawbytestring);
 | |
| var Res: LONGINT;
 | |
| BEGIN
 | |
|   Res := FpMkdir (pchar(s),S_IRWXU);
 | |
|   if Res = 0 then
 | |
|     InOutRes:=0
 | |
|   else
 | |
|     SetFileError (Res);
 | |
| end;
 | |
| 
 | |
| procedure do_RmDir(const s: rawbytestring);
 | |
| var Res: longint;
 | |
| begin
 | |
|   Res := FpRmdir (pchar(s));
 | |
|   if Res = 0 then
 | |
|     InOutRes:=0
 | |
|   else
 | |
|     SetFileError (Res);
 | |
| end;
 | |
| 
 | |
| 
 | |
| procedure do_ChDir(const s: rawbytestring);
 | |
| var Res: longint;
 | |
| begin
 | |
|   Res := FpChdir (s);
 | |
|   if Res = 0 then
 | |
|     InOutRes:=0
 | |
|   else
 | |
|     SetFileError (Res);
 | |
| end;
 | |
| 
 | |
| 
 | |
| procedure do_getdir(drivenr : byte;var dir : rawbytestring);
 | |
| var P : array [0..255] of CHAR;
 | |
|     i : LONGINT;
 | |
| begin
 | |
|   P[0] := #0;
 | |
|   getcwdpath(@P,nil,0);   // getcwd does not return volume, getcwdpath does
 | |
|   i := libc_strlen (P);
 | |
|   if i > 0 then
 | |
|   begin
 | |
|     SetLength (dir, i);
 | |
|     Move (P, dir[1], i);
 | |
|     DoDirSeparators(dir);
 | |
|     // fix / after volume, the compiler needs that
 | |
|     // normaly root of a volumes is SERVERNAME/SYS:, change that
 | |
|     // to SERVERNAME/SYS:/
 | |
|     i := pos (':',dir);
 | |
|     if (i > 0) then
 | |
|       if i = Length (dir) then dir := dir + '/' else
 | |
|       if dir [i+1] <> '/' then insert ('/',dir,i+1);
 | |
|     SetCodePage (dir,DefaultFileSystemCodePage,false);
 | |
|   end else
 | |
|     InOutRes := 1;
 | |
| end;
 | |
| 
 | |
| 
 | |
| 
 |