summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nohtml/common.h2
-rw-r--r--nohtml/filter.cpp49
-rw-r--r--nohtml/nohtml.cpp1
-rw-r--r--nohtml/version.h4
4 files changed, 51 insertions, 5 deletions
diff --git a/nohtml/common.h b/nohtml/common.h
index 5d4f15e..6d64d27 100644
--- a/nohtml/common.h
+++ b/nohtml/common.h
@@ -44,7 +44,7 @@
#include <stdio.h>
#include <m_utils.h>
#include <m_updater.h>
-#include <m_popup.h>
+#include <m_yapp.h>
#define MODULE "nohtml"
diff --git a/nohtml/filter.cpp b/nohtml/filter.cpp
index 4fd57cd..4e7839c 100644
--- a/nohtml/filter.cpp
+++ b/nohtml/filter.cpp
@@ -30,7 +30,24 @@ int FilterSendMessage(WPARAM wParam, LPARAM lParam) {
if((options.apply_to & ATF_ALL)
|| ((options.apply_to & ATF_OTR) && ContactIsOTREncrypted(ccs->hContact)))
{
- if(ccs->wParam & PREF_UNICODE) {
+ if(ccs->wParam & PREF_UTF) {
+ int size = MultiByteToWideChar(CP_UTF8, 0, old_message, -1, 0, 0);
+ wchar_t *messagew = (wchar_t *)malloc(size * sizeof(wchar_t));
+ MultiByteToWideChar(CP_UTF8, 0, old_message, -1, messagew, size);
+ wchar_t* smsg=strip_carrots(messagew);
+ wchar_t* html_msg;
+ if(options.html) {
+ html_msg=bbcodes_to_html(smsg);
+ delete[] smsg;
+ } else
+ html_msg = smsg;
+
+ free(messagew);
+ size = WideCharToMultiByte(CP_UTF8, 0, html_msg, -1, 0, 0, 0, 0);
+ buf = (char *)malloc(size);
+ WideCharToMultiByte(CP_UTF8, 0, html_msg, -1, buf, size, 0, 0);
+ delete[] html_msg;
+ } else if(ccs->wParam & PREF_UNICODE) {
wchar_t *messagew = (wchar_t *)&old_message[strlen(old_message)+1];
wchar_t* smsg=strip_carrots(messagew);
wchar_t* html_msg;
@@ -83,7 +100,35 @@ int FilterRecvMessage(WPARAM wParam, LPARAM lParam) {
if((options.apply_to & ATF_ALL)
|| ((options.apply_to & ATF_OTR) && ContactIsOTREncrypted(ccs->hContact)))
{
- if(pre->flags & PREF_UNICODE) {
+ if(pre->flags & PREF_UTF) {
+ LOG("Recieved a utf8 message.");
+ int size = MultiByteToWideChar(CP_UTF8, 0, old_message, -1, 0, 0);
+ wchar_t *messagew = (wchar_t *)malloc(size * sizeof(wchar_t));
+ MultiByteToWideChar(CP_UTF8, 0, old_message, -1, messagew, size);
+
+ LOGW(messagew);
+ wchar_t* st_wbuf;
+ if(options.bbcodes)
+ {
+ LOG("Converting from html to bbcodes then stripping leftover html.(U)");
+ wchar_t* bbuf=html_to_bbcodes(messagew);
+ st_wbuf=strip_html(bbuf);
+ delete[] bbuf;
+ }
+ else
+ {
+ LOG("Stripping html.(U)");
+ st_wbuf=strip_html(messagew);
+ }
+ free(messagew);
+
+ //delete[] pre->szMessage; not necessary - done in server.cpp
+ buf=(char *)malloc(wcslen(st_wbuf)*3+3);
+ WideCharToMultiByte( CP_ACP, 0,st_wbuf, -1,buf,wcslen(st_wbuf)+1, NULL, NULL);
+ memcpy(&buf[strlen(buf)+1],st_wbuf,lstrlen(buf)*2+2);
+ delete[] st_wbuf;
+ pre->szMessage = buf;
+ } else if(pre->flags & PREF_UNICODE) {
LOG("Recieved a unicode message.");
wchar_t *messagew = (wchar_t *)&old_message[strlen(old_message)+1];
//wchar_t* wbuf=(wchar_t*)&pre->szMessage[lstrlen(pre->szMessage)+1];
diff --git a/nohtml/nohtml.cpp b/nohtml/nohtml.cpp
index cd83377..1bb84fb 100644
--- a/nohtml/nohtml.cpp
+++ b/nohtml/nohtml.cpp
@@ -62,6 +62,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam) {
update.szComponentName = pluginInfo.shortName;
update.pbVersion = (BYTE *)CreateVersionString(pluginInfo.version, szVersion);
update.cpbVersion = strlen((char *)update.pbVersion);
+ update.szBetaChangelogURL = "https://server.scottellis.com.au/websvn/log.php?repname=Miranda+Plugins&path=%2Fnohtml%2F&rev=0&sc=0&isdir=1";
update.szUpdateURL = UPDATER_AUTOREGISTER;
diff --git a/nohtml/version.h b/nohtml/version.h
index 2a8d28e..50b4784 100644
--- a/nohtml/version.h
+++ b/nohtml/version.h
@@ -4,8 +4,8 @@
#define __MAJOR_VERSION 0
#define __MINOR_VERSION 0
-#define __RELEASE_NUM 1
-#define __BUILD_NUM 5
+#define __RELEASE_NUM 2
+#define __BUILD_NUM 0
#define __FILEVERSION_STRING __MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
#define __FILEVERSION_STRING_DOTS __MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM