diff options
Diffstat (limited to 'utilities.cpp')
-rw-r--r-- | utilities.cpp | 81 |
1 files changed, 55 insertions, 26 deletions
diff --git a/utilities.cpp b/utilities.cpp index 8349430..b7475f6 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -164,7 +164,7 @@ const int Stricmp(const TCHAR *str, const TCHAR *substr) return i; } - +/* const int Stristr(const TCHAR *str, const TCHAR *substr) { int i = 0; @@ -182,36 +182,65 @@ const int Stristr(const TCHAR *str, const TCHAR *substr) return i; } - +*/ TCHAR* ReqGetText(DBEVENTINFO* dbei) { if ( !dbei->pBlob ) return 0; - if ( dbei->flags & DBEF_UTF ) // UTF only - { - char * ptr=(char *)&dbei->pBlob[sizeof(DWORD)*2]; - int len=dbei->cbBlob-sizeof(DWORD)*2; - int i=0; + char * ptr=(char *)&dbei->pBlob[sizeof(DWORD)*2]; + int len=dbei->cbBlob-sizeof(DWORD)*2; + int i=0; - while(len&&(i<4)) - { - if(!ptr[0]) i++; - ptr++; - len--; - }; - - if(len){ - char * tstr=(char *)mir_alloc(len+1); - memcpy(tstr, ptr, len); - tstr[len]=0; - WCHAR* msg = NULL; - //mir_utf8decodecp( tstr, egt->codepage, &msg ); - msg=mir_utf8decodeW(tstr); - mir_free(tstr); - return (TCHAR *)msg; - }; - - } + while(len&&(i<4)) + { + if(!ptr[0]) i++; + ptr++; + len--; + }; + + if(len) + { + char * tstr=(char *)mir_alloc(len+1); + memcpy(tstr, ptr, len); + tstr[len]=0; + WCHAR* msg = NULL; + msg=(dbei->flags&DBEF_UTF)?mir_utf8decodeW(tstr):mir_a2u(tstr); + mir_free(tstr); + return (TCHAR *)msg; + }; return 0; } + + +BOOL IsUrlContains(TCHAR * Str) +{ + const int CountUrl=11; + const TCHAR URL[CountUrl][5]= + { + _T("http"), + _T("www"), + _T(".ru"), + _T(".com"), + _T(".de"), + _T(".cz"), + _T(".org"), + _T(".net"), + _T(".su"), + _T(".ua"), + _T(".tv") + }; + + if(Str&&_tcslen(Str)>0) { + TCHAR *StrLower = NEWTSTR_MALLOC(Str); + CharLowerBuff(StrLower, lstrlen(StrLower)); + for (int i=0; i<CountUrl; i++) + if(_tcsstr (StrLower, URL[i])) + { + mir_free(StrLower); + return 1; + } + mir_free(StrLower); + } + return 0; +}
\ No newline at end of file |