diff options
author | Roberto C. Sanchez <roberto@connexer.com> | 2014-03-29 10:53:52 -0400 |
---|---|---|
committer | Roberto C. Sanchez <roberto@connexer.com> | 2014-03-29 10:53:52 -0400 |
commit | 148bd343f3e7e32d141f66b5b5c9b98b2975b0b3 (patch) | |
tree | 31078963b85110d57310759016e60e8d26ccb1e6 /src/modules/filters/unicodertf.cpp | |
parent | 8c8aa6b07e595cfac56838b5964ab3e96051f1b2 (diff) |
Imported Upstream version 1.5.8
Diffstat (limited to 'src/modules/filters/unicodertf.cpp')
-rw-r--r-- | src/modules/filters/unicodertf.cpp | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/src/modules/filters/unicodertf.cpp b/src/modules/filters/unicodertf.cpp deleted file mode 100644 index 0a2bca8..0000000 --- a/src/modules/filters/unicodertf.cpp +++ /dev/null @@ -1,86 +0,0 @@ -/****************************************************************************** - * - * unicodertf - SWFilter descendant to convert a double byte unicode file - * to RTF tags - */ - - -#include <stdlib.h> -#include <stdio.h> -#include <unicodertf.h> - -SWORD_NAMESPACE_START - -UnicodeRTF::UnicodeRTF() { -} - - -char UnicodeRTF::processText(SWBuf &text, const SWKey *key, const SWModule *module) -{ - const unsigned char *from; - char digit[10]; - unsigned long ch; - signed short utf16; - unsigned char from2[7]; - - SWBuf orig = text; - - from = (const unsigned char *)orig.c_str(); - - // ------------------------------- - for (text = ""; *from; from++) { - ch = 0; - //case: ANSI - if ((*from & 128) != 128) { - text += *from; - continue; - } - //case: Invalid UTF-8 (illegal continuing byte in initial position) - if ((*from & 128) && ((*from & 64) != 64)) { - continue; - } - //case: 2+ byte codepoint - from2[0] = *from; - from2[0] <<= 1; - int subsequent; - for (subsequent = 1; (from2[0] & 128) && (subsequent < 7); subsequent++) { - from2[0] <<= 1; - from2[subsequent] = from[subsequent]; - from2[subsequent] &= 63; - ch <<= 6; - ch |= from2[subsequent]; - } - subsequent--; - from2[0] <<= 1; - char significantFirstBits = 8 - (2+subsequent); - - ch |= (((short)from2[0]) << (((6*subsequent)+significantFirstBits)-8)); - from += subsequent; - if (ch < 0x10000) { - utf16 = (signed short)ch; - text += '\\'; - text += 'u'; - sprintf(digit, "%d", utf16); - text += digit; - text += '?'; - } - else { - utf16 = (signed short)((ch - 0x10000) / 0x400 + 0xD800); - text += '\\'; - text += 'u'; - sprintf(digit, "%d", utf16); - text += digit; - text += '?'; - utf16 = (signed short)((ch - 0x10000) % 0x400 + 0xDC00); - text += '\\'; - text += 'u'; - sprintf(digit, "%d", utf16); - text += digit; - text += '?'; - } - } - - return 0; -} - -SWORD_NAMESPACE_END |