summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>2007-08-28 10:02:24 +0000
committeryury <yury@3ad0048d-3df7-0310-abae-a5850022a9f2>2007-08-28 10:02:24 +0000
commitfdfb9974b45a39ced619659955adea53095af382 (patch)
tree5600a127bfcffcf0021ff80fa3d10439edbec4a3
parent4ee58044fff6b3d77fb1e3e4523fc65fa6aea4cf (diff)
downloadfpc-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.inc4
-rw-r--r--tests/tbs/tb0541.pp14
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.