Vadim Zeitlin
8244507f68
Ensure that strings returned by wxMBConv_cf are in NFC form.
...
Normalize all Unicode strings used internally even though the Darwin kernel
gives them to us in decomposed (NFD) form.
Closes #11730 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66033 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-11-05 21:40:09 +00:00
Vadim Zeitlin
b64f93b67f
Make wxMBConv_iconv MT-safe by not using wxString in it.
...
Use just "char *" for wxMBConv_iconv::m_name to avoid MT-safety problems
related to using a wxString (which is not always MT-safe) from multiple
threads.
See #12630 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65968 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-31 13:41:03 +00:00
Vadim Zeitlin
f48a115976
No real changes, just use const_cast<> instead of C casts.
...
Replace many comments indicating that the C cast used was really a
const_cast<> with the proper cast itself. There is no reason to not use it any
longer, all the supported compilers understand it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65861 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-22 14:17:30 +00:00
Vadim Zeitlin
cfcfada96e
Return valid buffer from wxMBConv::c{MB,WC}2{WC,MB} for empty input.
...
Returning invalid buffer for empty input is unexpected and resulted in e.g.
wxString::utf8_str() returning NULL and not "" in ANSI build for empty strings
(which, in turn, resulted in crashes in the test suite and undoubtedly not
only) as well as crashes when calling GTK+ functions (see #12432 ). Other uses
of cMB2WC() also show that NULL return value from it is unexpected as it is
often passed to CRT functions not accepting NULL.
So return empty buffer instead for empty input to avoid all these problems.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65836 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-10-17 13:59:42 +00:00
Vadim Zeitlin
5276b0a53c
Use wxDELETE() and wxDELETEA() when possible.
...
Use wxDELETE[A]() functions which automatically NULL out their arguments after
deleting them instead of doing it manually.
Closes #9685 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@64656 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-06-20 18:18:23 +00:00
Václav Slavík
8d94819c43
Remove wxUSE_WCHAR_T checks.
...
wxWidgets requires wchar_t for some time now; wx/chartype.h has a check
to fail complation without it. Simplify code by removing now-dead code
for the !wxUSE_WCHAR_T case.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63991 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2010-04-16 10:43:18 +00:00
Vadim Zeitlin
2730723380
Correct two bugs in wxMBConv::FromWChar() with non NUL-terminated strings.
...
The variable "lenChunk" was incorrectly used as the length of the wide string
chunk which could result in wrong output.
Worse, the output buffer could be overflown for the final chunk because it
didn't have to have enough space for the trailing NUL(s) in it.
Fix both bugs and added unit tests for them.
Based on patch by Kuang-che Wu.
Closes #11486 .
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62793 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-06 02:30:05 +00:00
Paul Cornett
a243da29c8
make array data fully const
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62764 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-12-02 17:28:45 +00:00
Vadim Zeitlin
bbb0ff36db
Fix another off-by-1 bug in wxMBConv::ToWChar().
...
When converting a fixed number of characters we need to take any NULs inside
the buffer being converted into account for our return value -- but this
wasn't done and converting 2 characters 'x' and '\0' returned only 1, even if
the length 2 was explicitly specified.
Fix this bug and add a unit test checking for it.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62141 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-26 13:31:27 +00:00
Vadim Zeitlin
40ac5040ce
Add convenient wxMBConv::cMB2WC/WC2MB overloads taking buffers.
...
These overloads allow not to worry about buffer lengths and just convert
between wxCharBuffer and wxWCharBuffer directly in a convenient way.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61896 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-09-12 22:40:25 +00:00
Vadim Zeitlin
9a83f86094
Globally replace _T() with wxT().
...
Standardize on using a single macro across all wxWidgets sources and solve the name clash with Sun CC standard headers (see #10660 ).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-07-23 20:30:22 +00:00
Francesco Montorsi
ef6cef09d4
build fix for gcc4.3.3 (different types for arguments of ?: operator)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60561 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-09 12:32:26 +00:00
Vadim Zeitlin
3df31b2d6e
remove error message from wxCSConv initialization: there is no easy way to suppress it and no way to test if the encoding is supported so rely on calling code using IsOk() itself if necessary
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@60551 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-05-08 16:38:39 +00:00
Stefan Csomor
c45fad9aa9
making sure NULs stay in the result, even if the string is not nul terminated
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@59858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-03-25 21:24:02 +00:00
Vadim Zeitlin
c0c133e13b
add wx-prefixed and semicolon-requiring versions of DECLARE_NO_{COPY,ASSIGN}_CLASS macros
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58757 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2009-02-08 11:45:59 +00:00
Vadim Zeitlin
5c69ef61f3
fix some of icc 11.0 warnings and disable a few others
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56792 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-16 14:24:13 +00:00
Vadim Zeitlin
5c33522fca
replace wx_{const,static,reinterpret}_cast with their standard C++ equivalents
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56644 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-11-02 02:39:52 +00:00
Vadim Zeitlin
878c265b94
significantly optimize wxCSConv::To/FromWChar(NULL) performance by simply using a bigger temporary buffer
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56399 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-17 12:25:47 +00:00
Vadim Zeitlin
51725fc0c2
reverted the change of r56246 and keep the old behaviour of MB2WC/WC2MB; document it even more clearly and correct code using these functions incorrectly
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56394 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-17 11:31:22 +00:00
Vadim Zeitlin
8a493b67ac
fix off by one bug in the buffer size ( fixes #10039 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-10-12 14:51:45 +00:00
Vadim Zeitlin
e3276230de
fix bug with wxCSConv("ASCII")
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-19 01:45:38 +00:00
Vadim Zeitlin
ccaa848d6d
really correct detecting the end of UTF-7-encoded strings
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54675 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-18 00:47:21 +00:00
Vadim Zeitlin
36f9367822
fix bug introduced in r54646: we still need to count the embedded NULs when converting the entire NUL-terminated string to wchar_t, only the trailing NUL shouldn't be counted
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-17 23:45:04 +00:00
Vadim Zeitlin
852dcba528
properly detect missing data at the end of UTF-7-encoded segment and fail the conversion in this case
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54670 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-17 23:01:02 +00:00
Vadim Zeitlin
f6a0208756
fix the output length returned from cWC2MB/MB2WC() to be consistent with From/ToWChar(); fix off by NUL-length bug in wxMBConv implementation of From/ToWChar() in terms of legacy WC2MB/MB2WC() (which are still used in wxMBConv_wxwin) that this uncovered; added a simple test for the bugs the old code resulted in which could be easily seen with wxConvISO8859_1 (see #9739 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54646 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-15 23:57:25 +00:00
Vadim Zeitlin
05392dc8c6
remove wxCSConv::MB2WC/WC2MB, implement Latin-1 fallback conversion in To/FromWChar() themselves; this is more efficient and removing the old code fixes off by 1 bugs in it (related to #9739 )
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54640 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-07-15 16:09:00 +00:00
Stefan Csomor
c933e267be
fixing file paths after renaming
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54126 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-11 19:22:25 +00:00
Vadim Zeitlin
a964d3edf5
corrected bug in wxMBConvStrictUTF8::FromWChar(): it wrote one extra NUL when used with explicit source length
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53891 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-01 03:11:32 +00:00
Vadim Zeitlin
9d653e810c
rewrote UTF-7 to work on streams of data to be comaptible with the way wxTextStream uses the converters; also converted a couple off by 1 bugs and unit test finally pass now
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53889 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-06-01 03:08:45 +00:00
Vadim Zeitlin
e5c28d8710
don't write extraneous NUL bytes in wxMBConv_iconv::FromWChar()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53872 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-31 01:55:45 +00:00
Vadim Zeitlin
2588ee861f
correct similar off by 1 bug to the one fixed by r53869 in wxMBConv_iconv::ToWChar() in FromWChar()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53871 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-31 01:54:21 +00:00
Vadim Zeitlin
1752fda65b
fix bug with wrong return value in wxMBConv_iconv::ToWChar() introduced by a recent check in
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53870 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-31 01:53:10 +00:00
Vadim Zeitlin
d50c083157
fix wxMBConv_iconv to respect the base class conventions: when the input is NUL-terminated, the output should be NUL-terminated and the return value should account for the terminating NUL
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53869 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-31 01:39:32 +00:00
Vadim Zeitlin
467a2982d2
swap all characters instead of just the last one in a loop in wxMBConv_iconv::ToWChar()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53868 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-31 01:23:36 +00:00
Vadim Zeitlin
95f82f4ce3
don't return success when converting incomplete UTF-7 sequences
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53867 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-31 01:22:16 +00:00
Vadim Zeitlin
8f4b0f43f0
implement wxMBConv_iconv::To/FromWChar() instead of MB2WC/WC2MB: this allows to use wxMBConv conversions with wxTextInputStream and fixes TextStreamTestCase unit test failures
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53858 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-05-30 22:49:48 +00:00
Paul Cornett
e8769ed11c
avoid GCC warnings about breaking strict aliasing rules
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51508 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2008-02-02 21:52:26 +00:00
Vadim Zeitlin
f172cb8200
removed support for Salford compiler (which was almost certainly broken anyhow) (patch 1861133)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@50960 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-12-31 10:05:00 +00:00
Vadim Zeitlin
564da6ff0b
fix round trip check in wxMBConv_win32::WC2MB() when the buffer size is 0
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48835 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-20 13:16:37 +00:00
Vadim Zeitlin
00ceccee89
properly NUL-terminate the buffer returned by wxMBConv::cMB2WC()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48763 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-18 12:04:39 +00:00
Vadim Zeitlin
0dd13d21cd
always NUL-terminate the buffers returned by cWC2MB/cMB2WC() overloads taking input length, even if the input is not NUL-terminated (part of patch 1795174)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-15 00:36:16 +00:00
Vadim Zeitlin
d16d0917e4
fix wxMBConvUTF8::cMB2WC/cWC2MB() broken by the introduction of wxMBConvStrictUTF8: as it overrides From/ToWChar(), wxMBConvUTF8 needs to do it (instead of deprecated MB2WC/WC2MB) as well
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48699 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-15 00:16:58 +00:00
Vadim Zeitlin
e1079eda55
fix warning about not enough parameters for WX_DEFINE_GLOBAL_CONV2 with VC6
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-14 18:54:24 +00:00
Vadim Zeitlin
765bdb4a1b
check that the conversion really succeeds even when wxMBConv_win32::WC2MB() is called with NULL buffer
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48643 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-12 00:39:21 +00:00
Václav Slavík
5367a38ad3
optimized wxMBConvStringUTF8::ToWchar() for ASCII characters
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48427 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-28 10:40:40 +00:00
Václav Slavík
1774c3c535
made UTF-8 tables const
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48322 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-22 09:30:40 +00:00
Vadim Zeitlin
d6f2a8911e
many compilation fixes for WinCE using VC8 (it now build, although still doesn't work)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47749 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-27 16:34:24 +00:00
Vadim Zeitlin
a2db25a143
use To/FromWChar() in single parameter wxMBConv::cMB2WC/WC2MB() overloads too, instead of passing by the deprecated MB2WC/WC2MB()
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47706 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-24 15:20:52 +00:00
Vadim Zeitlin
0286d08d14
add wxMBConvStrictUTF8 class implementing just UTF-8 conversion, without support for PUA/octal mappings and use it for wxConvUTF8 as it's simpler and more efficient (~20% faster)
...
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47703 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-24 15:01:10 +00:00
David Elliott
6ac84a7872
Remove wxMBConv_mac and wxMBConv_macUTF8D converters and use wxMBConv_cf(wxFONTENCODING_UTF8) for wxConvFileName on Darwin platform regardless of GUI toolkit.
...
Check for Mac encodings in wxMBConv_wxwin::Init and fail to provide conversion for them via wxEncodingConverter because that code is horribly broken for several encodings.
Remove definition of wxConvLibc for non-Darwin Mac platforms (we don't support these anymore).
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47225 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-07 19:10:15 +00:00