summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile28
-rw-r--r--headers.h4
-rw-r--r--utilities.cpp41
3 files changed, 57 insertions, 16 deletions
diff --git a/Makefile b/Makefile
index 07380ee..e4d4600 100644
--- a/Makefile
+++ b/Makefile
@@ -1,12 +1,24 @@
-all:
- i686-pc-mingw32-g++ -c -DBUILD_DLL -D UNICODE -D _UNICODE *.cpp -I../../include -I/usr/i686-pc-mingw32/usr/include -I. -I ../miranda-im/miranda/include -w -mwin32 -mwindows -mdll -march=i686 -msse -O2 -pipe
- i686-pc-mingw32-windres -i stopspam.rc -o resources.o
- i686-pc-mingw32-gcc -shared -o stopspam.dll *.o -Wl,-O1,-s -lstdc++
- upx -9 stopspam.dll
+CFLAGS=-Os -fomit-frame-pointer -pipe -msse -march=i686 -mdll -mwindows -I../miranda-im/miranda/include -D UNICODE -D _UNICODE
+CXXFLAGS=${CFLAGS}
+LDFLAGS=-static-libgcc -Wl,-O1 -shared
+CPPFLAGS =
+CC=i686-pc-mingw32-gcc
+CXX=i686-pc-mingw32-g++
+STRIP=i686-pc-mingw32-strip
+WINDRES=i686-pc-mingw32-windres
+LD=i686-pc-mingw32-ld
+LNK_COMMON=-lkernel32
+MAINOBJS=stopspam.o eventhooker.o init.o options.o utilities.o
+RESOURCES=stopspam.rc
+all: main
+main: $(MAINOBJS)
+ $(WINDRES) -i $(RESOURCES)
+ $(CXX) $(MAINOBJS) $(LNK_COMMON) $(LDFLAGS) -o stopspam.dll
+ $(STRIP) stopspam.dll
+ upx -9 stopspam.dll
clean:
rm *.o
-
-clean-all:
- rm *.o *.dll
+ rm stopspam.dll
+
diff --git a/headers.h b/headers.h
index e762a14..679c6fc 100644
--- a/headers.h
+++ b/headers.h
@@ -7,7 +7,7 @@
#include <sstream>
#include<fstream>
-//#include <boost/scoped_array.hpp>
+
#include <newpluginapi.h>
#include <m_database.h>
#include <m_protosvc.h>
@@ -18,7 +18,7 @@
#include <m_skin.h>
#include <m_button.h>
#include <m_contacts.h>
-//#define VARIABLES_NOHELPER
+
#include <m_variables.h>
#include <m_folders.h>
diff --git a/utilities.cpp b/utilities.cpp
index 92284d1..7badf39 100644
--- a/utilities.cpp
+++ b/utilities.cpp
@@ -90,6 +90,7 @@ void DeleteCListGroupsByName(TCHAR* szGroupName)
DBWriteContactSettingByte(NULL, "CList", "ConfirmDelete",ConfirmDelete);
}
+
void RemoveExcludedUsers()
{
HANDLE hContact;
@@ -113,7 +114,16 @@ void RemoveExcludedUsers()
plist = first;
while(plist->hContact != INVALID_HANDLE_VALUE)
{
- CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0);
+ std::string proto=DBGetContactSettingStringPAN_A(plist->hContact,"Protocol","p","");
+ UINT status = CallProtoService(proto.c_str(), PS_GETSTATUS, 0, 0);
+
+ if(status>= ID_STATUS_CONNECTING && status <= ID_STATUS_OFFLINE){
+ LogSpamToFile(plist->hContact, _T("Mark for delete"));
+ DBWriteContactSettingByte(plist->hContact,"CList","Delete", 1);
+ }else{
+ LogSpamToFile(plist->hContact, _T("Deleted"));
+ CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0);
+ };
tmp = plist;
plist = plist->next;
delete tmp;
@@ -147,9 +157,18 @@ void RemoveTemporaryUsers()
plist = first;
while(plist->hContact != INVALID_HANDLE_VALUE)
{
- LogSpamToFile(plist->hContact, _T("Deleted"));
- CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0);
- tmp = plist;
+ std::string proto=DBGetContactSettingStringPAN_A(plist->hContact,"Protocol","p","");
+ UINT status = CallProtoService(proto.c_str(), PS_GETSTATUS, 0, 0);
+
+ if(status>= ID_STATUS_CONNECTING && status <= ID_STATUS_OFFLINE){
+ LogSpamToFile(plist->hContact, _T("Mark for delete"));
+ DBWriteContactSettingByte(plist->hContact,"CList","Delete", 1);
+ }else{
+ LogSpamToFile(plist->hContact, _T("Deleted"));
+ CallService(MS_DB_CONTACT_DELETE, (WPARAM)plist->hContact, 0);
+ };
+
+ tmp = plist;
plist = plist->next;
delete tmp;
}
@@ -271,6 +290,7 @@ tstring GetContactUid(HANDLE hContact, tstring Protocol)
{
tstring Uid;
TCHAR dUid[32]={0};
+ char aUid[32]={0};
char *szProto = mir_utf8encodeW(Protocol.c_str());
CONTACTINFO ci;
ZeroMemory((void *)&ci, sizeof(ci));
@@ -287,7 +307,14 @@ tstring GetContactUid(HANDLE hContact, tstring Protocol)
mir_free((void *)ci.pszVal);
break;
case CNFT_DWORD:
- _itow_s(ci.dVal,dUid,32,10);
+#if defined(_MSC_VER) && _MSC_VER >= 1300
+
+ _itoa_s(ci.dVal,aUid,32,10);
+#else
+ _itoa(ci.dVal,aUid,10);
+
+#endif
+ OemToChar(aUid, dUid);
Uid=dUid;
break;
default:
@@ -346,4 +373,6 @@ void LogSpamToFile(HANDLE hContact, tstring message)
mir_free(buf);
file.close();
-} \ No newline at end of file
+
+}
+