Commit Graph

664 Commits

Author SHA1 Message Date
nickysn
aa44dcbd7f * fixed hang in dos.exec_ansistring when passing a long command line via the
go32v2 proxy method. This fixes go32v2 snapshot building, among other things.

git-svn-id: trunk@28798 -
2014-10-11 20:56:36 +00:00
Tomas Hajny
cedf009d3c * fix for SIGSEGV in Exec without command line parameters revealed in discussion for #26160
git-svn-id: trunk@27804 -
2014-05-18 20:37:40 +00:00
Tomas Hajny
bb0a670e9e * fix for bug #26160
git-svn-id: trunk@27803 -
2014-05-18 20:02:10 +00:00
pierre
29a7f75d1d Complete previous commit: add EXECPPAS to ALL explicit rules
git-svn-id: trunk@27514 -
2014-04-10 16:14:58 +00:00
pierre
2f5fcf775c Add EXECPPAS on explicit roules
git-svn-id: trunk@27513 -
2014-04-10 16:00:32 +00:00
pierre
3d34a8a3b0 Makefiles updated with fpcmake rev 27428
git-svn-id: trunk@27508 -
2014-04-10 09:58:17 +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
c465d3d64a * moving 4 cp9* units. These are 16-bit and big.
git-svn-id: trunk@27349 -
2014-03-29 19:43:13 +00:00
marco
ed3a49372d * strutils moved to packages/rtl-objpas
git-svn-id: trunk@27339 -
2014-03-29 17:51:44 +00:00
pierre
1396e903a5 Fix ugly error causing troubles in go32v2 2.6.4 release IDE with GDB
git-svn-id: trunk@27281 -
2014-03-25 11:21:44 +00:00
sergei
3a55c4301e * Since StackTop=StackBottom+StackLength, any two variables are sufficient to describe stack, the third one is redundant.
* As a first part of cleanup, replaced StackTop with function returning StackBottom+StackLength.
* On Win32 and Win64, StackTop returns the stack base from TIB instead.

git-svn-id: trunk@27119 -
2014-03-12 19:48:03 +00:00
yury
73c26bd6be * mipsel-android: Regenerated makefiles. From now the mipsel-android target can be built and used.
git-svn-id: trunk@26705 -
2014-02-07 12:37:17 +00:00
Tomas Hajny
ce4cb437e2 + character sets for central Europe added also to Makefiles as implicit units
git-svn-id: trunk@26526 -
2014-01-20 00:20:11 +00:00
marco
02dd7f21f5 * go32v2 makefile still contained a variants unit
* go32v2 was somehow not specified for fmtbcd.

git-svn-id: trunk@26399 -
2014-01-05 19:41:19 +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
paul
14a34239cc rtl: add cp856 to makefiles
git-svn-id: trunk@26387 -
2014-01-05 06:03:28 +00:00
marco
a001e12d04 * rtl-console initial version.
git-svn-id: trunk@26372 -
2014-01-03 22:19:02 +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
pierre
f6f183f866 Put both _environ and __environ as .comm inside startup script to avoid crt1.o loading
git-svn-id: trunk@26069 -
2013-11-12 16:41:08 +00:00
nickysn
611358be7e * fixed the stack traces (StackTop initialization) under go32v2 as well
git-svn-id: trunk@25875 -
2013-10-28 00:14:08 +00:00
nickysn
3fb87cb529 * go32.map_device_in_memory_block result checking made consistent with all the
other functions in the go32 unit

