From 148bd343f3e7e32d141f66b5b5c9b98b2975b0b3 Mon Sep 17 00:00:00 2001 From: "Roberto C. Sanchez" Date: Sat, 29 Mar 2014 10:53:52 -0400 Subject: Imported Upstream version 1.5.8 --- src/modules/filters/utf8utf16.cpp | 78 --------------------------------------- 1 file changed, 78 deletions(-) delete mode 100644 src/modules/filters/utf8utf16.cpp (limited to 'src/modules/filters/utf8utf16.cpp') diff --git a/src/modules/filters/utf8utf16.cpp b/src/modules/filters/utf8utf16.cpp deleted file mode 100644 index 2fddf4c..0000000 --- a/src/modules/filters/utf8utf16.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/****************************************************************************** - * - * UTF8UTF16 - SWFilter descendant to convert UTF-8 to UTF-16 - * - */ - -#include -#include - -#include - -SWORD_NAMESPACE_START - -UTF8UTF16::UTF8UTF16() { -} - - -char UTF8UTF16::processText(SWBuf &text, const SWKey *key, const SWModule *module) { - const unsigned char *from; - - int len; - unsigned long uchar, uchars[10]; - unsigned char significantFirstBits, subsequent; - unsigned short schar; - - if ((unsigned long)key < 2) // hack, we're en(1)/de(0)ciphering - return -1; - - - SWBuf orig = text; - from = (const unsigned char *)orig.c_str(); - - for (text = ""; *from; from++) { - uchar = 0; - if ((*from & 128) != 128) { - //if (*from != ' ') - uchar = *from; - } - else if ((*from & 128) && ((*from & 64) != 64)) { - // error, do nothing - continue; - } - else { - uchars[0] = *from; - uchars[0] <<= 1; - for (subsequent = 1; (uchars[0] & 128) && (subsequent < 10); subsequent++) { - uchars[0] <<= 1; - uchars[subsequent] = from[subsequent]; - uchars[subsequent] &= 63; - uchar <<= 6; - uchar |= uchars[subsequent]; - } - subsequent--; - uchars[0] <<=1; - significantFirstBits = 8 - (2+subsequent); - - uchar |= (((short)uchars[0]) << (((6*subsequent)+significantFirstBits)-8)); - from += subsequent; - } - - if (uchar < 0x1ffff) { - text.setSize(text.size()+2); - *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short)uchar; - } - else { - uchar -= 0x10000; - schar = 0xD800 | (uchar & 0x03ff); - uchar >>= 10; - uchar |= 0xDC00; - text.setSize(text.size()+4); - *((unsigned short *)(text.getRawData()+(text.size()-4))) = (unsigned short)schar; - *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short)uchar; - } - } - return 0; -} - -SWORD_NAMESPACE_END -- cgit v1.2.3