Commit Graph

459 Commits

Author SHA1 Message Date
nickysn
a176c2d4f5 + add overloaded versions of HexStr(pointer) for i8086 near and far pointers
- rm ifdefs for i8086 far code memory model when doing stack traces. The
  compiler will now choose the correct overload of HexStr according to the
  CodePointer type.

git-svn-id: trunk@27163 -
2014-03-16 17:40:31 +00:00
michael
f9bb91d722 * Fix case for negative dates (bug ID 23464)
git-svn-id: trunk@27124 -
2014-03-13 09:42:01 +00:00
nickysn
8926a3268c * fixed TTimeStamp for integer=smallint
git-svn-id: trunk@27087 -
2014-03-10 22:31:48 +00:00
nickysn
afea0739c6 * fixed StrToInt, IntToStr and friends for objpas.integer=smallint
git-svn-id: trunk@27067 -
2014-03-10 00:33:53 +00:00
nickysn
ca451988a8 * EInOutError.ErrorCode changed from Longint to Integer (16-bit Delphi 1
compatibility)

git-svn-id: trunk@27044 -
2014-03-09 13:21:27 +00:00
nickysn
73494f004d * the Exception constructors' AHelpContext parameter changed from Integer to
Longint

git-svn-id: trunk@27043 -
2014-03-09 13:09:25 +00:00
michael
77b771e91b * Let ToString return something meaningful for Exception
git-svn-id: trunk@26969 -
2014-03-06 13:34:40 +00:00
michael
0f7e1af3bb * Fixed bug #23464
git-svn-id: trunk@26753 -
2014-02-11 16:36:07 +00:00
Jonas Maebe
5d389e99fd * always use the *W version of the Windows API in ExtractShortPathName() so
it works correctly regardless of white kind of string is passed in
  (and return a string encoded in DefaultRTLFileSystemCodePage)

git-svn-id: trunk@26450 -
2014-01-13 22:21:09 +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
Jonas Maebe
8fe7d82db7 * changed type of TAbstractSearchRec.name_do_not_touch from untyped pointer
into rawbytestring because otherwise -gt can overwrite it
  - removed hack from r25944 in morphos/sysutils.pp that worked around this
    problem

git-svn-id: trunk@25952 -
2013-11-06 13:17:06 +00:00
nickysn
5e09b7a56f * SysUtils functions related to exceptions and stacktraces updated to use CodePointer
git-svn-id: trunk@25515 -
2013-09-17 21:58:53 +00:00
Jonas Maebe
de56f909d5 * synchronized with trunk up to and including r25430
git-svn-id: branches/cpstrrtl@25431 -
2013-09-06 10:09:26 +00:00
svenbarth
b288179d56 Fix for Mantis #24929.
rtl/sysutils/datih.inc:
  + add StrToDate overload which allows passing of specific TFormatSettings parameter
rtl/sysutils/dati.inc:
  * implement new StrToDate overload by calling IntStrToDate similar to StrToTime

git-svn-id: trunk@25392 -
2013-09-01 12:46:54 +00:00
Jonas Maebe
5b09435055 * explicitly call several windows *A() versions of APIs so the intended
routine is called even when we compile with -dFPC_UNICODE_RTL

git-svn-id: branches/cpstrrtl@25308 -
2013-08-19 22:47:12 +00:00
Jonas Maebe
2da7c3f05c * changed declarations in finah.inc and diskh.inc from ansistring to
rawbytestring
  * DoDirSeparators() and GetDirs() marked as "rtlproc" so they can accept
    non-rawbytestring arguments as their var-parameters

git-svn-id: branches/cpstrrtl@25306 -
2013-08-19 22:04:40 +00:00
Jonas Maebe
65ecd1273d * removed warning when GetEnvironmentVariable() does not return a
a unicodestring

git-svn-id: branches/cpstrrtl@25305 -
2013-08-19 22:04:36 +00:00
Jonas Maebe
91079d1327 * ensure that constant string concatenations don't result in converting
input strings to DefaultSystemCodePage

git-svn-id: branches/cpstrrtl@25303 -
2013-08-19 22:04:29 +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
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
8b77f62873 * don't truncate environment variable strings in GetEnvironmentString()
* set the correct code page for the result of GetEnvironmentString() on
    Windows and NativeNT

git-svn-id: branches/cpstrrtl@25103 -
2013-07-15 09:21:20 +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
c604e5af17 * small reorganisation of ansistring/unicodestring routine declarations, so
they are the same as in the unicode branch (to more easily apply patches)

git-svn-id: branches/cpstrrtl@25073 -
2013-07-09 19:01:24 +00:00
Jonas Maebe
5ed4e99dc1 + uppercase/lowercase(unicodestring) (fixes a warning in fina.inc when
compiled with unicodestring)
  * changed uppercase/lowercase(ansistring) to use the same logic as the
    new unicode versions (unify code for lower/upper, only make result
    unique if necessary)
  + test for all four routines

git-svn-id: branches/cpstrrtl@25006 -
2013-06-28 12:46:25 +00:00
Jonas Maebe
bae3c0296e * fixed result type of StrBufSize(PWideChar) for 64 bit targets
git-svn-id: branches/cpstrrtl@25002 -
2013-06-28 08:41:46 +00:00
Jonas Maebe
1da05d1553 * declared CharInSet(ansichar,tsyscharset) as inline
* moved the inclusion of sysansi.inc to before the inclusion of all other
    sysutils include files so the inline body of CharInSet is available

