mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-26 23:03:42 +02:00
The sources of the Free Pascal compiler, RTL, packages and utilities.
See https://www.freepascal.org/ for more info.
![]() "widechar in set" compiles, but results in a runtime conversion of the widechar into an ansistring and then getting the first character of that ansistring, which is horribly slow -- and Delphi-incompatible, but introduced a long time ago because of bug #7758) * replaced all "in" operations in sysutils fina.inc with CharInSet for the same reason * replaced all "string" declarations in finah.inc/fina.inc with "PathStr" and "pchar" with "PathPChar", and include them twice in sysutilh.inc/ sysutils.inc, once with PathStr=UnicodeString/PathPChar=PWideChar and once with PathStr=AnsiString/PathPChar=PAnsiChar (not rawbytestring because there are several routines with var-parameters and then the string type has to match exactly; the "rtlproc" modifier could circumvent this, but should be used sparingly, and additionally the routine's internals would then first also have to be reviewed to ensure that at no point they start mixing in strings with the defaultsystemcodepage (e.g. directory separators) without first adjusting their codepage) * call GetShortPathNameA or GetShortPathNameW in ExtractShortPathName on Windows depending on whether we are parsing the RawByteString/UnicodeString version of fina.inc + ExpandUNCFileName(unicode) version for Windows, let its ExpandUNCFileName(ansistring) call the unicode version (avoid data loss due to ansi conversion) and convert the result to DefaultRTLFileSystemCodePage (to have no more data loss than what's specified by the user) git-svn-id: branches/cpstrrtl@24999 - |
||
---|---|---|
compiler | ||
ide | ||
installer | ||
packages | ||
rtl | ||
tests | ||
utils | ||
.gitattributes | ||
.gitignore | ||
fpmake_add1.inc | ||
fpmake_proc1.inc | ||
fpmake.pp | ||
Makefile | ||
Makefile.fpc |