summaryrefslogtreecommitdiff
path: root/plugins/PluginUpdater/src/Compat/compat.h
diff options
context:
space:
mode:
authorVadim Dashevskiy <watcherhd@gmail.com>2014-07-27 08:39:37 +0000
committerVadim Dashevskiy <watcherhd@gmail.com>2014-07-27 08:39:37 +0000
commit6071a68cf1829b79f88270d16cb534865529c92c (patch)
tree2db5c27c61fb1f5b88d6516d181c7b6a082b3942 /plugins/PluginUpdater/src/Compat/compat.h
parent7dfa4fde6c5111aa9a761fb6d535fcd904e91805 (diff)
temporary rollback
git-svn-id: http://svn.miranda-ng.org/main/trunk@9964 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/PluginUpdater/src/Compat/compat.h')
-rw-r--r--plugins/PluginUpdater/src/Compat/compat.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/plugins/PluginUpdater/src/Compat/compat.h b/plugins/PluginUpdater/src/Compat/compat.h
index 26e807f478..6afc901e17 100644
--- a/plugins/PluginUpdater/src/Compat/compat.h
+++ b/plugins/PluginUpdater/src/Compat/compat.h
@@ -76,10 +76,9 @@ __forceinline INT_PTR Options_AddPage(WPARAM wParam, OPTIONSDIALOGPAGE *odp)
return CallService("Opt/AddPage", wParam, (LPARAM)odp);
}
-char *bin2hex(const void *pData, size_t len, char *dest);
+char* bin2hex(const void *pData, size_t len, char *dest);
char *rtrim(char *str);
int CreatePathToFileT(const TCHAR *ptszPath);
-int wildcmpit(const WCHAR *name, const WCHAR *mask);
#define NEWTSTR_ALLOCA(A) (A == NULL)?NULL:_tcscpy((TCHAR*)alloca((_tcslen(A)+1) *sizeof(TCHAR)), A)
@@ -125,4 +124,23 @@ int __forceinline PUDeletePopup(HWND hWndPopup)
#define _qtoupper(_c) (((_c) >= 'a' && (_c) <= 'z')?((_c)-('a'+'A')):(_c))
+int __forceinline wildcmpit(const WCHAR *name, const WCHAR *mask)
+{
+ if (name == NULL || mask == NULL)
+ return false;
+ const WCHAR* last = NULL;
+ for (;; mask++, name++) {
+ if (*mask != '?' && _qtoupper(*mask) != _qtoupper(*name)) break;
+ if (*name == '\0') return ((BOOL)!*mask);
+ }
+ if (*mask != '*') return FALSE;
+ for (;; mask++, name++) {
+ while(*mask == '*') {
+ last = mask++;
+ if (*mask == '\0') return ((BOOL)!*mask); /* true */
+ }
+ if (*name == '\0') return ((BOOL)!*mask); /* *mask == EOS */
+ if (*mask != '?' && _qtoupper(*mask) != _qtoupper(*name)) name -= (size_t)(mask - last) - 1, mask = last;
+ }
+}