git-svn-id: branches/cpstrrtl@25000 -
2013-06-27 21:38:13 +00:00
Jonas Maebe
b08d8091b2 * made fexpand unicodestring-safe (use charinset instead of "in" --
"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 -
2013-06-27 21:38:10 +00:00
Jonas Maebe
746546ed09 + remaining missing pwidechar overloads/equivalents of pchar functions
(strecopy, strend, strcat, strcomp, strlcomp, stricomp, strlcat, strrscan,
     strlower, strupper, strlicomp, strpos, WideStrAlloc, StrBufSize,
     StrDispose)
  * adjusted pwidechar version of strnew to call WideStrAlloc instead of
    StrAlloc
  + tests for several newly added sysutils pwidechar routines based on
    existing tests for equivalent pchar routines
  * converted several sysutils ansistr*() function tests to tests for str*
    functions

git-svn-id: branches/cpstrrtl@24998 -
2013-06-27 21:38:06 +00:00
Jonas Maebe
c49ae76837 * let StrBufSize return a cardinal rather than a sizeuint, and also change
its internal pointer arithmetic to use cardinal, because that's also what
    stralloc uses to initialize that value

git-svn-id: branches/cpstrrtl@24996 -
2013-06-27 21:37:58 +00:00
Jonas Maebe
8f1e85d9ae * moved SameFileName from finah.inc to sysansih.inc, since the implementation
is in sysansi.inc

git-svn-id: branches/cpstrrtl@24995 -
2013-06-27 21:37:55 +00:00
Jonas Maebe
95a877c7e5 * moved GetFileHandle() from fina.inc to filutil.inc because fina.inc
will be included twice using different string types (and those two
    routines don't have a string argument, so this would result in duplicate
    definitions), and their declaration is in filutilh.inc rather than
    finah.inc anyway
  * ensure that the fina.inc "MaxDirs" constant gets declared only once
  * ensure that the finah.inc "TFilenameCaseMatch" type gets declared only
    once

git-svn-id: branches/cpstrrtl@24994 -
2013-06-27 21:37:51 +00:00
Jonas Maebe
ba7fc58bed * declare tsyscharset as a set of ansichar instead of as a set of char
(widechar sets are not (yet?) supported)

git-svn-id: branches/cpstrrtl@24989 -
2013-06-27 21:37:29 +00:00
marco
eebfeca41d * removed all ver2_* defines older than 2_4. 2_4 can probably also get removed from trunk, but better in a separate commit.
git-svn-id: trunk@24971 -
2013-06-25 12:46:30 +00:00
Jonas Maebe
ff87431565 - removed "PathOnly" field from Unix TSearchRec (deprecated since 2.4.0, not
initialised or used on any target))

git-svn-id: branches/cpstrrtl@24968 -
2013-06-24 21:24:09 +00:00
Jonas Maebe
3694b4f003 * moved ToSingleByteFileSystemEncodedFileName() to the system unit and
export it so it can be used in all rtl units

git-svn-id: branches/cpstrrtl@24960 -
2013-06-24 09:40:00 +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
Károly Balogh
60879c9c4f also return the colon for ExtractFileDrive on Amiga/MorphOS
git-svn-id: trunk@24765 -
2013-06-02 11:37:29 +00:00
Károly Balogh
7ce3b803b3 basic Amiga/MorphOS support into ExtractFileDrive
git-svn-id: trunk@24683 -
2013-05-31 23:53:47 +00:00
nickysn
1d8d0d42a5 * size of TByteArray and TWordArray reduced by 1 on 16-bit CPUs to avoid 'structure too large' errors when compiling the sysutils unit
git-svn-id: trunk@24591 -
2013-05-25 13:28:13 +00:00
florian
c25f56fa64 + several pwidechar/unicode string functions added
git-svn-id: trunk@24212 -
2013-04-09 11:09:10 +00:00
Jonas Maebe
25ebb36103 * catch invalid floating point operations in TextToFloat (mantis #24197)
git-svn-id: trunk@24105 -
2013-04-01 11:50:49 +00:00
Jonas Maebe
7dfe1301c3 * fixed type in FloatToStrFIntl introduced in r23311 (mantis #24131)
git-svn-id: trunk@24013 -
2013-03-26 18:53:37 +00:00
svenbarth
db6385ef33 Added exception EObjectCheck for object reference check (runtime error 210).
rtl/objpas/sysconst.pp:
  + add resourcestring SObjectCheckError
rtl/objpas/sysutilh.inc:
  + add new Exception descendant EObjectCheck
rtl/objpas/sysutils.inc:
  + use EObjectCheck with message SObjectCheckError for runtime error 210

git-svn-id: trunk@23656 -
2013-02-24 22:22:38 +00:00
michael
7c8fcb63b7 * Changed DateTimeToTimestamp not to use Round()
git-svn-id: trunk@23337 -
2013-01-07 13:00:27 +00:00
michael
2a9e12c709 * Fixed rounding errors in DateTimeToTimeStamp, causing errors in conversions
git-svn-id: trunk@23334 -
2013-01-07 10:28:47 +00:00
michael
b55eb113a6 * Fixed bug ID #23464
git-svn-id: trunk@23328 -
2013-01-06 16:49:35 +00:00
florian
6363567fba * FloatToStrFIntl is used only internally so we can assume that Value is aligned
git-svn-id: trunk@23311 -
2013-01-04 19:13:28 +00:00
florian
8ee1445b81 * stripped trailing spaces
git-svn-id: trunk@23294 -
2013-01-02 10:50:32 +00:00