mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-15 16:59:44 +02:00

+ codepage support for textrec/filerec and the above routines * textrec/filerec now store the filename by default using widechar. It is possible to switch back to ansichars using the FPC_ANSI_TEXTFILEREC define. In that case, from now on the filename will always be stored in DefaultFileSystemEncoding * fixed potential buffer overflows and non-null-terminated file names in textrec/filerec + dodirseparators(pwidechar), changed the dodirseparators(pchar/pwidechar) parameters into var-parameters and gave those routines an extra parameter that indicates whether the p(wide)char can be changed in place if necessary or whether a copy must be made first (avoids us having to make all strings always unique everywhere, because they might be changed on some platforms via a pchar) * do_open/do_erase/do_rename got extra boolean parameters indicating whether the passed pchars point to data that can be freely changed (to pass on to dodirseparators() if applicable) * objects.pp: force assign(pchar) to be called, because assign(array[0..255]) cannot choose between pchar and rawbytestring versions (and removing the pchar version means that assign(pchar) will be mapped to assign(shortstring) in {$h-}) * fixed up some routines in other units that depend on the format of the textrec/filerec.name field git-svn-id: branches/cpstrrtl@25137 -
41 lines
1.3 KiB
PHP
41 lines
1.3 KiB
PHP
{
|
|
This file is part of the Free Pascal run time library.
|
|
Copyright (c) 1999-2000 by the Free Pascal development team
|
|
|
|
FileRec record definition
|
|
|
|
|
|
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.
|
|
|
|
**********************************************************************}
|
|
|
|
{
|
|
This file contains the definition of the filerec record.
|
|
It is put separately, so it is available outside the system
|
|
unit without sacrificing TP compatibility.
|
|
}
|
|
|
|
const
|
|
{$ifdef CPUAVR}
|
|
filerecnamelength = 15;
|
|
{$else CPUAVR}
|
|
filerecnamelength = 255;
|
|
{$endif CPUAVR}
|
|
type
|
|
{ using packed makes the compiler to generate ugly code on some CPUs, further
|
|
using packed causes the compiler to handle arrays of text wrongly, see see tw0754 e.g. on arm }
|
|
FileRec = {$ifdef VER2_6} packed {$endif} Record
|
|
Handle : THandle;
|
|
Mode : longint;
|
|
RecSize : SizeInt;
|
|
_private : array[1..3 * SizeOf(SizeInt) + 5 * SizeOf (pointer)] of byte;
|
|
UserData : array[1..32] of byte;
|
|
name : array[0..filerecnamelength] of TFileTextRecChar;
|
|
End;
|
|
|