Commit Graph

8969 Commits

Author SHA1 Message Date
pierre
b9009d8c02 * Fix PIC code for BSD x86_64 syscall and x86_64 freebsd startup assembler files
git-svn-id: trunk@19181 -
2011-09-22 21:16:42 +00:00
marco
07fabab526 * fpgetsid, Mantis #20329
git-svn-id: trunk@19178 -
2011-09-22 13:21:38 +00:00
pierre
32f7104ffe * Fix failure of webtbs/tw17560:
the C structure sem (also TSemaphore record) used in cthreads unit
    inside cIntSemaphoreInit function via
    a GetMem(sizeof(TSempahore). sem was a simple cint
    value which lead to memoryt overwriting past end of
    allocated memory in sem_XXX calls.

git-svn-id: trunk@19176 -
2011-09-22 11:37:27 +00:00
michael
1579470a68 * Also check TMPDIR, a UNIX standard used by a.o. iOS (mantis #20248)
git-svn-id: trunk@19175 -
2011-09-22 11:29:50 +00:00
paul
935a030dca rtl: enable character unit compilation for win32
git-svn-id: trunk@19172 -
2011-09-22 02:07:05 +00:00
paul
59a69eaeba rtl: add TCharacter class implementation by Inoussa. At this moment only BMP(0-$FFFF) UnicodeChar are handled.
tests: add character unit tests
(mantis #0020302)

git-svn-id: trunk@19170 -
2011-09-22 00:52:51 +00:00
florian
f14e0a25c6 * reduce code size of dummy threading routines
* threading manager of the embedded target uses only one dummy routine to reduce code size

git-svn-id: trunk@19169 -
2011-09-21 21:00:15 +00:00
florian
375f83c874 * moved heap manager on embedded systems into a separate unit
* moved console io on embedded systems into a seperate unit, this unit might setup input/output e.g. to be redirected to a serial port
* cleanup of the embedded system unit

git-svn-id: trunk@19168 -
2011-09-21 20:57:37 +00:00
sergei
f2852137c8 * DisposeAnsiString doesn't need to exist as a separate procedure, because it is only called from a single place. Merging it into caller yields somewhat more efficient code.
* DisposeWideString,DisposeUnicodeString: likewise.

git-svn-id: trunk@19163 -
2011-09-20 18:53:29 +00:00
sergei
c73b6cfbd4 - removed register lists after pure assembler procedures
- removed {$ifdef FPC_HAS_RIP_RELATIVE}, it is obsolete because rip-releative referencing is supported in at least two releases by now.
+ added nostackframe to simple assembler procedures
* Inclocked, Declocked: do not duplicate entire procedures, Win64 and Linux versions differ in a single instruction.

git-svn-id: trunk@19162 -
2011-09-20 17:57:58 +00:00
sergei
f35a8179b1 * Status codes are identical for win32 and win64, moved them to syswin.inc.
git-svn-id: trunk@19160 -
2011-09-20 15:01:22 +00:00
sergei
6f20627220 * Use rip-relative offsets in assembler, fixes linking text mode IDE with internal linker. The better way would be to get rid of this assembler altogether.
git-svn-id: trunk@19149 -
2011-09-19 15:18:28 +00:00
paul
8b0cb2c1d5 compiler:
- don't parse '(' token after the type declaration inside the type block
  - replace parse of "string<codepage>" to "type AnsiString(codepage)" for delphi compatibility
  - fix tests to use "type AnsiString(codepage)"

git-svn-id: trunk@19148 -
2011-09-19 04:11:57 +00:00
Jonas Maebe
85ed1b87d9 * fixed wrong use of CompareTextUnicodeStringProc() in
fpc_ansistr_compare_equal(). "make cycle" now works under Linux, but
    there is probably still a bug somewhere because I don't think that the
    compiler should ever trigger the code path the contained this bug

git-svn-id: trunk@19139 -
2011-09-18 11:17:37 +00:00
marco
e343e6263b * Patch to fix createevent call on wince if the last param
is nil. (last param contains security settings not   available on wince?). Patch
   by Fabio, Mantis #20280

git-svn-id: trunk@19138 -
2011-09-18 10:53:48 +00:00
paul
528f7fbb06 rtl: manual merge some cpstrnew changes which was impossible to merge using regular tools due to the merge conflicts
git-svn-id: trunk@19137 -
2011-09-18 01:40:56 +00:00
paul
fd5a15fda5 rtl: manual merge some cpstrnew changes which was impossible to merge using regular tools due to the merge conflicts
git-svn-id: trunk@19132 -
2011-09-17 15:39:46 +00:00
florian
f238c9161b + declaration of missing BufLen
git-svn-id: trunk@19130 -
2011-09-17 15:34:36 +00:00
paul
631c545423 merge r19075 from cpstrnew branch by paul:
rtl: change UTF8Decode, UTF8Encode, AnsiToUTF8, UTF8ToAnsi to use RawByteString as arguments/result for compatibility with the old code and also with delphi

git-svn-id: trunk@19128 -
2011-09-17 14:30:17 +00:00
paul
5ac95bc27a merge r17607 from cpstrnew branch by inoussa:
Updated to take care of the code page : fpc_ansistr_to_chararray, fpc_ansistr_to_widechararray

git-svn-id: trunk@19124 -
2011-09-17 14:18:53 +00:00
paul
05d66e31ce merge r17603 from cpstrnew branch by inoussa:
Updated to take care of the code page : fpc_char_to_ansistr, fpc_pchar_to_ansistr, fpc_AnsiStr_To_ShortStr

git-svn-id: trunk@19122 -
2011-09-17 14:07:20 +00:00
paul
aaf5392315 merge r17601 from cpstrnew branch by inoussa:
Correct fpc_ansistr_to_ansistr and fpc_short_to_ansistr and test

git-svn-id: trunk@19121 -
2011-09-17 14:03:10 +00:00
paul
7c21524892 merge r17587 from cpstrnew branch by inoussa:
fpc_AnsiStr_To_AnsiStr : avoid code page conversion when possible.

git-svn-id: trunk@19120 -
2011-09-17 13:59:38 +00:00
paul
005795495d merge r17552 from cpstrnew branch by inoussa:
*In normal procedure "var" and "out" RawByteString parameters does not accept other string types. Procedures with
"compilerproc" directive or the newly added "rtlproc" directive accept that. Please note that it is up to the
procedure coder to ensure the correctness of the code page in that case. The new directive is needed to handle 
the RTL procedures/functions that are not marked as "compilerproc" such as "UniqueString", "Insert" and "Delete".

*Correct "fpc_ansistr_concat" to handle code page correctly.

*Default "ansitring" type is now created with code page set to "0" instead of "65535". Before that change it was 
impossible to distinguish a "RawByteString" with the default "ansistring". At runtime "ansistring" variable'code
page is set to DefaultSystemCodePage

*UniqueString flavor of "SetLength" has been updated to release memory when shrinked to at least 50%, like ansitring
does.

git-svn-id: trunk@19118 -
2011-09-17 13:52:09 +00:00
paul
22b19220a3 merge r17485 from cpstrnew branch by michael:
Patch from Inoussa:
* rtl/inc/astrings.inc
    ** "fpc_AnsiStr_Concat_multi" : add "cp" parameter. If the "DestS" variable is "nil" this code page
       is use in order not to loose the declared code page of the original (result)variable.
    ** "fpc_AnsiStr_Compare" : modify to compare taking care of the code  page of the arguments.
    ** "fpc_AnsiStr_Compare_equal" : modify to compare taking care of the code page of the arguments.
    ** "fpc_AnsiStr_SetLength" : add "cp" parameter. If the "S" variable is "nil" this code page
       is use in order not to loose the declared code page of the original (result)variable.

* rtl/inc/systemh.inc
    ** add "SetCodePage" prototype.

git-svn-id: trunk@19114 -
2011-09-17 13:34:37 +00:00
paul
f8b5920f31 merge r17438 from cpstrnew branch by michael:
* Applied patch from Inoussa to fix copy of unicode string

git-svn-id: trunk@19112 -
2011-09-17 13:27:26 +00:00
paul
1db610ecbd merge r17434 from cpstrnew branch by michael:
* Patch from Inoussa to fix constant strings with codepage

git-svn-id: trunk@19109 -
2011-09-17 13:19:59 +00:00
paul
7fd7eee1c9 merge r17330 from cpstrnew branch by michael:
* Patch from Inoussa, fixing tunistr1.pp and twide1.pp

git-svn-id: trunk@19107 -
2011-09-17 13:12:07 +00:00
paul
9e0ad7baae merge r17318 from cpstrnew branch by florian:
* compilation fix by Inoussa OUEDRAOGO, resolves #19160

git-svn-id: trunk@19104 -
2011-09-17 13:01:20 +00:00
paul
99dae8b97e merge r16256 from cpstrnew branch by marco:
* fix for cycling with 2.4.x

git-svn-id: trunk@19103 -
2011-09-17 12:53:58 +00:00
paul
091627883f merge r14347 from cpstrnew branch by florian:
* fixed bootstrapping with 2.4.0
* patches by Graeme Geldenhuys, resolve #15251, #15252, #15253

git-svn-id: trunk@19102 -
2011-09-17 12:00:06 +00:00
paul
233004f72b merge r14144 from cpstrnew branch by paul:
call MultiByteToWideChar with dwFlags=0 for UTF8 code page

git-svn-id: trunk@19100 -
2011-09-17 11:56:16 +00:00
paul
55434fd1d8 merge r14143 from cpstrnew branch by paul:
use RawByteString instead of AnsiString for Pos()

git-svn-id: trunk@19099 -
2011-09-17 11:54:58 +00:00
paul
ad8195e9ae merge r14136 from cpstrnew branch by paul:
- fix return type of StringCodePage functions from Word to TSystemCodePage
- add SetMultiByteConversionCodePage procedure (which just change the DefaultSystemCodePage constant)

git-svn-id: trunk@19095 -
2011-09-17 11:46:33 +00:00
paul
b3db8db481 merge r14133 from cpstrnew branch by paul except ptconst.pas which has a difficult merge conflict (code moved to another unit which is not at the branch during the revision):
make AnsiStr concatenation and copy work

git-svn-id: trunk@19094 -
2011-09-17 11:44:47 +00:00
paul
2162add8ac merge r14132 from cpstrnew branch by paul:
- a set of rtl changes from AnsiString to RawByteString to various conversion functions
- a test which proves output in cp1251 and cp866 codepages (standard for Russian windows)

git-svn-id: trunk@19093 -
2011-09-17 11:39:13 +00:00
paul
2023b618ac merge r14131 from cpstrnew branch by paul:
rtl: do WriteStr without codepage conversion

git-svn-id: trunk@19092 -
2011-09-17 11:36:44 +00:00
paul
848ca6b0c0 merge r14130 from cpstrnew branch by paul:
pass unicodestring to rawbytestring arguments with converting to default system code page

git-svn-id: trunk@19091 -
2011-09-17 11:34:42 +00:00
paul
afa559ab2e merge r14123 from cpstrnew branch by paul:
fix string ref count for empty strings

git-svn-id: trunk@19089 -
2011-09-17 11:27:05 +00:00
paul
5e9ee14ee7 merge r 14122 from cpstrnew branch by paul:
fix StringCodePage for empty unicode and ansi strings

git-svn-id: trunk@19088 -
2011-09-17 11:24:49 +00:00
paul
203ded84ec merge r14121 from cpstrnew branch by paul:
make tcpstr1 work

git-svn-id: trunk@19087 -
2011-09-17 11:23:02 +00:00
paul
27538f21a4 merge r13489 from cpstrnew branch by florian:
* made tcpstr1 work

git-svn-id: trunk@19086 -
2011-09-17 11:21:00 +00:00
paul
8cc22972a0 merge r13488 from cpstrnew branch by florian except ncgcon.pas which has a difficult merge conflict (code moved to another unit which is not at the branch during the revision):
* first batch of patches to make tcpstr1.pp work

git-svn-id: trunk@19085 -
2011-09-17 11:16:45 +00:00
paul
06af8f3e44 merge r13486 from cpstrnew branch by florian:
+ fpc_ansistr_to_ansistr implemented, rtl compiles again

git-svn-id: trunk@19084 -
2011-09-17 11:03:30 +00:00
paul
ae0d732c8f merge r13485 from cpstrnew branch by florian:
* fixed compilation of system unit after last changes

git-svn-id: trunk@19083 -
2011-09-17 11:01:42 +00:00
paul
28627482c5 merge r13483 from cpstrnew branch by florian:
+ Win32Unicode2AnsiMove and Win32Wide2AnsiMove support code page parameter
+ Win32Ansi2UnicodeMove and Win32Ansi2WideMove support code page parameter
+ code page parameter added for several compilerprocs
* unified more code between win32 and win64 (widestring conversion routines

git-svn-id: trunk@19082 -
2011-09-17 10:54:00 +00:00
paul
8a4634a7b1 merge r13481 from cpstrnew branch by florian
+ support parsing of strings with code page specification
+ added encoding and elementsize field to ansi- and unicodestring records
+ some basic rtl support routines for encoding aware strings
+ DefaultSystemCodePage
+ DefaultUnicodeCodePage
+ ppu writing/loading of code page aware strings

git-svn-id: trunk@19080 -
2011-09-17 10:37:36 +00:00
Jonas Maebe
6920c7a0c1 * fixed stat/fstat-related types for iphonesim platform
(mantis #20249)

git-svn-id: trunk@19078 -
2011-09-17 09:31:32 +00:00
marco
91b017a985 * ansi(start/ends)(str/text) MBCS compatible (via widestringmgr), mantis #16153 + tests
Patch by Flavio Etrusco.

git-svn-id: trunk@19043 -
2011-09-10 15:01:46 +00:00
marco
47af891513 * change resourcestream.handle from thandle to TPFResourceHGlobal, since it is
a pointer, and handle is a 32-bit integer on 64-bit *nix.

git-svn-id: trunk@19042 -
2011-09-10 10:00:27 +00:00