summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README6
-rw-r--r--messages.cpp4
-rw-r--r--new_gpg.vcxproj16
-rw-r--r--utilities.cpp55
-rw-r--r--utilities.h1
5 files changed, 44 insertions, 38 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..7c47ae7
--- /dev/null
+++ b/README
@@ -0,0 +1,6 @@
+* Build Dependencies
+ 1. boost (http://www.boost.org/)
+ 2. utf8cpp (http://utfcpp.sourceforge.net/)
+ 3. c++ compiller (because of miranda have compiled with MSVC, only msvc compiled builds working fine (i have no success with mingw, please report your result :) ))
+* Runtime Dependencies
+ 1. MIranda IM at least 0.8 (0.9 recommended for extended jabber integration)
diff --git a/messages.cpp b/messages.cpp
index 2e3c78f..40db55c 100644
--- a/messages.cpp
+++ b/messages.cpp
@@ -245,7 +245,7 @@ int RecvMsgSvc(WPARAM w, LPARAM l)
}
mir_free(caps);
if(str.find(_T("GPG_Key_Auto_Exchange:0")) != string::npos)
- CallContactService(hContact, PSS_MESSAGE, (WPARAM)PREF_UTF, (LPARAM)"-----PGP KEY REQUEST-----");
+ CallContactService(hContact, PSS_MESSAGE, (WPARAM)0, (LPARAM)"-----PGP KEY REQUEST-----");
}
}
}
@@ -512,7 +512,7 @@ int RecvMsgSvc(WPARAM w, LPARAM l)
{
string str = pre->szMessage;
mir_free((void**)pre->szMessage);
- str.insert(0, "Failed to decrypt GPG encrypted message.\nReceived unencrypted message:\n");
+ str.insert(0, "Failed to decrypt GPG encrypted message.\nMessage body for manual decryption:\n");
debuglog<<time_str()<<": info: Failed to decrypt GPG encrypted message.\n";
pre->szMessage = mir_strdup(str.c_str());
return CallService(MS_PROTO_CHAINRECV, w, (LPARAM)ccs);
diff --git a/new_gpg.vcxproj b/new_gpg.vcxproj
index 7c5dd9a..69bf149 100644
--- a/new_gpg.vcxproj
+++ b/new_gpg.vcxproj
@@ -477,7 +477,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;C:\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;X:\temp\windows\libs\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -501,7 +501,7 @@
<Link>
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies) libboost_thread-vc100-mt-sgd-1_46_1.lib</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <AdditionalLibraryDirectories>C:\Boost\lib-debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>X:\temp\windows\libs\Boost\lib-debug;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AssemblyDebug>true</AssemblyDebug>
<GenerateMapFile>false</GenerateMapFile>
@@ -527,7 +527,7 @@
</Midl>
<ClCompile>
<Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;C:\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;X:\temp\windows\libs\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;TESTPLUG_EXPORTS;_CRT_SECURE_NO_WARNINGS;_UNICODE;UNICODE;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
@@ -551,7 +551,7 @@
<Link>
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <AdditionalLibraryDirectories>C:\Boost\lib-debug-x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>X:\temp\windows\libs\Boost\lib-debug-x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AssemblyDebug>true</AssemblyDebug>
<GenerateMapFile>false</GenerateMapFile>
@@ -685,7 +685,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;C:\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;X:\temp\windows\libs\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -708,7 +708,7 @@
<Link>
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <AdditionalLibraryDirectories>C:\Boost\lib-release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>X:\temp\windows\libs\Boost\lib-release;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>NotSet</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
@@ -739,7 +739,7 @@
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<OmitFramePointers>true</OmitFramePointers>
<WholeProgramOptimization>true</WholeProgramOptimization>
- <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;C:\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>x:\temp\windows\libs\utf8cpp\include;X:\temp\windows\libs\Boost\include\boost-1_46;x:\install\git\miranda\miranda-im\miranda\include;x:\install\git\miranda\mim_plugs;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
@@ -762,7 +762,7 @@
<Link>
<AdditionalDependencies>shlwapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<SuppressStartupBanner>true</SuppressStartupBanner>
- <AdditionalLibraryDirectories>C:\Boost\lib-release-x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+ <AdditionalLibraryDirectories>X:\temp\windows\libs\Boost\lib-release-x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>false</GenerateDebugInformation>
<SubSystem>NotSet</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
diff --git a/utilities.cpp b/utilities.cpp
index 115c2bf..0ba8e12 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -272,9 +272,12 @@ int OnPreBuildContactMenu(WPARAM w, LPARAM l)
list<wstring> transfers;
+extern bool bFileTransfers;
int onProtoAck(WPARAM w, LPARAM l)
{
+ if(!bFileTransfers)
+ return 0;
ACKDATA *ack=(ACKDATA*)l;
CCSDATA *ccs=(CCSDATA*)ack->lParam;
if (ack->type!=ACKTYPE_FILE)
@@ -292,19 +295,21 @@ int onProtoAck(WPARAM w, LPARAM l)
case ACKRESULT_SUCCESS:
{
TCHAR *filename = NULL;
-// if(f->szCurrentFile && f->szCurrentFile[0])
-// filename = mir_utf8decodeW(f->szCurrentFile);
- if(f->tszCurrentFile && f->tszCurrentFile[0])
- filename = mir_wstrdup(f->tszCurrentFile);
- if(!filename)
- break;
- TCHAR *temp = _wgetenv(_T("TEMP"));
- if(_tcsstr(filename, temp))
+ if(f->flags & PFTS_UNICODE)
{
- mir_free(filename);
- break;
+ if(f->tszCurrentFile && f->tszCurrentFile[0])
+ filename = mir_wstrdup(f->tszCurrentFile);
+ if(!filename)
+ return 0;
+ }
+ else
+ {
+ if(f->szCurrentFile && f->szCurrentFile[0])
+ filename = mir_utf8decodeT(f->szCurrentFile);
+ if(!filename)
+ return 0;
}
- else if(_tcsstr(filename, _T(".gpg"))) //decrypt it
+ if(_tcsstr(filename, _T(".gpg"))) //decrypt it
{ //process encrypted file
if(_waccess(f->tszCurrentFile, 0) == -1)
{
@@ -351,10 +356,11 @@ int onProtoAck(WPARAM w, LPARAM l)
return 0;
}
-
//from secureim partially
int onSendFile(WPARAM w, LPARAM l)
{
+ if(!bFileTransfers)
+ return CallService(MS_PROTO_CHAINSEND, w, l);
CCSDATA *ccs=(CCSDATA*)l;
if(isContactSecured(ccs->hContact))
{
@@ -364,6 +370,9 @@ int onSendFile(WPARAM w, LPARAM l)
{
if (_tcsstr(file[i],_T(".gpg")))
continue;
+ if(_waccess(file[i], 0) == -1)
+ if(errno == ENOENT)
+ return 0; //we do not want to send file unencrypted (sometimes ack have wrong info)
TCHAR *name = _tcsrchr(file[i],_T('\\'));
if( !name )
name = file[i];
@@ -383,7 +392,7 @@ int onSendFile(WPARAM w, LPARAM l)
mir_free(szKeyid);
mir_free(keyid);
cmd += _T(" -o \"");
- TCHAR *temp = _wgetenv(_T("TEMP"));
+ TCHAR *temp = _tgetenv(_T("TEMP"));
cmd += temp;
cmd += _T("\\");
cmd += file_out;
@@ -430,13 +439,15 @@ int onSendFile(WPARAM w, LPARAM l)
}
}
}
- mir_free(file[i]);
- file[i]=mir_wstrdup(path_out.c_str());
+// mir_free(file[i]);
+// file[i] = mir_tstrdup(path_out.c_str());
+ mir_realloc(file[i], path_out.length()*sizeof(TCHAR)+1);
+ _tcscpy(file[i], path_out.c_str());
delete [] file_out;
transfers.push_back(path_out);
}
}
- return CallService(ccs->szProtoService, w, l);
+ return CallService(MS_PROTO_CHAINSEND, w, l);
}
void storeOutput(HANDLE ahandle, string *output)
@@ -964,20 +975,10 @@ int returnNoError(HANDLE hContact) {
string toUTF8(wstring str)
{
string ustr;
- wstring tmpstr;
- utf8::replace_invalid(str.begin(), str.end(), back_inserter(tmpstr));
- utf8::utf16to8(tmpstr.begin(), tmpstr.end(), back_inserter(ustr));
+ utf8::utf16to8(str.begin(), str.end(), back_inserter(ustr));
return ustr;
}
-string toUTF8(string str)
-{
- string ustr;
- wstring tmpstr;
- utf8::replace_invalid(str.begin(), str.end(), back_inserter(tmpstr));
- utf8::utf16to8(tmpstr.begin(), tmpstr.end(), back_inserter(ustr));
- return ustr;
-}
wstring toUTF16(string str) //convert as much as possible
diff --git a/utilities.h b/utilities.h
index 58a23b9..bb4b459 100644
--- a/utilities.h
+++ b/utilities.h
@@ -32,7 +32,6 @@ bool isContactHaveKey(HANDLE hContact);
bool isGPGConfigured();
const bool StriStr(const char *str, const char *substr);
string toUTF8(wstring str);
-string toUTF8(string str);
wstring toUTF16(string str);
string get_random(int length);
string time_str();