* greatly enhances clean performance over FSes with limited to no caching (networked file systems (eg. SSHFS), Amiga, etc)
* also an indentation fix
git-svn-id: trunk@25339 -
Format of saved data is changed as follows:
- Identification (start of file) changes from "BinBufDataset" (OLD version named 1.0) to "BinBufDataSet" (NEW version named 2.0)
- Just after Identification ("BinBufDataSet") is written one byte indicating version (for now it is 20 as 2.0)
- FieldDefs are saved in same format as in OLD format (nothing chages)
- Record header is saved in same format as in OLD format (nothing chages)
- Record data are saved field by field, where each field begins with 4 bytes indicating length of data, followed by data (here is used TField.AsBytes to get actual data)
Backward compatibility is keept in reading OLD format
When saving NEW format is always used
git-svn-id: trunk@25333 -
registry.pp, TRegistry:
* use FSysData to hold information whether we need to close the RootKey
winrec.inc, TRegistry:
+ add a TWinRegData type that holds the information whether the RootKey was explicitely opened by us
* SysRegCreate: allocate FSysData as PWinRegData
* SysRegFree: close the RootKey if necessary and free FSysData
+ RegistryConnect: implement for Win32/Win64; update RootKey only if RegConnectRegistry connects successfully, also the RootKey is now owned by us
* SetRootKey: update the RootKey only if it differs from previous value (avoids orphaning the key by doing a "reg.RootKey := reg.RootKey") and close the previous RootKey if it was owned by us
git-svn-id: trunk@25332 -
ncon.pas, tstringconstnode:
* buildderefimpl: don't build the deref if we don't need to
* derefimpl: do not try to resolve the deref if it wasn't stored at all
git-svn-id: trunk@25329 -
o does not use GOT
o enabled by default like for other Darwin platforms
- removed Darwin/ARM call stub support: no longer needed with current
Xcode versions (at least Xcode 4.2+), and we didn't support PIC
in them yet
git-svn-id: trunk@25325 -
rtl/nativent/sysutils.pp, FindNext:
* the UNICODE_STRING.Length and the FILE_DIRECTORY_INFORMATION.FileNameLength fields contain the amount of bytes, not the amount of characters, so move the correct amount of bytes
git-svn-id: branches/cpstrrtl@25319 -
rawbytestring
* DoDirSeparators() and GetDirs() marked as "rtlproc" so they can accept
non-rawbytestring arguments as their var-parameters
git-svn-id: branches/cpstrrtl@25306 -
o these routines are now generic wrappers in filutil.inc, and call
the platform-dependent internalfindfirst/next/close routines
o on unix, the fnmatch routine got proper support for UTF-8 matching
(e.g., it won't match a partial UTF-8 code point to a "?" wildcard)
o for NativeNT, a similar (untested) UTF-16 version has been added
+ test for the above
* rawbytestring/unicodestring versions of fileage
git-svn-id: branches/cpstrrtl@25302 -
other than DefaultFileSystemCodePage, so that it can work with strings
holding any encoding
+ test for fexpand(ansistring) with UTF-8 strings while DefaultSystemCodePage
is set to CP_ASCII
git-svn-id: branches/cpstrrtl@25300 -
number that means the same as the existing one but is nevertheless
different (e.g. CP_ACP and the actual value of DefaultSystemCodePage)
git-svn-id: branches/cpstrrtl@25299 -
This patch implements collation'loading at runtime. This reduce the final executable' size as the collation's data are now externaly stored. Note that It requires the external collation files to be shipped and the program to load the collations it needs using the "LoadCollation"/"RegisterCollation" procedure(s).
The external collation files are produced by "cldrparser" (while producing the static files). The root collation "ducet" 's external file is produced by "unihelper".
It is important to note that these files are endian specific :
* collation_*_be.bco for big endian systems
* collation_*_le.bco for little endian system.
The root collation should at be registered, be it staticaly by using the "unicodeducet" unit or dynamicaly by making a call sush as RegisterCollation(<collation dir>,'ducet').
It is possible, in the same application, to make use of static and dynamic.
git-svn-id: trunk@25295 -