Different outputs affected by hosts
authorYao Qi <yao@codesourcery.com>
Tue, 27 May 2014 11:56:21 +0000 (19:56 +0800)
committerYao Qi <yao@codesourcery.com>
Tue, 17 Jun 2014 11:35:32 +0000 (19:35 +0800)
commit0fc059972058a4afb22882a61143c7cc48eca883
treea3da1cf91279bb4479c4293c7c851163eace6d59
parent70795c525e5b8ca5e9fb8ffbaf33a5f281d53320
Different outputs affected by hosts

We find the following fails in gdb test on mingw host.

FAIL: gdb.base/wchar.exp: print repeat
FAIL: gdb.base/wchar.exp: print repeat_p
FAIL: gdb.base/wchar.exp: print repeat (print null on)
FAIL: gdb.base/wchar.exp: print repeat (print elements 3)
FAIL: gdb.base/wchar.exp: print repeat_p (print elements 3)

print repeat^M
$7 = L"A", '¢' <repeats 21 times>, "B", '\000' <repeats 104 times>^M
(gdb) FAIL: gdb.base/wchar.exp: print repeat

the \242 is expected in the test but cent sign is displayed.

In valprint.c:print_wchar, wchar_printable is called to determine
whether a wchar is printable.  wchar_printable calls iswprint but
the iswprint's return value depends on LC_CTYPE setting of locale [1, 2].
The output may vary with different locale settings and OS.  IMO, '¢'
(cent sign) is a correct output on Windows.

[1] http://pubs.opengroup.org/onlinepubs/009604499/functions/iswprint.html
[2] http://msdn.microsoft.com/en-us/library/ewx8s4kw.aspx

This patch is set $cent to cent sign if the GDB is running on a
Windows host.

gdb/testsuite:

2014-06-17  Yao Qi  <yao@codesourcery.com>

* gdb.base/wchar.exp: Set $cent to \u00A2 if "host-charset" is
CP1252.
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/wchar.exp