Commit Graph

265 Commits

Author SHA1 Message Date
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
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
Václav Slavík
89360a8c87 string iterator's operator- should return difference_type, not size_t or unsigned
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45347 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-09 08:18:33 +00:00
Václav Slavík
1bb592b878 removed spurious semicolons
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45346 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-09 06:50:28 +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
Vadim Zeitlin
cc5bd48eff added operator-(const wxChar *, const wxCStrData&) to allow compilation of the code doing "p - s.c_str()" where p is a pointer into the string s
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45290 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-06 22:56:06 +00:00
Vadim Zeitlin
9aee0061fe wxCStrData must be dllexport'd now that it has non-inline methods
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45288 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-06 22:48:54 +00:00
Vadim Zeitlin
30d560f4cf wxString::[const_]iterator operators -= and += should return reference and not iterator object
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45266 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 21:56:21 +00:00
Vadim Zeitlin
f2a1b1bd23 added overloads taking pairs of const char/wchar_t pointers for wxString methods working with const_iterators for backwards compatibility with old wxString::const_iterator which used to be convertible to/from const wxChar *
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45265 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-05 21:55:29 +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
50eeb96fbe compilation fix for BCC5.5
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-03 10:06:08 +00:00
Václav Slavík
50e02008a0 added some unsigned char overloads to wxString for compatibility
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45216 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-04-02 18:13:48 +00:00
Václav Slavík
ef0f138756 added char_str() and wchar_str() methods to wxString for obtaining char*/wchar_t* pointers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45175 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-30 20:09:02 +00:00
Václav Slavík
759d51f229 fixed warning about comparing int to size_t
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45125 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-29 19:10:43 +00:00
Václav Slavík
f4c90fdfaf added wxCStrData::operator- for compatibility with expressions like 'c_str() + n - 2'
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-29 18:42:04 +00:00
Vadim Zeitlin
b7d403419e added wxString::operator[](int) as it's commonly used in code working with file/stream read functions which have int return value
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45100 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-28 18:25:25 +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
92d21a8a07 added missing operators to wxString::reverse_iterator
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45059 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-26 08:25:47 +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
Vadim Zeitlin
1a81eea8d4 also removed WXDLLIMPEXP_BASE from friend declaration of wxCStrData
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45029 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-23 12:27:51 +00:00
Vadim Zeitlin
bb650010c8 removed dll export declaration for wxCStrData: it's unneeded because the class is fully inline and creates problems with mingw32 3.4.2 which wanrs about functions defined locally after being declared with dll linkage and then fails to link wxBase DLL
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45027 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-23 01:45:17 +00:00
Vadim Zeitlin
ccd4deab6b fix DLL build with MSVC: it wasn't happy that some functions of a template class were not implemented, so get rid of FromCStrData() and implement its logic in one of the 2 derived classes ctors instead
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45026 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-23 00:04:15 +00:00
Václav Slavík
d18c8d3d94 reimplemented wx[W]CharBuffer using templates
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45025 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-22 23:31:08 +00:00
Vadim Zeitlin
17709275f9 added explicit conversion of wxCStrData to const void * to resolve ambiguity between const char * and const unsigned char * conversion when passing s.c_str() to e.g. file output functions
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45024 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-22 19:24:41 +00:00
Vadim Zeitlin
fb52c2b671 added macros to avoid code repetition when defining comparison operators; use them to replace existing operators in wxUniChar and wxUniCharRef (fixing bug in the operator== and != of the latter) and added comparison operators for const wxChar * and wxCStrData which are needed to compile existing code comparing pointers with s.c_str()
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-22 18:03:02 +00:00
Vadim Zeitlin
dbea442a15 added wxCStrData conversion to const unsigned char * too
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45018 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-22 17:28:00 +00:00
Vadim Zeitlin
b77afb41f3 add operator+=(unsigned char) for backwards compatibility and because we generally handle both signed and unisnged chars everywhere; added wxString(const wxCStrData&, size_t) ctor to resolve ambiguity between wxString(const char *, size_t) and wxString(const unsigned char *, size_t) and wxString(const wxString&, size_t) to resolved embiguity for string parameter of ctor
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45017 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-22 17:26:09 +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
Václav Slavík
c7554da8a9 tagged IsEmpty(), Strlen() and Stricmp() global functions as deprecated, 2.8-compat (they're documented as compatibility only)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-19 16:47:10 +00:00
Václav Slavík
e3f6cbd99c split wxchar.h into several smaller headers
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-19 14:45:38 +00:00
Vadim Zeitlin
c8eb817283 added wxString::operator=(const wxCStrData&) to make it possible to compile code like "wxString s = s.c_str() + 1" again (also fixes wxGTK1 compilation)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44925 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-19 13:19:56 +00:00
Vadim Zeitlin
414b7b4016 added ctor for wxChar/WCharBuffer from wxCStrData in ANSI/Unicode build to make it possible to compile code like "wxCharBuffer buf = s.c_str()" again (in particular, fixes wxGTK1 compilation)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44924 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-19 13:18:02 +00:00
Vadim Zeitlin
c1df0a3b58 add overloads of wxString and wxCStrData::operator[] taking long, for consistency with std::string classes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-19 00:06:17 +00:00
Vadim Zeitlin
acf0c9acfc added wxCStrData::operator+(long) overload (this fixes some compilation errors in wxGTK1 and probably not only there)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-18 23:59:09 +00:00
Václav Slavík
c9f7896861 first phase of transition to unified Unicode build:
1. changed c_str() to return wxCStrData (implicitly convertible to wxChar*)
2. added template type-safe wrappers for vararg functions
3. added wxUniChar class representing single Unicode character
4. changed wxString::operator[] and wxString::iterator to return wxUniChar


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44865 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-17 10:26:10 +00:00
Václav Slavík
d8a4b666cf deprecated wxString::GetWriteBuf() and friends in favour of wxStringBuffer
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44637 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-07 20:01:52 +00:00
Vadim Zeitlin
c1dc9f8394 removed WXWIN_COMPATIBILITY_2_4 from common and wxMSW files (patch 1675546)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44625 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-03-07 11:35:04 +00:00
Václav Slavík
d7330233fd allow creating wxString from char*, assigning to it from char* and comparing with char* values
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@44543 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2007-02-20 20:05:43 +00:00
Michael Wetherell
8bb9d852a3 Move the #if disabling wxUSE_STD_STRING for watcom/dmc/vc5 into setup.h so
that users can edit them easily.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43179 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-11-08 00:09:15 +00:00
Vadim Zeitlin
0797d64777 forcefully disable wxUSE_STD_STRING and wxUSE_STL for Digital Mars and Open Watcom
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42790 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-30 23:09:39 +00:00
Vadim Zeitlin
d6718dd17b added wxString::ToLongLong() and ToULongLong() (feature request 1290937)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42581 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-28 16:46:03 +00:00
Vadim Zeitlin
13874b5c7f deprecate wxSTRING_MAXLEN in favour of wxString::npos
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@42569 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-10-28 14:06:27 +00:00
Vadim Zeitlin
639e001d87 removed operator>>(istream&, wxString&) -- it's better to not have it at all than have an empty function which compiles but doesn't work
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41338 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-09-20 23:59:17 +00:00
Vadim Zeitlin
3affcd078b added wxString::EndsWith() (patch 1483049)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@39069 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
2006-05-06 17:27:52 +00:00