1 // TortoiseSVN - a Windows shell extension for easy version control
\r
3 // Copyright (C) 2003-2008 - TortoiseSVN
\r
5 // This program is free software; you can redistribute it and/or
\r
6 // modify it under the terms of the GNU General Public License
\r
7 // as published by the Free Software Foundation; either version 2
\r
8 // of the License, or (at your option) any later version.
\r
10 // This program is distributed in the hope that it will be useful,
\r
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 // GNU General Public License for more details.
\r
15 // You should have received a copy of the GNU General Public License
\r
16 // along with this program; if not, write to the Free Software Foundation,
\r
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
\r
22 #define _tcswildcmp wcswildcmp
\r
24 #define _tcswildcmp strwildcmp
\r
29 * Performs a wild card compare of two strings.
\r
30 * \param wild the wild card string
\r
31 * \param string the string to compare the wild card to
\r
32 * \return TRUE if the wild card matches the string, 0 otherwise
\r
35 * if (strwildcmp("bl?hblah.*", "bliblah.jpeg"))
\r
36 * printf("success\n");
\r
38 * printf("not found\n");
\r
39 * if (strwildcmp("bl?hblah.*", "blabblah.jpeg"))
\r
40 * printf("success\n");
\r
42 * printf("not found\n");
\r
44 * The output of the above code would be:
\r
50 int strwildcmp(const char * wild, const char * string);
\r
51 int wcswildcmp(const wchar_t * wild, const wchar_t * string);
\r
56 * string helper functions
\r
62 static BOOL WildCardMatch(const CString& wildcard, const CString& string);
\r
63 static CString LinesWrap(const CString& longstring, int limit = 80, bool bCompactPaths = false);
\r
64 static CString WordWrap(const CString& longstring, int limit = 80, bool bCompactPaths = false);
\r
67 * Removes all '&' chars from a string.
\r
69 static void RemoveAccelerators(CString& text);
\r
72 * Writes an ASCII CString to the clipboard in CF_TEXT format
\r
74 static bool WriteAsciiStringToClipboard(const CStringA& sClipdata, LCID lcid, HWND hOwningWnd = NULL);
\r
76 * Writes a String to the clipboard in both CF_UNICODETEXT and CF_TEXT format
\r
78 static bool WriteAsciiStringToClipboard(const CStringW& sClipdata, HWND hOwningWnd = NULL);
\r
81 * Writes an ASCII CString to the clipboard in TSVN_UNIFIEDDIFF format, which is basically the patch file
\r
82 * as a ASCII string.
\r
84 static bool WriteDiffToClipboard(const CStringA& sClipdata, HWND hOwningWnd = NULL);
\r
87 * Reads the string \text from the file \path in utf8 encoding.
\r
89 static bool ReadStringFromTextFile(const CString& path, CString& text);
\r
93 * Writes the string \text to the file \path, either in utf16 or utf8 encoding,
\r
94 * depending on the \c bUTF8 param.
\r
96 static bool WriteStringToTextFile(const std::wstring& path, const std::wstring& text, bool bUTF8 = true);
\r
99 * Compares strings while trying to parse numbers in it too.
\r
100 * This function can be used to sort numerically.
\r
101 * For example, strings would be sorted like this:
\r
105 * If a normal text like comparison is used for sorting, the Version_10.0.2
\r
106 * would not be the last in the above example.
\r
108 static int CompareNumerical(LPCTSTR str1, LPCTSTR str2);
\r