From 2bf7e3ba50b1bf547c726523cf842e9263d5db18 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 28 Jul 2013 18:37:34 +0000 Subject: first version of WebView that compiles in Unicode (but certaily doesn't work) git-svn-id: http://svn.miranda-ng.org/main/trunk@5516 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/WebView/src/webview_cleanup.cpp | 1339 +++++++++++++++++-------------- 1 file changed, 752 insertions(+), 587 deletions(-) (limited to 'plugins/WebView/src/webview_cleanup.cpp') diff --git a/plugins/WebView/src/webview_cleanup.cpp b/plugins/WebView/src/webview_cleanup.cpp index 03fef944e5..b1fbc3912e 100644 --- a/plugins/WebView/src/webview_cleanup.cpp +++ b/plugins/WebView/src/webview_cleanup.cpp @@ -1,633 +1,798 @@ /* - * A plugin for Miranda IM which displays web page text in a window Copyright - * (C) 2005 Vincent Joyce. - * - * Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 - * Richard Hughes, Roland Rabien & Tristan Van de Vreede - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., 59 - * Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ +* A plugin for Miranda IM which displays web page text in a window Copyright +* (C) 2005 Vincent Joyce. +* +* Miranda IM: the free icq client for MS Windows Copyright (C) 2000-2 +* Richard Hughes, Roland Rabien & Tristan Van de Vreede +* +* This program is free software; you can redistribute it and/or modify it +* under the terms of the GNU General Public License as published by the Free +* Software Foundation; either version 2 of the License, or (at your option) +* any later version. +* +* This program is distributed in the hope that it will be useful, but +* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +* for more details. +* +* You should have received a copy of the GNU General Public License along +* with this program; if not, write to the Free Software Foundation, Inc., 59 +* Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ #include "stdafx.h" +#include "webview.h" -/************************/ -void CodetoSymbol(char *truncated) -{ - int counter = 0; - int position = 0, recpos = 0, n; - static char *stringfrompos; - - for (n = 0; n < AMOUNT3; n++) - { - - while (1) // loop forever - - { - Sleep(1); // avoid 100% CPU - - if (((strstr(truncated, CharacterCodes[n])) != 0)) -// does character code exist? - { - - if (strstr(truncated, CharacterCodes[n]) != 0) - { - stringfrompos = strstr(truncated, CharacterCodes[n]); - } - position = stringfrompos - truncated; - counter = 0; - while (counter != (strlen(CharacterCodes[n]))) - { - truncated[position + counter] = ' '; - counter++; - } - - truncated[(position + counter) - 1] = Characters[n]; - -// - strncpy(&truncated[position], &truncated[position + strlen(CharacterCodes[n])] - 1, strlen(&truncated[position]) - 1); -// - - } // end does character code exist? - - if (recpos == position) - break; // break out of loop if doesn't find new character code +// /////////////////////// +// characters and symbols// +// /////////////////////// - recpos = position; - } // end loop forever - - } // for +#define AMOUNT3 164 +char*CharacterCodes[AMOUNT3] = +{ + """, + "&", + "<", + ">", + " ", + "¡", + "¢", + "£", + "¤", + "¥", + "¦", + "§", + "¨", + "©", + "ª", + "«", + "¬", + "­", + "®", + "¯", + "°", + "±", + "²", + "³", + "´", + "µ", + "¶", + "·", + "¸", + "¹", + "º", + "»", + "¼", + "½", + "¾", + "¿", + "À", + "Á", + "Â", + "Ã", + "Ä", + "Å", + "Æ", + "Ç", + "È", + "É", + "Ê", + "Ë", + "Ì", + "Í", + "Î", + "Ï", + "Ð", + "Ñ", + "Ò", + "Ó", + "Ô", + "Õ", + "Ö", + "×", + "Ø", + "Ù", + "Ú", + "Û", + "Ü", + "Ý", + "Þ", + "ß", + "à", + "á", + "â", + "ã", + "ä", + "å", + "æ", + "ç", + "è", + "é", + "ê", + "ë", + "ì", + "í", + "î", + "ï", + "ð", + "ñ", + "ò", + "ó", + "ô", + "õ", + "ö", + "÷", + "ø", + "ù", + "ú", + "û", + "ü", + "ý", + "þ", + "&yumil;", + "Œ", // greater that 255, extra latin characters + "œ", + "Š", + "š", + "Ÿ", + "ƒ", + "ˆ", + "˜", + "Œ", + "œ", + "Š", + "š", + "Ÿ", + "ƒ", + "ˆ", + "˜", + "–", // Misc other characters + "—", + "‘", + "’", + "‚", + "“", + "”", + "„", + "†", + "‡", + "•", + "…", + "‰", + "‹", + "›", + "€", + "ℑ", + "ℜ", + "™", + "–", + "—", + "‘", + "’", + "‚", + "“", + "”", + "„", + "†", + "‡", + "•", + "…", + "‰", + "‹", + "›", + "€", + "ℑ", + "ℜ", + "™", + " ", + " ", + " ", + " ", + " ", + " ", + "õ", // symbols without numeric code + "¿", + "¦", + "¯"}; + +char Characters[AMOUNT3] = +{ + '\"', + '&', + '<', + '>', + ' ', + '¡', + '¢', + '£', + '¤', + '¥', + '¦', + '§', + '¨', + '©', + 'ª', + '«', + '¬', + '­', + '®', + '¯', + '°', + '±', + '²', + '³', + '´', + 'µ', + '¶', + '·', + '¸', + '¹', + 'º', + '»', + '¼', + '½', + '¾', + '¿', + 'À', + 'Á', + 'Â', + 'Ã', + 'Ä', + 'Å', + 'Æ', + 'Ç', + 'È', + 'É', + 'Ê', + 'Ë', + 'Ì', + 'Í', + 'Î', + 'Ï', + 'Ð', + 'Ñ', + 'Ò', + 'Ó', + 'Ô', + 'Õ', + 'Ö', + '×', + 'Ø', + 'Ù', + 'Ú', + 'Û', + 'Ü', + 'Ý', + 'Þ', + 'ß', + 'à', + 'á', + 'â', + 'ã', + 'ä', + 'å', + 'æ', + 'ç', + 'è', + 'é', + 'ê', + 'ë', + 'ì', + 'í', + 'î', + 'ï', + 'ð', + 'ñ', + 'ò', + 'ó', + 'ô', + 'õ', + 'ö', + '÷', + 'ø', + 'ù', + 'ú', + 'û', + 'ü', + 'ý', + 'þ', + 'ÿ', + 'Œ', // greater than 255 extra latin characters + 'œ', + 'Š', + 'š', + 'Ÿ', + 'ƒ', + 'ˆ', + '˜', + 'Œ', + 'œ', + 'Š', + 'š', + 'Ÿ', + 'ƒ', + 'ˆ', + '˜', + '–', + '—', // misc other characters + '‘', + '’', + '‚', + '“', + '”', + '„', + '†', + '‡', + '•', + '…', + '‰', + '‹', + '›', + '€', + 'I', + 'R', + '™', + '–', + '—', + '‘', + '’', + '‚', + '“', + '”', + '„', + '†', + '‡', + '•', + '…', + '‰', + '‹', + '›', + '€', + 'I', + 'R', + '™', + ' ', + ' ', + ' ', + ' ', + ' ', + ' ', + 'õ', + '¿', + '¦', + '¯'}; + +/*****************************************************************************/ +void CodetoSymbol(char *truncated) +{ + int counter = 0; + int position = 0, recpos = 0; + static char *stringfrompos; + + for (int n = 0; n < AMOUNT3; n++) { + while (1) { // loop forever + Sleep(1); // avoid 100% CPU + + if ( strstr(truncated, CharacterCodes[n]) != 0) { // does character code exist? + if (strstr(truncated, CharacterCodes[n]) != 0) + stringfrompos = strstr(truncated, CharacterCodes[n]); + + position = stringfrompos - truncated; + counter = 0; + while (counter != strlen(CharacterCodes[n])) { + truncated[position + counter] = ' '; + counter++; + } + + truncated[(position + counter) - 1] = Characters[n]; + strncpy(&truncated[position], &truncated[position + strlen(CharacterCodes[n])] - 1, strlen(&truncated[position]) - 1); + } // end does character code exist? + + if (recpos == position) + break; // break out of loop if doesn't find new character code + + recpos = position; + } // end loop forever + } // for } -/**********************/ - -/************************/ +/*****************************************************************************/ void EraseBlock(char *truncated) { - int counter = 0; - int positionStart = 0, positionEnd = 0; - char*stringfrompos; - char*tempraw; - int BlockLength = 0; - -// ////// - - tempraw = malloc(MAXSIZE1); - - if (truncated) - strncpy(tempraw, truncated, MAXSIZE1); - -// /////////////////////////// - -// 1// - - while (1) - { - Sleep(1); // avoid 100% CPU - // /get start and end of block - - if (strstr(tempraw, "") != 0) // does tag exist? - - { - stringfrompos = strstr(tempraw, "-->"); - positionEnd = stringfrompos - tempraw; - } - BlockLength = (positionEnd - positionStart) + 3; - - if ((strstr(tempraw, "") == 0)) - break; - -///////////////////////////////////////// - - // ///////// - if (strstr(tempraw, "") != 0) // does tag exist? + { + stringfrompos = strstr(tempraw, "-->"); + positionEnd = stringfrompos - tempraw; + } + BlockLength = (positionEnd - positionStart) + 3; + + if ((strstr(tempraw, "") == 0)) + break; + + ///////////////////////////////////////// + + if (strstr(tempraw, "