Commit Graph

1182 Commits

Author SHA1 Message Date
Jonas Maebe
6d5339cdb6 * CP819/IBM819 should be mapped to Windows code page 28591 (ISO8859-1)
(mantis #30639)

git-svn-id: trunk@35397 -
2017-02-04 22:44:36 +00:00
michael
d05175a17f * FileOpen should not open directories (Windows compatible) Bug ID #30766
git-svn-id: trunk@35063 -
2016-12-04 12:41:57 +00:00
yury
1ccf551d1c * android: Try to get the package files directory for any shared library. If it is valid use it as a home dir.
* android: Always set the syslog tag.

git-svn-id: trunk@34926 -
2016-11-20 10:53:23 +00:00
Jonas Maebe
1c04470b66 * converted for-loop to while-loop, because its loop count is used on exit
even if no break is triggered

git-svn-id: trunk@34776 -
2016-11-01 14:01:41 +00:00
Jonas Maebe
85f2903b8b * don't index past the end of the transitions array (mantis #30829)
git-svn-id: trunk@34775 -
2016-11-01 14:01:38 +00:00
sergei
67bd4775fd - Cleaned out thread manager semaphore support which was ever implemented only for Unix, and not used since r28965. This also reverts changes to System unit interface introduced in r27665.
git-svn-id: trunk@34542 -
2016-09-20 20:14:36 +00:00
florian
16ac523f50 * link always excplicitly against libc on linux when using the dl unit so
the correct startup code is used

git-svn-id: trunk@34370 -
2016-08-22 14:16:21 +00:00
florian
80fc6a459c * corrected r34366 (powerpc -> cpupowerpc)
git-svn-id: trunk@34368 -
2016-08-22 10:23:09 +00:00
florian
385f13cae9 * excplicitly link against libc in the unit dl, so the correct startup files are used, resolves issue #29594
git-svn-id: trunk@34366 -
2016-08-22 10:03:58 +00:00
yury
7756dab2bf * android: Create app files dir if needed.
git-svn-id: trunk@34356 -
2016-08-20 12:41:36 +00:00
yury
419c6ce61e * android:
+ API to write to the Android system log. 
  + API to redirect standard output and error to the Android system log. The redirection is performed automatically for shared libraries loaded by Java applications.

git-svn-id: trunk@34352 -
2016-08-19 20:21:52 +00:00
yury
3822515bd9 * android: Fixed GetAppConfigDir, GetAppConfigFile, GetUserDir, GetTempDir to return correct writable locations. For NDK libraries, the path to local storage of host Java app is used. For console apps the /data/local/tmp is used.
git-svn-id: trunk@34351 -
2016-08-19 18:07:57 +00:00
yury
064375ea72 * android: Use ICU to get timezone information if running on an Android version where libc does not implement timezone.
git-svn-id: trunk@34348 -
2016-08-19 14:57:02 +00:00
yury
2630f3c498 * android: Properly initialize time zone information.
git-svn-id: trunk@34332 -
2016-08-18 14:03:34 +00:00
Jonas Maebe
60d75fa97e * fixed (harmless) range error in 64 bit BSD-based RTLs
git-svn-id: trunk@33736 -
2016-05-21 14:48:32 +00:00
michael
960963e74b * SearchAttr needs more bits (faSymlink=$400), bug ID #29870
git-svn-id: trunk@33340 -
2016-03-27 00:01:14 +00:00
marco
66608fec02 * unicode executeprocess from work during Lazarus convention in IJsselstein
git-svn-id: trunk@33290 -
2016-03-19 17:59:42 +00:00
marco
581f1188a5 * deprecated dt routines in unixutils. Julian routines already were
duplicated to the implementations of dos & sysutils.
   localtoepoch and vv not yet.

git-svn-id: trunk@32378 -
2015-11-20 15:06:29 +00:00
michael
b651a8925e * Observe TZ and TZDir when determining timezone
git-svn-id: trunk@32369 -
2015-11-19 22:34:23 +00:00
michael
9447b975f2 * Fix bug #28987, fpfd_clr, and fpfdfillset using cardinal instead of correctly sized culong
git-svn-id: trunk@32329 -
2015-11-15 12:14:14 +00:00
michael
fde42ca8ef * Type helpers, compatible to Delphi XE 8
git-svn-id: trunk@32262 -
2015-11-07 09:40:54 +00:00
marco
266ebc351b * remove some deprecated functions. Most have alternatives since at least 2.4, and more often 2.2
I left getdomainname in "unix" for now, I don't know the exact status.

git-svn-id: trunk@32255 -
2015-11-06 14:55:38 +00:00
Jonas Maebe
f0c0b00467 * avoid threadvar memory leaks for external hooked threads if the tlskey
thread data is finalised by libpthread before the CleanupKey routine
    is called (based on patch by Derek, mantis #28806)

git-svn-id: trunk@32168 -
2015-10-27 21:52:05 +00:00
yury
7688639a10 * Return a real base address for ELF executables by GetModuleByAddr() instead of hard-coded 0.
* Obtain a real processaddress for ELF images by OpenExeFile() instead of hard-coded 0.
* It fixes line info information for Position Independent Executables (PIE).

git-svn-id: trunk@32052 -
2015-10-13 20:08:03 +00:00
yury
e1a0b1204a * Removed unused vars in RTL.
git-svn-id: trunk@31750 -
2015-09-17 16:48:53 +00:00
yury
6f15b5bf63 * Use /data/local/tmp/ as a fallback temp dir on Android.
git-svn-id: trunk@31720 -
2015-09-16 16:37:17 +00:00
Jonas Maebe
4e0d546323 * Use mbrlen instead of mblen under Haiku like on other Unix like platforms.
This fixes the twide3 unit test (patch by Olivier Coursière, mantis #28538)

git-svn-id: trunk@31427 -
2015-08-25 21:26:05 +00:00
Jonas Maebe
dc1f5f1a13 * Haiku use UTF-8 from day one, so it make sense to use the corresponding
code page as the default one (patch by Olivier Coursière, mantis #28520)

git-svn-id: trunk@31333 -
2015-08-16 13:22:57 +00:00
Jonas Maebe
7f61cf5519 * Modify CODESET value according to the corresponding declaration in
langinfo.h under Haiku (patch by Olivier Cousière, mantis #28523)

git-svn-id: trunk@31329 -
2015-08-16 13:22:45 +00:00
michael
4242934edb * Fixed ftruncate to take 64-bit argument
git-svn-id: trunk@30892 -
2015-05-21 07:32:30 +00:00
Jonas Maebe
9b987fde93 * fmShareDenyNone should also take a shared lock (+ test)
git-svn-id: trunk@30877 -
2015-05-17 11:08:08 +00:00
Jonas Maebe
31037d0664 * when creating a file with an exclusive sharing mode on Unix, first check
whether there isn't already a file and of so whether we can open it using
    this exclusive sharing mode (since the locking is advisory, simply
    overwriting any existing file and then locking it exclusively will
    always work) (mantis #27998)

git-svn-id: trunk@30861 -
2015-05-15 19:45:12 +00:00
michael
8196427ca6 * Patch from Bernd to fix SedDateTime (wrong tv_usec values, bug ID #27969)
git-svn-id: trunk@30728 -
2015-04-26 08:43:47 +00:00
michael
9bf410e6a0 * Fix bug ID #27617, heap messed up due to not resetting pointer
git-svn-id: trunk@30368 -
2015-03-29 15:54:49 +00:00
Jonas Maebe
1e227f78fe * factored out the check for whether we have to generate dotted function
names, and disabled them for ppc64 ELFv2
  * disabling those also disables the function descriptors, so use the
    _CALL_ELF compiler variable to check whether there is in fact a
    function descriptor

git-svn-id: trunk@30196 -
2015-03-14 18:35:25 +00:00
Jonas Maebe
6defd861b0 * fixed uninitialized function result in r30048 (mantis #27586)
git-svn-id: trunk@30078 -
2015-03-02 21:45:40 +00:00
Jonas Maebe
9da8a2304a * converted matching UTF-8 filenames in findfirst/findnext to use
system.Utf8CodePointLen()

git-svn-id: trunk@30048 -
2015-03-01 17:12:21 +00:00
Jonas Maebe
5a8959381c + Darwin/AArch64 support
git-svn-id: trunk@29934 -
2015-02-23 22:53:50 +00:00
svenbarth
2d454dc8fa Move DynLibs support to System unit using a manager approach like for Threads, WideStrings, etc.. This is needed so that we can support features like "delayed" and loading of dynamic packages.
Each port that allows the usage of dynamic libraries should call InitSystemDynLibs during initialization of the System unit.
The DynLibs unit has been adjusted to be a forwarder for the functions that now reside in the System unit (for backwards compatiblity just in case). Additionally the unit will register the DynLibsManager if it doesn't reside in the System unit anyway.
Currently only the Windows targets (Win32, Win64 and WinCE) implement the DynLibsManager inside the System unit. For other systems using the LoadLibrary, etc. functions will lead to a run error/exception.
If a port wants to implement its own DynLibsManager then it needs to define DISABLE_NO_DYNLIBS_MANAGER. TLibHandle, NilHandle and optionally TOrdinalEntry (it's set to SizeUInt otherwise) should be defined in sysdlh.inc which needs to be enabled using the define FPC_SYSTEM_HAS_SYSDLH (because there are targets which have FEATURE_DYNLIBS enabled, but don't support them... e.g. powerpc-wii -.-).
The DynLibsManager contains methods for loading a library based on a RawByteString and based on a UnicodeString. BOTH should be implemented, but internally one can forward to the other.
The loading by ordinal *can* be be implemented. If it is set to Nil then the implementation of GetProcAddress(lib,ordinal) will return Nil.

+ new functions SetDynLibsManager and GetDynLibsManager to set and retrieve the current DynLibsManager
* provide interface of DynLibs unit in unit System

git-svn-id: trunk@29613 -
2015-02-03 20:00:00 +00:00
Jonas Maebe
16183bebfe * libc's open() function is a varargs function
git-svn-id: trunk@29585 -
2015-01-30 19:31:25 +00:00
yury
b401a90eab * Re-enable UnixGetModuleByAddrHook for Android to fix back traces for libraries. Get dladdr() dynamically at run-time to support older versions of Android.
git-svn-id: trunk@29401 -
2015-01-05 00:45:07 +00:00
Jonas Maebe
b0c7415f3a * fixed CharLengthPChar() implementation and added comment (from Windows
sysutils unit) about what it does (this routine currently isn't used
    anywhere, so the bugs didn't really have any impact)

git-svn-id: trunk@29378 -
2015-01-03 22:58:10 +00:00
Jonas Maebe
63bd65942b * fall back to UTF-8 for darwin in unixcp.GetSystemCodePage if no LC_*/LANG
environment variables are set
  * if no LC_*/LANG environment variables are set, let cwstring fall back to
    unixcp.GetSystemCodePage
   o this is mainly to avoid problems on OS X, where under certain
     circumstances these variables are not set for GUI programs and
     as a result we set the system code page to ASCII

git-svn-id: trunk@29257 -
2014-12-11 19:11:11 +00:00
marco
2578514853 * first dragonfly patch (existing most). Mantis #27091
git-svn-id: trunk@29213 -
2014-12-07 20:27:02 +00:00
pierre
1d1215ede3 Include setsysnr.inc and call SetSyscallNumbers if FPC_HAS_SETSYSNR_INC is defined
git-svn-id: trunk@29135 -
2014-11-23 21:57:33 +00:00
pierre
7bbb30ccd4 * Reset filerec mode field to fmClosed if the system call to open the file failed
git-svn-id: trunk@29132 -
2014-11-23 21:49:29 +00:00
pierre
90537e94a0 Call Errno2noutres if system call to close the handle fails in do_close for win and unix
git-svn-id: trunk@29095 -
2014-11-20 22:00:35 +00:00
pierre
1fcc0490fe Also use PHTREAD_INHERIT_SCHED in pthread_attr_setinheritedsched for NetBSD system
git-svn-id: trunk@29055 -
2014-11-10 23:10:27 +00:00
pierre
42be0dd306 Use ptruint instead of longint cast for self address for WRITE_DEBUG
git-svn-id: trunk@29054 -
2014-11-10 23:09:06 +00:00
Jonas Maebe
77c1364713 * replaced use of semaphores in Unix version of TThread for suspend/resume
functionality with RTLEvent:
   o the thread manager semaphore functionality isn't used for anything else,
     and the main difference between mutex/condvar and semaphores is that the
     latter can be used for IPC (while the thread manager is always used
     within a single process) and that they are counting (but since a thread
     can only suspend itself nowadays, it cannot be suspended recursively)
   o OS X sandboxing does not support the use of semaphores (or rather: Apple
     does not allow sandboxing rules that enable the use of IPC semaphores in
     the appstore)

git-svn-id: trunk@28965 -
2014-11-02 15:00:24 +00:00
Jonas Maebe
35a313d98c * throw an error if RTLEventCreate() fails on Unix
git-svn-id: trunk@28964 -
2014-11-02 15:00:21 +00:00
Jonas Maebe
79a40547ca - removed no longer used tthread.FSuspendedExternal
git-svn-id: trunk@28963 -
2014-11-02 15:00:14 +00:00
marco
316a50ff23 * support for clock_gettime(), patch by Graeme.
git-svn-id: trunk@28599 -
2014-09-05 13:01:04 +00:00
Jonas Maebe
bee20f79f0 * save original widestring manager on entry and restore it on exit, so that
units finalized afterwards won't try to use the finalized cwstring
    manager (mantis #26252)

git-svn-id: trunk@27842 -
2014-06-01 18:30:49 +00:00
michael
17e34abc62 * Fix for bug ID #18551
git-svn-id: trunk@27773 -
2014-05-11 17:02:56 +00:00
sergei
d7c863185f * Added plain calls for semaphore-related functionality, this removes need to maintain a second copy of thread manager in unis/tthread.inc.
git-svn-id: trunk@27665 -
2014-04-26 13:58:35 +00:00
sergei
471ffb017c - Removed call to FlushThread, it is redundant since r17798. SysFlushStdio is called from DoneThreads, which is in turn called after exiting from ThreadFunc.
git-svn-id: trunk@27663 -
2014-04-26 13:46:10 +00:00
michael
f61e27ec8e * clock_gettime uses timespec, not timeval
git-svn-id: trunk@27446 -
2014-04-02 08:25:03 +00:00
michael
a92056d219 * Use clock_gettime when available
git-svn-id: trunk@27444 -
2014-04-02 07:06:32 +00:00
marco
a818559481 * clocale moved to rtl-extra.
git-svn-id: trunk@27376 -
2014-03-30 15:27:35 +00:00
marco
d6f5ca21b9 * moved units ipc for *BSD, darwin/iphonesim and linux. The others are
makefile cleanups.

git-svn-id: trunk@27373 -
2014-03-30 13:13:13 +00:00
marco
c6424b2e0b * moved unit terminfo to rtl-console
git-svn-id: trunk@27353 -
2014-03-29 21:00:50 +00:00
marco
959ea7f5bb * printer unit moved. Amiga unit also moved but it is not actively used.
git-svn-id: trunk@27351 -
2014-03-29 20:35:28 +00:00
marco
7f8a9bcf6e * serial to rtl-extra
git-svn-id: trunk@27350 -
2014-03-29 20:06:36 +00:00
michael
7ee72ef5a8 * Init threading when setting C thread manager
git-svn-id: trunk@27346 -
2014-03-29 19:31:12 +00:00
michael
2a048692a5 * Patch from Mark Morgan LLoyd, adding some functions (part 2)
git-svn-id: trunk@26855 -
2014-02-23 18:32:09 +00:00
michael
0ecee7cd3f * Patch from Mark Morgan LLoyd, adding some functions
git-svn-id: trunk@26854 -
2014-02-23 18:27:00 +00:00
michael
d91da3bd6b * Patch from Petr-K to take into account modifier - for short date format (bug id 25731)
git-svn-id: trunk@26814 -
2014-02-18 21:23:13 +00:00
marco
f09374a197 * winsock(and -2), sockets and gpm to rtl-extra.
git-svn-id: trunk@26426 -
2014-01-11 19:45:37 +00:00
marco
dea2c743d5 * Initial active version of
rtl-extra : objects matrix ucomplex
   rtl-objpas: convutil(s) dateutil(s) stdconvs variants varutils
   

git-svn-id: trunk@26398 -
2014-01-05 19:20:15 +00:00
Jonas Maebe
729ac297e4 * declare the code page names as ansistring instead of rawbytestring and
force the checked names to CP_ACP, so perform string conversions on
    the names after the compiler bug has been fixed that sets the code
    page of rawbytestring typed constants to CP_NONE

git-svn-id: trunk@26396 -
2014-01-05 18:26:04 +00:00
marco
a001e12d04 * rtl-console initial version.
git-svn-id: trunk@26372 -
2014-01-03 22:19:02 +00:00
marco
0bb6469b80 * remove accidentally inserted BOM, as reported by M. Ring.
git-svn-id: trunk@26358 -
2014-01-02 14:34:28 +00:00
marco
ebe262762a * Clean out of $i textrec and filerec includes that are redundant now that cpstrrtl exposes
those records via system. 

git-svn-id: trunk@26356 -
2014-01-02 13:26:09 +00:00
marco
996e802606 * fix memleak pthread_attr, Mantis #25416 by Henry Vermaak.
git-svn-id: trunk@26220 -
2013-12-11 21:47:02 +00:00
Jonas Maebe
679c6bd27e * fixed formatting
git-svn-id: trunk@26149 -
2013-11-27 20:27:20 +00:00
Jonas Maebe
cddc31a1a8 * also allow 'cpXXXX' in addition to 'CPXXXX' code page names (mantis #15169)
git-svn-id: trunk@26148 -
2013-11-27 20:27:16 +00:00
Jonas Maebe
cada770f9e * changed return value in case of failure in ThreadManager.SemaphoreInit
from nil to pointer(-1), because nil/0 is a valid return value for
    sem_open() on some platforms

git-svn-id: trunk@26079 -
2013-11-13 16:51:11 +00:00
svenbarth
fbceb574eb Fix for Mantis #25041 . Correctly set CurrentThreadVar for those tthread.inc incarnations that don't use the default ThreadProc in classes.inc (this should be changed in the future though...). In addition to Unix systems as described by the bug report this also involved BeOS and Netware LibC.
+ added test

git-svn-id: trunk@25511 -
2013-09-17 18:02:12 +00:00
nickysn
129fddf800 * fixed compilation of unit crt on linux
git-svn-id: trunk@25507 -
2013-09-17 11:25:47 +00:00
nickysn
96c7a9325a * CrtOpen, CrtClose, CrtRead, CrtWrite and CrtReturn changed to procedures, instead of functions
git-svn-id: trunk@25506 -
2013-09-17 11:17:29 +00:00
Jonas Maebe
f9f041d470 * SystemOldNAme -> SystemOldName
git-svn-id: branches/cpstrrtl@25304 -
2013-08-19 22:04:33 +00:00
Jonas Maebe
af3f12f60c * rawbytestring/unicodestring versions of findfirst/findnext/findclose
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 -
2013-08-19 22:04:25 +00:00
Jonas Maebe
29132f45b7 * synchronised with trunk up to r25167 (fixes glib compilation via r25164,
and occasional crashes in executeprocess on libc platforms via r25167)

git-svn-id: branches/cpstrrtl@25169 -
2013-07-24 14:24:49 +00:00
Jonas Maebe
832b902df6 * ordered the declarations the same was as in bunxh.inc, so it's easier
to see what's missing
  + added missing declarations for fpexecv (causing an unnecessary
    slowdown in executeprocess due to it calling the ansistring overload),
    fplink, fpwait and fpsetrlimit
  * changed sigset parameters of FpSigSuspend and FpSigTimedWait from const
    into constref, since they must be passed by reference

git-svn-id: trunk@25167 -
2013-07-24 13:49:35 +00:00
Jonas Maebe
3fdb3092af + defaultfilesystemcodepage support for dynlibs
+ unicodestring overloads for (safe)loadlibrary()

git-svn-id: branches/cpstrrtl@25162 -
2013-07-22 21:45:34 +00:00
Jonas Maebe
df6a2dce00 + unicodestring support for assign/erase/rename
+ 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 -
2013-07-19 16:30:51 +00:00
Jonas Maebe
953e088c14 + unicodestring support for POpen(), and DefaultFileSystemCodePage support
for POpen(RawByteString)

git-svn-id: branches/cpstrrtl@25134 -
2013-07-19 16:29:13 +00:00
Jonas Maebe
8538f48fda * made the ansistring parameters of the fp*() overloads constant, changed
them to rawbytestring and added DefaultFileSystemCodePage conversions

git-svn-id: branches/cpstrrtl@25133 -
2013-07-19 16:28:49 +00:00
Jonas Maebe
155aafc255 * moved SYSUTILS_HAS_ANSISTR/UNICODESTR_FILEUTIL_IMPL define to interface
so declarations can also depend on it and similar defines (not yet the
    case)
  + added SYSUTILS_HAS_ANSISTR_ENVVAR_IMPL/SYSUTILS_HAS_UNICODESTR_ENVVAR_IMPL
    to indicate whether the platform-dependent part of the unit provides
    an ansistring/unicodestring interface to get environment variables
  + Windows version of getenvironmentvariable(unicodestring)
  + generic ansistring/unicodestring versions of GetEnvironmentVariable()
    in case the platform doesn't provide them
  * result of GetEnvironmentString() is ansistring/unicodestring depending
    on the state of the FPC_RTL_UNICODE define

git-svn-id: branches/cpstrrtl@25116 -
2013-07-16 14:16:34 +00:00
Jonas Maebe
eeb98a0c0f - removed platform-specific implementations of GetCurrentDir, SetCurrentDir,
CreateDir and RemoveDir, and implemented a generic one (based on the OS/2
    version) in the shared sysutils code (so that the filesystem code page
    support for the system unit routines can be reused)
  * include both ansistring and unicodestring versions of the above routines,
    and of ForceDirectories. Exception: GetCurrentDir, which cannot be
    overloaded based on function result and whose return type currently
    dependends on the FPC_UNICODE_RTL define

git-svn-id: branches/cpstrrtl@25113 -
2013-07-16 14:15:55 +00:00
Jonas Maebe
06d9b35ed3 * don't truncate the result of GetEnvironmentVariable to 255 characters
git-svn-id: branches/cpstrrtl@25105 -
2013-07-15 09:21:51 +00:00
Jonas Maebe
26b2149ced * converted the following sysutils routines to unicodestring and
rawbytestring: FileExists, DirectoryExists, FileSetDate, FileGetAttr,
    FileSetAttr, DeleteFile, RenameFile, FileSearch, ExeSearch,
    FileIsReadOnly

git-svn-id: branches/cpstrrtl@25078 -
2013-07-09 19:01:45 +00:00
Jonas Maebe
d66d15aad3 + added mkdir/chdir/rmdir(rawbytestring) and (unicodestring) to the system unit
* 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 -
2013-07-04 22:28:37 +00:00
sergei
40045e6269 - Removed unused variables
git-svn-id: trunk@25005 -
2013-06-28 11:53:10 +00:00
Jonas Maebe
62ee16278b * changed getdir(ansistring):ansistring to
getdir(rawbytestring):rawbytestring so it can accept strings in any
    encoding and cleanly return results in DefaultRTLFileSystemCodePage
  + getdir(unicodestring):unicodestring
  * renamed the getdir implementation of all platforms except for embedded-
    without-ansistring-support to do_getdir(), and depending on the
    FPCRTL_FILESYSTEM_SINGLE_BYTE_API/FPCRTL_FILESYSTEM_TWO_BYTE_API define
    changed its shortstring parameter to ansistring or unicodestring. The
    do_getdir(rawbytestring) routine should just set the code page of the
    return value to DefaultFileSystemCodePage without conversion (not
    DefaultRTLFileSystemCodePage with conversion, that conversion is performed
    in getdir if necessary; this avoids double conversions in case
    getdir(unicodestring) is called)
  + generic getdir(shortstring) for platforms supporting either ansistrings or widestrings
  o platform maintainers:
   o OS/2: adjust code to supports paths > 255 characters if those are supported
   o Wii: adjust used callback to use rawbytestring to support paths > 255 characters and
     avoid shortstring->rawbytestring conversion overhead
   o Windows: GetCurrentDirectoryW is now always used (to prevent data loss)

git-svn-id: branches/cpstrrtl@24993 -
2013-06-27 21:37:47 +00:00
Jonas Maebe
ecd3cba02b * synchronised with trunk up to r24912
o resolved conflict in updated morphos sysutils unit
   o moved code that had been added to the now deleted  sysunix.inc to the
     unix-specific block of the fpwidestring unit's init code

git-svn-id: branches/cpstrrtl@24913 -
2013-06-17 20:50:02 +00:00
marco
07e23b8401 * mousebutton 4 and 5 support (gpm only?) Mantis #13469
git-svn-id: trunk@24164 -
2013-04-06 18:58:05 +00:00
Jonas Maebe
f00d9f6f84 * correct dlopen flag values for Darwin (patch by lks, mantis #23979)
git-svn-id: trunk@23771 -
2013-03-10 10:22:43 +00:00
marco
9f53738142 * fill in purpose of the unit in comment, updated copyright
git-svn-id: trunk@23725 -
2013-03-08 09:18:26 +00:00
pierre
f4b6625145 + Use __setlocale_mb_len_max_32 for netbsd as suggested by linker warning
git-svn-id: trunk@23696 -
2013-03-05 11:40:24 +00:00
yury
5bf237afc1 * Turn off assigning UnixGetModuleByAddrHook for Android, since dladdr() function is not available on old (1.x) Android versions.
git-svn-id: trunk@23695 -
2013-03-05 00:00:02 +00:00
yury
5e369ae7fc * Use UTF-8 as fallback code page on linux and ASCII on other unix systems.
git-svn-id: trunk@23680 -
2013-03-02 09:51:05 +00:00
yury
c4ba95b227 * Use CP_ASCII as fallback in GetSystemCodepage to be compatible with cwstring.
git-svn-id: trunk@23676 -
2013-03-01 08:44:05 +00:00
yury
b0d79b7854 * Use UTF-8 as fallback in GetSystemCodepage.
git-svn-id: trunk@23673 -
2013-02-28 19:48:56 +00:00
yury
2b2a68446d * Added new unit unixcp. It contains stuff from winiconv.inc - a table to map Windows code page identifiers to locale names on unix. Also GetSystemCodePage function in this unit can be used to detect which code page is used currently.
* Build unixcp for all unix-like systems.
* Use the unixcp unit in cwstring instead of winiconv.inc.
- Deleted winiconv.inc
- Reverted r22410,r22411,r22428. The compiler will use the unixcp unit to get a default code page for ansistrings.

git-svn-id: trunk@23670 -
2013-02-28 18:21:28 +00:00
yury
d26f0552a0 * Sync with trunk r23404.
* Regenerated makefiles.

git-svn-id: branches/targetandroid@23405 -
2013-01-16 13:21:51 +00:00
yury
7322164c0a * I've found that libc on Android does not implement widechar case functions such as towupper(). Such functions are just wrappers over regular char functions. Therefore the whole cwstring unit is useless for Android. For now I've added stub cwstring unit for Android and reverted all Android specific changes in unix/cwstring.pp. Later, Unicode manager for Androud should be implemented using libicuuc, which is default Android lib.
git-svn-id: branches/targetandroid@23301 -
2013-01-02 18:47:09 +00:00
yury
b480479b8c * Android does not have libiconv, so don't use it in cwstring unit. For now support only UTF-8 code page in ansistrings. Later it is possible to use libicuuc for code page conversions on Android.
git-svn-id: branches/targetandroid@23299 -
2013-01-02 17:38:08 +00:00
svenbarth
764f36a179 Extend TThread with (class) methods and (class) properties from Delphi 2007 and newer.
Especially for the introduction of the Queue method the internal Synchronize handling was modified. Instead of handling only one event there is now a queue of events which is walked completely when CheckSynchronize is called. Each entry in the queue can carry a PRTLEvent which will be signaled when the contained method has been executed and thus Synchronize methods can still be blocking.
Exceptions inside the queued methods are either handed back to the calling method for Synchronize events or raised directly (after leaving the queue in a valid state) to the caller of CheckSynchronize.

The way platform specific adjustments can be made to TThread was changed. Instead of implementing the Constructor and Destructor directly one now implements the methods SysCreate and SysDestroy which are called from the Constructor and Destructor respectively. All RTLs were adjusted for this and should be controlled by the platform maintainers for correct compilation (Unix works).

The new method NameThreadForDebugging has two overloaded variants: one with the thread name as AnsiString and one with the thread name as UnicodeString.
By default the AnsiString variant calls the UnicodeString variant and the latter needs to be implemented. This can be changed by defining THREADNAME_IS_ANSISTRING for a platform. Then the UnicodeString variant calls the AnsiString one and the AnsiString one needs to be implemented.

Also added was a global property CPUCount for the System unit. This property returns the number of virtual cores of the system.

New methods and functions that should be implemented per platform are:
System.GetCPUCount (default returns 1)
Classes.TThread.GetSystemTimes (default zeros the struct)
Classes.TThread.NameThreadForDebugging (default does nothing)

More detailed information about the added methods will be available in the feature announcement mail.

git-svn-id: trunk@23227 -
2012-12-27 16:16:17 +00:00
svenbarth
e914ec7f00 Add platform independant support for "GetTickCount" and "GetTickCount64" to unit "SysUtils". "GetTickCount" is declared as deprecated from the beginning and thus "GetTickCount64" should be used instead.
The default implementation of "GetTickCount" just uses the lower 32-Bit from the result of "GetTickCount64". 
The default implementation of "GetTickCount64" is based upon "Now" for systems that support a floating point unit (and thus "Now"). 
Other systems can define a "SysTimerTick" function which is used instead if "HAS_SYSTIMERTICK" is defined.

The Windows implementation of "GetTickCount" uses Windows' "GetTickCount" function. 
The implemenation of "GetTickCount64" checks whether the system is a Windows Vista or newer and then uses Windows' "GetTickCount64" function. Otherwise Windows' "GetTickCount" is used also.

The Unix implementation of "GetTickCount" is the default one. 
The "GetTickCount64" implementation uses "fpgettimeofday".

git-svn-id: trunk@23215 -
2012-12-23 16:12:57 +00:00
sergei
1415569ecb - Removed UnixToWinAge, since revision 444 it does not change its argument, but wastes a lot of CPU cycles converting it from local time and back.
git-svn-id: trunk@23145 -
2012-12-15 08:38:41 +00:00
Jonas Maebe
d3d0df6e4d * terminate with an error when initializing a critical section and recursive
mutexes are not available, since one of the expected properties of
    (Delphi/Windows-compatible) critical sections is that they ar
    re-entrant (mantis #23334)

git-svn-id: trunk@23011 -
2012-11-18 10:23:44 +00:00
Jonas Maebe
676db6d377 * removed stray try/finally statement (mantis #23333)
git-svn-id: trunk@23010 -
2012-11-18 10:23:38 +00:00
Jonas Maebe
8bf71af3b1 * fixed compatilation on Haiku Alpha4 (patch by Olivier Coursière,
mantis #23300)

git-svn-id: trunk@22969 -
2012-11-10 20:26:46 +00:00
Jonas Maebe
a3c936fe5f + rawbytestring/unicodestring overloads for FileCreate and FileOpen.
The WinCE implementation converts the rawbytestring arguments to
    unicodestring and calls unicode OS APIs, while the others convert
    unicodestring arguments to DefaultFileSystemCodePage and call
    single byte OS APIs
  + test for the above

git-svn-id: branches/cpstrrtl@22467 -
2012-09-27 07:54:25 +00:00
Jonas Maebe
598d2feeb6 + rtldefs.inc file for every target that contains defines shared by multiple
RTL units. Comes with a FPCRTL_FILESYSTEM_UTF8 define that can be
    activated for targets whose single byte filesystem interface enforces
    UTF-8; included in inc/systemh.inc and unix/cwstring.pp until now
  + DefaultFileSystemCodePage variable that holds the code page used for
    communicating with the OS single byte file system APIs, and for the
    strings returned by those same APIs. Initialized with
   o the result of GetACP in the system unit of Windows platforms, except for
     WinCE which uses UTF-8 since its file system OS API calls already use
     the UTF-16 versions
   o CP_UTF8 on Unix platforms with FPCRTL_FILESYSTEM_UTF8 defined, and with
     DefaultSystemCodePage on other Unix platforms
   o DefaultSystemCodePage on Java/Android JVM targets
  + DefaultRTLFileSystemCodePage variable that holds the code page used to
    encode strings returned by RTL routines that return filenames obtained
    from OS API calls. By default the same as DefaultFileSystemCodePage on
    all platforms. Separate from DefaultFileSystemCodePage for clarity on
    platforms that may use either utf-16 or single byte OS API calls to
    send/receive file names (such as most Windows platforms)
  + new scpFileSystemSingleByte enum that can be passed to
    GetStandardCodePage() to get the default code page for OS single byte file
    system APIs, with implementations for Unix and Windows
  + SetMultiByteFileSystemCodePage() procedure to override the value of
    DefaultFileSystemCodePage

  In principle, in the long run unchanged programs only using generic
  ansistrings and unicodestrings should (mostly) behave the same as in
  FPC 2.6.0 as far as RTL-level file system APIs are concerned if
  they set DefaultFileSystemCodePage and DefaultRTLFileSystemCodePage
  to DefaultSystemCodePage at the start of their execution

git-svn-id: branches/cpstrrtl@22466 -
2012-09-27 07:54:06 +00:00
paul
a2548fc9f9 rtl: pass exact size to delete instead of full string length
git-svn-id: trunk@22418 -
2012-09-18 00:31:21 +00:00
paul
d7d8c10aaf bsd: set DefaultSystemCodePage without cwstring.pas
git-svn-id: trunk@22410 -
2012-09-17 02:33:06 +00:00
marco
1a895a875b * move fpgetenv(pchar) to unit system for syscall based *nix rtls.
It was already available for libc based *nix rtls

git-svn-id: trunk@22365 -
2012-09-10 09:21:56 +00:00
marco
e245802fa8 * deprecated old shortstring getenv func.
git-svn-id: trunk@22364 -
2012-09-10 09:01:24 +00:00
Jonas Maebe
d4eb2d7336 * fixed the conversion of 'UTF-8' to the corresponding code page number
(there's a dummy entry with code page 0 for UTF-8 in the table for
     when 0 is searched, but when going from string to number that
     entry has to be skipped so the real UTF-8 entry is used)

git-svn-id: trunk@22245 -
2012-08-26 08:58:42 +00:00
pierre
4ecd67f6e2 * Use gsed if present and temp directory to avoid system recompilation
git-svn-id: trunk@22169 -
2012-08-22 09:43:34 +00:00
marco
b822371d41 * add platform modifiers to all locally defined functions in unix' dos unit.
git-svn-id: trunk@22069 -
2012-08-13 10:14:07 +00:00
tom_at_work
810adb2f65 Merge with trunk r22040. Regenerated makefiles.
git-svn-id: branches/targetandroid@22046 -
2012-08-09 08:12:34 +00:00
Jonas Maebe
6cc78635d7 * send full x/y ansi position information in case of an X-coordinate
overflow (don't know what the y-coordinate is at that point, because the
    window may be  wider than the artificial screenwidth) (mantis #20880)

git-svn-id: trunk@21925 -
2012-07-17 18:03:23 +00:00
pierre
68c8383254 Add support for binary/octal/hexadecimal constants
git-svn-id: trunk@21901 -
2012-07-12 13:09:32 +00:00
michael
8eeb22720b * Added GetLoadErrorStr function by Mark Morgan Loyd (Bug ID 22321)
git-svn-id: trunk@21880 -
2012-07-11 15:31:09 +00:00
michael
64ab9c06d3 * Added GetLocalTimeOffset function
git-svn-id: trunk@21865 -
2012-07-11 09:56:34 +00:00
pierre
9bba5c956a Add support for indirect values
git-svn-id: trunk@21830 -
2012-07-09 13:46:11 +00:00
pierre
2d6093645f Add a C compilation phase to check Error value
git-svn-id: trunk@21826 -
2012-07-09 13:14:37 +00:00
pierre
b93b08427f Set needgsed to 0 for non-NetBSD systems
git-svn-id: trunk@21823 -
2012-07-09 09:56:45 +00:00
tom_at_work
4150f0a2fb Rebase with r21814
git-svn-id: branches/targetandroid@21815 -
2012-07-07 23:09:20 +00:00
sergei
185e34915c - Removed level 2 comments and control characters in comments.
git-svn-id: trunk@21726 -
2012-06-27 20:04:39 +00:00
pierre
cd0522189c Try to improve system error check script
git-svn-id: trunk@21633 -
2012-06-17 14:47:26 +00:00
marco
0757517dde * more removal of deprecated functions (deprecated before 2.4.0)
old copies of routines in dos, and some shortstring shorthands for fsplit.

git-svn-id: trunk@21359 -
2012-05-22 08:04:24 +00:00
marco
043ff2c81c * more deprecations. Copies of stringtypes usually defined in unit dos, but
that are no longer needed.

git-svn-id: trunk@21358 -
2012-05-22 08:00:36 +00:00
marco
725a280059 * sleeper vfork code copied from deleted parts so it is not lost, made
shortstring version call the ansistring one.

git-svn-id: trunk@21336 -
2012-05-19 14:03:20 +00:00
marco
455d675c5a * removed an empty overloaded version of statfs that could be called recursively
and its use in sysutils. Fixes failure of tw1041 and tw9985 in last runs.

git-svn-id: trunk@21334 -
2012-05-19 12:09:39 +00:00
marco
1a73c652ca * improve deprecation message.
git-svn-id: trunk@21333 -
2012-05-19 11:58:59 +00:00
marco
0ddd03eef2 * removed some deprecated functions (deprecated since 2.2.0/2007 times)
* added some new minor deprecations (mostly unused constants that are 
   potentially not crossplatform, and an shortstring version of a function)

git-svn-id: trunk@21321 -
2012-05-18 12:11:06 +00:00
marco
6c0ba4af0c * getfs deprecated, replaced by a totally crossplatform sysutils.getfilehandle, probably already since 2.4.0
git-svn-id: trunk@21317 -
2012-05-17 16:58:09 +00:00
tom_at_work
77a85b7448 * basic android/x86 support
git-svn-id: branches/targetandroid@21296 -
2012-05-14 21:14:12 +00:00
tom_at_work
bf2a01cfeb fix pthreads use with Android: it does not provide some functions. This patch is partially based on the bug report 0021525. Further, fix use of sem_timedwait in cthreads.pp since Android supports it.
git-svn-id: branches/targetandroid@21066 -
2012-04-26 19:05:06 +00:00
tom_at_work
a7b48be598 bugfixes:
- do not compile ipc unit for android, not supported
- fix geterrnolocation external name
- implement dummy getdomainname; does not exist in android
- remove wrong 'if defined(android)' clauses

git-svn-id: branches/targetandroid@21065 -
2012-04-26 13:15:52 +00:00
tom_at_work
acbc94e0fd - initial support for the android/arm target in the compiler; resulting .so's can be used for Android/ARM app development.
- basic rtl support using system calls
- fp(c)make/fppkg/makefile support

todo:
- revisit systems/t_android.pas: mostly duplicate with t_linux.pas, containing
lots of unnecessary code
- revisit rtl changes
- android ndk header translation import
- better app build/packaging support
- android/x86 support

git-svn-id: branches/targetandroid@21061 -
2012-04-26 09:36:42 +00:00
pierre
cea6ca2df9 Fix FpSigProcMask overload for OpenBSD: Warning this probably breaks compilation of unix's RTL by obsolete 2.4.4 release compiler, 2.6.0 required
git-svn-id: trunk@21005 -
2012-04-23 10:12:43 +00:00
pierre
8c047abb43 + New script to check constant entries against system headers
git-svn-id: trunk@20934 -
2012-04-19 14:56:32 +00:00
pierre
3f24548e58 + New script to check errnostr.inc entries
git-svn-id: trunk@20933 -
2012-04-19 14:55:57 +00:00
pierre
0309511353 Add clean option, do not create executable (unneeded)
git-svn-id: trunk@20932 -
2012-04-19 14:52:47 +00:00
pierre
9106753b8a Improve check_sys.sh script
git-svn-id: trunk@20926 -
2012-04-19 07:18:13 +00:00
pierre
1592f98a69 Avoid inappropriate file name expansion
git-svn-id: trunk@20921 -
2012-04-18 15:43:47 +00:00
pierre
6568de7e0f Avoid \t which is not supported properly on NetBSD and accept negative values
git-svn-id: trunk@20918 -
2012-04-18 10:50:16 +00:00
pierre
c4288ea2c0 * Fix missing echo command
git-svn-id: trunk@20916 -
2012-04-18 10:35:47 +00:00
pierre
eb90a60afe New test for sysnr.inc system error numbers
git-svn-id: trunk@20914 -
2012-04-18 10:31:29 +00:00
pierre
90f12d0e4d Improve check for Linux
git-svn-id: trunk@20913 -
2012-04-18 10:30:19 +00:00
pierre
b3f3e0d2a1 Move check_sys.sh to unix/scripts directory
git-svn-id: trunk@20911 -
2012-04-18 10:24:34 +00:00
pierre
11fe796ac3 Add script directory
git-svn-id: trunk@20910 -
2012-04-18 10:10:03 +00:00
pierre
7d82ed4459 + Add ACCEPT_646 for systems that return '646' for nl_langinfo(CODESET) call
git-svn-id: trunk@20905 -
2012-04-17 15:28:28 +00:00
Tomas Hajny
d442d14e0c + FileNameCasePreserving added - see #18066 in Mantis
git-svn-id: trunk@20894 -
2012-04-15 20:56:13 +00:00
Jonas Maebe
f0b7ce8afe * fix building for Haiku/BeOS after r20839 (patch by Olivier Coursière)
git-svn-id: trunk@20878 -
2012-04-14 20:36:02 +00:00
Jonas Maebe
1e9b92ee50 + AIX support for cwstring
o AIX-specific codepage names
   o AIX/ppc32 uses a 16 bit wchar_t
   o special support for handling cp866 on AIX: AIX only supports converting
     cp866 from/to ISO8859-5 -> always use that code page as an intermediate
     one on AIX (it's lossy, but better than completely failing)
  * in case the default system code page cannot be detected, fall back to
    UTF-8

git-svn-id: trunk@20839 -
2012-04-11 18:06:22 +00:00
Jonas Maebe
2c1f98320f * disable implicit exception frames, no exceptions are raised by this unit
git-svn-id: trunk@20838 -
2012-04-11 18:06:18 +00:00
Jonas Maebe
d545a72f1a + lnfogdb unit that can use gdb to symbolicate backtraces on unix targets
(used for stabx/aix)

git-svn-id: trunk@20833 -
2012-04-11 18:05:56 +00:00
Jonas Maebe
9a1cd0ec4c * fixed checking the address of installed signal handlers on aix and
linux/ppc64 (have to look past the function descriptors)

git-svn-id: trunk@20820 -
2012-04-11 18:04:50 +00:00
Jonas Maebe
7c0469e1fd * link libbsd for AIX, because several UNIX routines are part of its BSD
Compatibility library

git-svn-id: trunk@20788 -
2012-04-11 18:00:08 +00:00
Jonas Maebe
8d8fc0fdee + RTL for AIX
git-svn-id: trunk@20786 -
2012-04-11 17:59:49 +00:00
pierre
ae83b5ce92 Return -1 for fpIOPL and set errno to ESysENoSys for non-linux systems
git-svn-id: trunk@20773 -
2012-04-09 21:55:18 +00:00
pierre
55665c6713 Set local variable s to empty string at entry of transform_cp437_to_UTF8 function
git-svn-id: trunk@20772 -
2012-04-09 21:54:19 +00:00
Jonas Maebe
d3004d2bf6 * use same defaults for iPhoneSimulator as for iOS (UTF-8 etc, newer
iPhoneSimulator platforms no longer inherit the Mac OS X settings)

git-svn-id: trunk@20653 -
2012-03-29 17:13:29 +00:00
pierre
ff5d25174a * Fix wide string shared library loading by adding 'lib' prefix if needed
git-svn-id: trunk@20568 -
2012-03-22 09:02:07 +00:00
Jonas Maebe
cc736fe115 * use same code path for iphonesim as for darwin (should fix mantis #21190)
git-svn-id: trunk@20374 -
2012-02-17 20:28:43 +00:00
pierre
ea9f152d64 * Remove local redefinition of types and clarify TIPC_Perm record
git-svn-id: trunk@20354 -
2012-02-15 13:18:30 +00:00
pierre
24d100d164 NetBSD CODESET and LC_ALL added
git-svn-id: trunk@20337 -
2012-02-13 16:43:45 +00:00
pierre
b4f024362b NetBSD code added
git-svn-id: trunk@20336 -
2012-02-13 16:43:16 +00:00
sergei
e94508d5eb * Improved utf16 to ucs4 conversion routines: removed function call on every character, allocate memory once and made as much as possible code shared between WideString and UnicodeString versions.
git-svn-id: trunk@20269 -
2012-02-06 17:55:06 +00:00
sergei
c862aec17c * cwstring.pp, Wide2AnsiMove: moved SetCodePage to the end, so it comes after the last SetLength. Necessary after r20209, because SetLength has been modified to always set the code page of its argument. Here it sets code page of 'dest' to CP_NONE, because dest is RawByteString.
(Before r20209, SetLength was preserving code page when the string was resized in place and had refcount=1)

git-svn-id: trunk@20214 -
2012-02-01 21:08:13 +00:00
marco
a0b200db76 * Add dlvsym under ifdef ELF, defined ELF for the OSes I could check
(FreeBSD, OpenBSD, Linux) Mantis #18892

git-svn-id: trunk@20134 -
2012-01-21 11:56:40 +00:00
Jonas Maebe
eb680bcc5b * don't try to set the iconv transliterate property in case the iconv
encoder was not successfully initialised

git-svn-id: trunk@19965 -
2012-01-04 16:08:15 +00:00
Jonas Maebe
f287cf3f61 * default to UTF-8 as system code page in case nl_langinfo(CODESET) returns
an empty string

git-svn-id: trunk@19964 -
2012-01-04 16:06:27 +00:00
michael
2625b1dfa4 * Improved efficiency of Now/Date/Time
git-svn-id: trunk@19572 -
2011-11-02 14:33:33 +00:00
michael
86c0b324fd * Added ReReadTimeZone
git-svn-id: trunk@19569 -
2011-11-01 18:05:38 +00:00
paul
b7185a554c rtl:
- replace ifndef ver2_4 with ifdef FPC_HAS_CPSTRING for places with TextRec.CodePage access
  - convert codepages for Read and Write text file operations

git-svn-id: trunk@19545 -
2011-10-25 08:40:49 +00:00
paul
e08c68f308 rtl: set codepages for TextRec field when Text file is opened + update this field for standard IO files when cwstring is used
git-svn-id: trunk@19543 -
2011-10-25 06:27:54 +00:00
paul
270fb09e87 rtl: add WideStringManager.GetStandardCodePageProc method to retrieve system ansi and console code pages
git-svn-id: trunk@19539 -
2011-10-25 01:39:11 +00:00
paul
3e29f0b179 rtl: make cwstring.pp dependent of dynlibs, load iconvctl dynamically
git-svn-id: trunk@19538 -
2011-10-25 01:25:23 +00:00
Jonas Maebe
9ee27c1606 * support for iOS-specific location of "localtime" time zone file
(problem reported at http://blogs.embarcadero.com/ao/2011/10/20/39180 )

git-svn-id: trunk@19537 -
2011-10-24 19:24:57 +00:00
Jonas Maebe
01b980a462 * added "inc" extension to {$i winiconv}
git-svn-id: trunk@19529 -
2011-10-22 08:59:07 +00:00
Jonas Maebe
2b63a7d66f * fixed compilation on darwin/arm after r19522
* replaced defined(arm) with defined(cpuarm) checks (cleaner)

git-svn-id: trunk@19528 -
2011-10-22 08:40:37 +00:00
paul
5d7d143300 rtl: transliterate characters if possible intead of replacing them with "?" chars while converting between codepages
git-svn-id: trunk@19522 -
2011-10-21 03:23:23 +00:00
pierre
ad40c306cd * Use recent libc __errno function for OpenBSD
git-svn-id: trunk@19447 -
2011-10-10 21:33:58 +00:00
pierre
dbd3df9ddf + Added OpenBSD CODESET and LC_ALL values
git-svn-id: trunk@19369 -
2011-10-04 22:20:41 +00:00
pierre
7f69e6426d * Try to update i386/openbsd port
git-svn-id: trunk@19350 -
2011-10-03 23:22:28 +00:00
paul
6384fa2a19 rtl: revert r19330. We probably need to create a separate encoding<->codepage table.
git-svn-id: trunk@19332 -
2011-10-03 10:28:14 +00:00
paul
a0e7196ae9 rtl: move winiconv.inc into general inc directory and rename it to wincodepages.inc, also rename win2iconv, iconv2win to CodePageToCodePageName, CodePageNameToCodePage.
This change is required since CodePage to CodePage name conversions are required in other parts of RTL. Moreover those codepage identifiers are windows codepage identifiers and thus must be compatible with codepage identifiers used by delphi.

git-svn-id: trunk@19330 -
2011-10-03 03:35:45 +00:00
Jonas Maebe
591230104b * prevent the internal windows code page number -> iconv name and vice versa
conversion routines from resulting in any code page conversions themselves

git-svn-id: trunk@19320 -
2011-10-01 23:26:12 +00:00
Jonas Maebe
258869c8f1 * and one more fix to prevent endless loops
git-svn-id: trunk@19196 -
2011-09-23 19:16:48 +00:00
Jonas Maebe
3469942f34 * fixed potential endless loop if the code page passed to win2iconv()
is not found

git-svn-id: trunk@19195 -
2011-09-23 18:34:31 +00:00
Jonas Maebe
7dd5811828 + support for transcoding the new ansistring type on unix platforms
* initialize DefaultSystemCodePage on unix platforms

git-svn-id: trunk@19194 -
2011-09-23 17:32:18 +00:00
marco
07fabab526 * fpgetsid, Mantis #20329
git-svn-id: trunk@19178 -
2011-09-22 13:21:38 +00:00