Commit Graph

394 Commits

Author SHA1 Message Date
David Elliott
a9a854d73e Go back to my original idea of checking for EILSEQ and EINVAL and failing
immediately if either of those is set after wxVsnprintf call returns a
negative number to indicate some type of failure.

All other errno are assumed to simply mean that the buffer is undersized so
the platform C library function can set errno to anything it likes or simply
not set it at all and our code will keep trying to increase the buffer size
just as it did originally.

This should (hopefully) fix compilation with C libraries that only support
the most basic set of errors (of which EINVAL and EILSEQ are part).


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-23 03:30:16 +00:00
David Elliott
67612ff18e Fix wxVsnprintf-using code on both trunk and 2.8 and document how native
functions are supposed to behave as well as how some of them do.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49251 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-20 03:44:01 +00:00
Václav Slavík
6a6ea041d9 compilation fix for Mingw: it doesn't have std::wostream
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49115 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-10 09:48:00 +00:00
Vadim Zeitlin
6b61b594cf define insertion operator in std::wostream in Unicode build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-09 00:09:01 +00:00
Vadim Zeitlin
7a906e1a21 fixed operator<<(ostream&, wxString) to output string contents and not wchar_t pointer value in Unicode build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49099 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-10-09 00:01:59 +00:00
Paul Cornett
0d8b0f94c0 unused variable, more efficient increment operator
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48900 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-22 04:40:21 +00:00
Vadim Zeitlin
2a7431e130 no changes, just added a comment explaining the issues involved in doing the conversion in place in wxCStrData::AsChar()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48614 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-09 19:05:20 +00:00
Vadim Zeitlin
28be59b4ad return empty string, not NULL, from wxCStrData::AsChar() if conversion to ANSI fails for compatibility with wxWidgets 2 and std::string
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48613 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-09 18:57:41 +00:00
Václav Slavík
c5288c5cfe fixed wxString::FromAscii signature
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48585 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-06 13:31:08 +00:00
Robin Dunn
4f696af8d6 Pass length including the null-terminator to cWC2MB
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48579 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-09-05 22:53:29 +00:00
Václav Slavík
941a4e6260 replace wxStringToIntType<T> with a macro to make Watcom compile the code
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48342 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-22 19:06:31 +00:00
Václav Slavík
7d46f92bb0 compilation fix for UTF8+STL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48327 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-22 11:30:10 +00:00
Václav Slavík
628f87da56 added wxUTF8StringBuffer for writing UTF8 data into wxString efficiently, similarly to existing wxStringBuffer classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48222 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-20 15:19:15 +00:00
Václav Slavík
6798451bb2 renamed wxImplStringBuffer to wxStringInternalBuffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-08-19 21:24:50 +00:00
Vadim Zeitlin
4fdfe2f3ae use wxMBConvStrictUTF8 instead of wxMBConvUTF8 in ConvertStr() and mb/wc_str()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47705 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-07-24 15:10:21 +00:00
Václav Slavík
0081dd7246 fixed FromAscii to work with NULL argument (broken after recent changes)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47012 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-28 20:01:11 +00:00
Václav Slavík
602a857b25 fixed FromAscii() changes to correctly handle embedded NULs
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@47011 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-28 19:07:00 +00:00
Václav Slavík
e6310bbc5a added wxString::FromAscii(char*,size_t) for consistency with FromUTF8()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46995 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-28 12:36:54 +00:00
Václav Slavík
a33c7045d1 don't put invalid UTF-8 data into wxString if Printf() fails in UTF-8 build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46475 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-15 11:26:29 +00:00
Václav Slavík
52de37c78f 1. made CRT wrappers definitions indepenent of wxUSE_UNICODE: both ANSI and Unicode variants are now defined
2. split wxcrt.h into wxcrtbase.h with lowlevel compiler-specific definitions and wxcrt.h with ANSI- and Unicode-compatible wx wrappers


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46390 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-10 17:14:14 +00:00
Václav Slavík
c6255a6eab removed unneeded wxVaCopy calls
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@46319 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-06-04 10:54:16 +00:00
Václav Slavík
5487ff0f50 use const wxMBConv& instead of wxMBConv& in public methods so that it's possible to pass in temporary objects;
don't use global wxConvUTF8 object internally, it may be unavailable at static objects destruction time


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45973 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-11 20:55:24 +00:00
Václav Slavík
c5e7a7d769 changed wxString::StartsWidth/EndsWidth to take wxString argument instead of wxChar*
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45922 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-09 21:07:08 +00:00
Václav Slavík
1528e0b85f use wxFormatString helper class for 'vararg' functions' format argument; this prepares the code for removal of implicit wxString conversion to char* in STL build and also fixes VC6 compilation
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45803 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-04 10:41:08 +00:00
Václav Slavík
111d99489d added code for optimized handling of UTF-8 locales: some string operations are more efficient under it and it's possible to completely compile-out support for other locales if the target system is known to only use UTF-8 locales
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45782 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-03 11:05:04 +00:00
Václav Slavík
d1f6e2cfe2 fixed vararg functions with format argument to not use wxString or reference argument (the latter is invalid C++, the former doesn't work with Watcom and produces at least warnings with GCC 3.3)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45781 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-05-03 10:50:25 +00:00
Václav Slavík
c1eada835a more efficient implementation of ToAscii/FromAscii in UTF8 build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45664 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-26 12:00:43 +00:00
Václav Slavík
2523e9b700 use UTF8-encoded char* strings in UTF8 build instead of wchar_t* if the current locale uses UTF8;
fall back to widechar CRT functions in the locale is not UTF8


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45663 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-26 11:40:04 +00:00
Václav Slavík
c87a0bc8cb corrected (Do)GetWriteBuf() return types to use more appropriate type (no real difference)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-24 15:51:51 +00:00
Václav Slavík
467175ab3f moved primitive string and string iterators operations to stringops.h/cpp files to make wxString code easier to read
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45533 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-19 10:05:55 +00:00
Václav Slavík
681e441286 added wxCStrData::As[W]CharBuf() that doesn't keep converted string in memory for longer than needed
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45495 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-16 06:59:04 +00:00
Václav Slavík
cf9a878b54 removed implicit conversion from wxString::iterator to wxStringImpl::iterator (fixes VC6 compilation)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45484 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-15 19:02:38 +00:00
Václav Slavík
a4a44612a6 implement wxString:IsXXX() methods using iterators
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45477 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-15 10:07:40 +00:00
Václav Slavík
817270659e initial version of UTF-8 strings representation (still converting to wchar_t* a lot); it has to be explicitly enabled with --enable-utf8 for now
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45433 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-12 21:15:07 +00:00
Vadim Zeitlin
1748289348 added our own implementation of strto[u]ll() if the system doesn't have one (patch 1696533)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45393 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-11 00:12:54 +00:00
Václav Slavík
05f32fc39e don't crash if (char*)c_str() is used twice in a row on the same string and both pointers are used at the same time
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45389 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-10 19:13:52 +00:00
Stefan Csomor
8116a0c55e correcting include style
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45378 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-10 12:23:44 +00:00
Václav Slavík
132276cf0d fix crash in ~wxString with global wxString objects: temporarily move conversion buffers from a hash to wxString
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45335 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-08 17:52:00 +00:00
Václav Slavík
6c4ebcda60 STL build compilation fix
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45292 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-07 09:25:07 +00:00
Václav Slavík
11aac4baa6 provide both const char* and const wchar_t* implicit conversion of wxCStrData regardless of the build type
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45262 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 21:28:14 +00:00
Václav Slavík
8a540c887c made wxString::Replace, Matches and Find work with any form of string argument
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45249 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 08:35:39 +00:00
Václav Slavík
e8f5903971 build fixes after previous commit
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45245 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-04 11:40:36 +00:00
Václav Slavík
04abe4bc8f cleanup of wxString ctors and operator=: made both char* and wchar_t* versions available, regardless of the build
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45242 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-03 20:29:42 +00:00
Václav Slavík
a7ea63e21f split string.{h,cpp} into {string,stringimpl,arrstr}.{h,cpp} to make the files more managable
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45098 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-28 11:35:07 +00:00
Václav Slavík
a962cdf410 re-enabled using std::string for wxStringImpl if wxUSE_STL again
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45095 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-28 09:37:34 +00:00
Václav Slavík
8f93a29f8e Preparing wxString for UTF-8 representation:
1) split into wxStringImpl class that has std::string-like API and operates on char* or wchar_t* data and wxString class that provides Unicode iterators and indexes
2) added both char* and wchar_t* versions of many wxString methods to avoid having to use _T()


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-26 20:28:04 +00:00
Václav Slavík
2233af93b0 remove wxStringBase::AllocCopy(), it wasn't used anywhere
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45053 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-25 19:46:05 +00:00
Václav Slavík
76046d7390 compilation fix after STL fixes if 2.8 compatibility is enabled
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44967 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-20 08:14:06 +00:00
Václav Slavík
992527a573 fixed compilation if wxUSE_STL=1
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44959 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-19 19:23:33 +00:00
Vadim Zeitlin
abbb59e8eb added wxJoin and wxSplit functions (modified patch 1638950)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-18 14:43:41 +00:00