diff options
author | yury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-08-28 10:02:24 +0000 |
---|---|---|
committer | yury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2007-08-28 10:02:24 +0000 |
commit | fdfb9974b45a39ced619659955adea53095af382 (patch) | |
tree | 5600a127bfcffcf0021ff80fa3d10439edbec4a3 | |
parent | 4ee58044fff6b3d77fb1e3e4523fc65fa6aea4cf (diff) | |
download | fpc-fdfb9974b45a39ced619659955adea53095af382.tar.gz |
Merged revisions 8317 via svnmerge from
http://svn.freepascal.org/svn/fpc/trunk
........
r8317 | yury | 2007-08-28 12:53:29 +0300 (Вт, 28 авг 2007) | 2 lines
* Fixed fpc_WideCharArray_To_WideStr in case if widechar array contains empty string.
+ Test.
........
git-svn-id: http://svn.freepascal.org/svn/fpc/branches/fixes_2_2@8318 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r-- | rtl/inc/wstrings.inc | 4 | ||||
-rw-r--r-- | tests/tbs/tb0541.pp | 14 |
2 files changed, 15 insertions, 3 deletions
diff --git a/rtl/inc/wstrings.inc b/rtl/inc/wstrings.inc index 3640847ca4..8e8a0891cc 100644 --- a/rtl/inc/wstrings.inc +++ b/rtl/inc/wstrings.inc @@ -695,9 +695,7 @@ begin else i := high(arr)+1; SetLength(fpc_WideCharArray_To_WideStr,i); - Move(pwidechar(@arr)^, PWideChar(Pointer(@fpc_WideCharArray_To_WideStr[1]))^,i*sizeof(WideChar)); - { Terminating Zero } - PWideChar(Pointer(@fpc_WideCharArray_To_WideStr[1])+i*sizeof(WideChar))^:=#0; + Move(arr[0], Pointer(fpc_WideCharArray_To_WideStr)^,i*sizeof(WideChar)); end; {$ifndef FPC_STRTOCHARARRAYPROC} diff --git a/tests/tbs/tb0541.pp b/tests/tbs/tb0541.pp new file mode 100644 index 0000000000..1b1c36240d --- /dev/null +++ b/tests/tbs/tb0541.pp @@ -0,0 +1,14 @@ +const + TestStr: widestring = 'Test'; + +var + buf: array[0..10] of widechar; + s: widestring; + +begin + Move(TestStr[1], buf[0], (Length(TestStr) + 1)*SizeOf(widechar)); + s:=buf; + writeln(s); + buf[0]:=#0; + s:=buf; +end. |