git-svn-id: trunk@25787 -
2013-10-14 19:20:28 +00:00
nickysn
59f441269e + added function free_linear_addr_mapping to unit go32
git-svn-id: trunk@25786 -
2013-10-14 19:15:18 +00:00
nickysn
8bad012e83 + added functions get_page_attributes and set_page_attributes to unit go32
git-svn-id: trunk@25785 -
2013-10-14 18:46:44 +00:00
nickysn
1b36781dd8 + added function get_dpmi_version to unit go32
git-svn-id: trunk@25784 -
2013-10-14 18:42:05 +00:00
nickysn
1bea98995b * regenerated fpcmake makefiles after r25642
git-svn-id: trunk@25644 -
2013-10-05 10:11:27 +00:00
sergei
5dd10ade50 - Removed register lists after pure assembler procedures, they are ignored anyway.
git-svn-id: trunk@25550 -
2013-09-24 16:27:34 +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
nickysn
5c1fb7b009 * Crt.CursorOff fixed after r25483; the correct value of CX is 2000h, not 200h
git-svn-id: trunk@25487 -
2013-09-14 15:39:07 +00:00
nickysn
4d4ad5734b * Crt.CursorOn and CursorBig: use CX values that are CGA compatible, which makes them CGA/EGA/VGA compatible, because EGA/VGA bioses emulate CGA cursor values; as a side effect this also makes these functions work properly under EGA/VGA's 43- and 50-line text modes
git-svn-id: trunk@25485 -
2013-09-14 13:28:48 +00:00
nickysn
e60c3ee740 * Crt.CursorOff: use CX=bash200, instead of CX= for making the cursor invisible; this is the correct value, according to the BIOS documentation I've found and it is also the value used by the go32v2 video unit
git-svn-id: trunk@25483 -
2013-09-14 12:58:38 +00:00
nickysn
d64cea05df - rm redundant double initialization of regs.realecx from Crt.CursorOn
git-svn-id: trunk@25447 -
2013-09-10 15:28:01 +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
florian
0b30b0913d * fix building of go32v2 rtl with make 3.82
git-svn-id: trunk@25394 -
2013-09-01 20:29:02 +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
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
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
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
b1c10cff02 * actually use the filename converted to the file system codepage in
FileCreate()

git-svn-id: branches/cpstrrtl@25072 -
2013-07-09 19:01:21 +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
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
da7a67bc74 + FPCRTL_FILESYSTEM_SINGLE_BYTE_API define that is set for targets where we
use a single byte API for file system operations
  + FPCRTL_FILESYSTEM_TWO_BYTE_API define that is set for targets where we
    use a single byte API for file system operations
   o in principle, both can be set if both are supprted and implemented in
     the RTL in order to minimise conversions depending on the scenario

git-svn-id: branches/cpstrrtl@24991 -
2013-06-27 21:37:39 +00:00
Jonas Maebe
4c7605d6bf * fixed duplicate StringToTB definition error in r22467; only kept the
new StringToTB implementation (rawbytestring), because it ensures we
    don't overflow the transfer buffer size

git-svn-id: branches/cpstrrtl@24988 -
2013-06-27 21:37:25 +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
pierre
78a7043352 Regenerate all Makefiles with an up-to-date fpcmake binary (dummy commit)
git-svn-id: trunk@24367 -
2013-04-29 12:30:54 +00:00
florian
3d7033d81e * Makefiles regenerated
git-svn-id: trunk@24325 -
2013-04-25 20:25:57 +00:00
paul
a592e77f35 rtl: add missing windows codepages (mantis #0024294)
git-svn-id: trunk@24295 -
2013-04-22 01:48:12 +00:00
pierre
7b411e70b8 Merge forgotten go32v2 2.6.0 branch changes back into trunk.
------------------------------------------------------------------------
r20577 | pierre | 2012-03-22 16:35:26 +0100 (Thu, 22 Mar 2012) | 4 lines

// * Provide both environ and _environ inside startup file
//   to avoid loading of old or new crt1.o object from DJGPP libc.
//  Not merged as this is now treated in linker script.
 * Make some labels local to be able to get a complete
   disassembly of start function using GDB.
------------------------------------------------------------------------

git-svn-id: trunk@24231 -
2013-04-12 10:33:06 +00:00
pierre
57c5821042 Merge forgotten go32v2 2.6.0 branch changes back into trunk.
------------------------------------------------------------------------
r20580 | pierre | 2012-03-22 17:52:40 +0100 (Thu, 22 Mar 2012) | 1 line

 * Set __environ to envp in Setup_environment function
------------------------------------------------------------------------

git-svn-id: trunk@24230 -
2013-04-12 10:28:40 +00:00
paul
db357320d7 rtl: install all cpXXX .ppu and .o files
git-svn-id: trunk@23802 -
2013-03-12 11:44:15 +00:00