[Winmerge-svn] SF.net SVN: winmerge:[5973] trunk
Windows visual diff and merge for files and directories
Brought to you by:
christianlist,
grimmdp
From: <sdo...@us...> - 2008-09-25 15:01:07
|
Revision: 5973 http://winmerge.svn.sourceforge.net/winmerge/?rev=5973&view=rev Author: sdottaka Date: 2008-09-25 15:00:51 +0000 (Thu, 25 Sep 2008) Log Message: ----------- PATCH: [ 1991259 ] Convert editor find/replace to use PCRE regexps - case-sensitive regexp search didn't work. Modified Paths: -------------- trunk/Docs/Users/ChangeLog.txt trunk/Src/editlib/ccrystaltextview.cpp Modified: trunk/Docs/Users/ChangeLog.txt =================================================================== --- trunk/Docs/Users/ChangeLog.txt 2008-09-23 22:12:35 UTC (rev 5972) +++ trunk/Docs/Users/ChangeLog.txt 2008-09-25 15:00:51 UTC (rev 5973) @@ -17,6 +17,7 @@ (#2098626) BugFix: Customized colors weren't used in some areas (#2110218) BugFix: Zip files were extracted into wrong folder (#2110350) + BugFix: Case-sensitive regexp search didn't work (#1991259) Translation updates: - German (r5934) - Russian (#2067785) Modified: trunk/Src/editlib/ccrystaltextview.cpp =================================================================== --- trunk/Src/editlib/ccrystaltextview.cpp 2008-09-23 22:12:35 UTC (rev 5972) +++ trunk/Src/editlib/ccrystaltextview.cpp 2008-09-25 15:00:51 UTC (rev 5973) @@ -4533,22 +4533,21 @@ } int ovector[30]; - char compString[200] = {0}; + int compStringBufLen = _tcslen(pszFindWhere) * sizeof(TCHAR) + 1; + char *compString = new char[compStringBufLen]; int stringLen = 0; - TCHAR * tempName = _tcsdup(pszFindWhere); // Create temp copy for conversions - TCHAR * cmpStr = _tcsupr(tempName); #ifdef UNICODE - stringLen = TransformUcs2ToUtf8(cmpStr, _tcslen(cmpStr), - compString, sizeof(compString)); + stringLen = TransformUcs2ToUtf8(pszFindWhere, _tcslen(pszFindWhere), + compString, compStringBufLen); + compString[stringLen] = '\0'; #else - strcpy(compString, cmpStr); + strncpy(compString, pszFindWhere, compStringBufLen); stringLen = strlen(compString); #endif int result = pcre_exec(regexp, pe, compString, stringLen, 0, 0, ovector, 30); - free(tempName); if (result >= 0) { @@ -4559,10 +4558,11 @@ pos = ovector[0]; nLen = ovector[1] - ovector[0]; #endif - } + } else pos = -1; + delete [] compString; pcre_free(regexp); pcre_free(pe); return pos; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |