Thread: [Winmerge-svn] SF.net SVN: winmerge:[6870] trunk/Src/Common/UnicodeString.cpp
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <ki...@us...> - 2009-06-26 10:30:08
|
Revision: 6870 http://winmerge.svn.sourceforge.net/winmerge/?rev=6870&view=rev Author: kimmov Date: 2009-06-26 10:30:06 +0000 (Fri, 26 Jun 2009) Log Message: ----------- Fix exception when trimming empty string. Modified Paths: -------------- trunk/Src/Common/UnicodeString.cpp Modified: trunk/Src/Common/UnicodeString.cpp =================================================================== --- trunk/Src/Common/UnicodeString.cpp 2009-06-25 19:56:52 UTC (rev 6869) +++ trunk/Src/Common/UnicodeString.cpp 2009-06-26 10:30:06 UTC (rev 6870) @@ -70,7 +70,7 @@ { String s1(str1); String s2(str2); - String::size_type i = 0; + String::size_type i = 0; for (i = 0; i < s1.length(); i++) s1[i] = _totlower(s1[i]); for (i = 0; i < s2.length(); i++) @@ -86,6 +86,9 @@ */ String string_trim_ws(const String & str) { + if (str.empty()) + return str; + String result(str); String::iterator it = result.begin(); while (_istspace(*it)) @@ -110,6 +113,9 @@ */ String string_trim_ws_begin(const String & str) { + if (str.empty()) + return str; + String result(str); String::iterator it = result.begin(); while (_istspace(*it)) @@ -127,6 +133,9 @@ */ String string_trim_ws_end(const String & str) { + if (str.empty()) + return str; + String result(str); String::iterator it = result.end() - 1; while (_istspace(*it)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ki...@us...> - 2009-06-30 08:15:38
|
Revision: 6884 http://winmerge.svn.sourceforge.net/winmerge/?rev=6884&view=rev Author: kimmov Date: 2009-06-30 08:15:17 +0000 (Tue, 30 Jun 2009) Log Message: ----------- Check string end/begin/empty string more carefully when stripping whitespace. This fixes possible crash with VS2008. Modified Paths: -------------- trunk/Src/Common/UnicodeString.cpp Modified: trunk/Src/Common/UnicodeString.cpp =================================================================== --- trunk/Src/Common/UnicodeString.cpp 2009-06-30 08:12:06 UTC (rev 6883) +++ trunk/Src/Common/UnicodeString.cpp 2009-06-30 08:15:17 UTC (rev 6884) @@ -91,14 +91,17 @@ String result(str); String::iterator it = result.begin(); - while (_istspace(*it)) + while (it != result.end() && _istspace(*it)) ++it; if (it != result.begin()) result.erase(result.begin(), it); + if (result.empty()) + return result; + it = result.end() - 1; - while (_istspace(*it)) + while (it != result.begin() &&_istspace(*it)) --it; if (it != result.end() - 1) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jt...@us...> - 2010-05-16 15:19:22
|
Revision: 7170 http://winmerge.svn.sourceforge.net/winmerge/?rev=7170&view=rev Author: jtuc Date: 2010-05-16 15:19:15 +0000 (Sun, 16 May 2010) Log Message: ----------- string_replace(): Fix infinite loop if (replace) contains an occurrence of (find) at a position greater than the length of (find). Modified Paths: -------------- trunk/Src/Common/UnicodeString.cpp Modified: trunk/Src/Common/UnicodeString.cpp =================================================================== --- trunk/Src/Common/UnicodeString.cpp 2010-05-16 14:44:19 UTC (rev 7169) +++ trunk/Src/Common/UnicodeString.cpp 2010-05-16 15:19:15 UTC (rev 7170) @@ -57,11 +57,12 @@ */ void string_replace(String &target, const String &find, const String &replace) { - const std::string::size_type replace_len = find.length(); - std::string::size_type pos = 0; + const String::size_type find_len = find.length(); + const String::size_type replace_len = replace.length(); + String::size_type pos = 0; while ((pos = target.find(find, pos)) != String::npos) { - target.replace(pos, replace_len, replace); + target.replace(pos, find_len, replace); pos += replace_len; } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sdo...@us...> - 2011-06-04 07:24:27
|
Revision: 7535 http://winmerge.svn.sourceforge.net/winmerge/?rev=7535&view=rev Author: sdottaka Date: 2011-06-04 07:24:21 +0000 (Sat, 04 Jun 2011) Log Message: ----------- Fix the following link error "LIBC.lib(_wctype.obj) : error LNK2005: _iswspace already defined in UnicodeString.obj" See the following link: http://blog.unixwiz.net/2004/11/maddening_vc7_l.html Modified Paths: -------------- trunk/Src/Common/UnicodeString.cpp Modified: trunk/Src/Common/UnicodeString.cpp =================================================================== --- trunk/Src/Common/UnicodeString.cpp 2011-06-04 07:05:41 UTC (rev 7534) +++ trunk/Src/Common/UnicodeString.cpp 2011-06-04 07:24:21 UTC (rev 7535) @@ -26,6 +26,7 @@ // String formatting code originally from Paul Senzee: // http://www.senzee5.com/2006/05/c-formatting-stdstring.html +#include <windows.h> #include <tchar.h> #include <stdarg.h> #include "UnicodeString.h" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |