~ubuntu-branches/debian/squeeze/sword/squeeze

« back to all changes in this revision

Viewing changes to src/modules/filters/latin1utf16.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Daniel Glassey
  • Date: 2004-01-15 15:50:07 UTC
  • Revision ID: james.westby@ubuntu.com-20040115155007-n9mz4x0zxrs1isd3
Tags: upstream-1.5.7
Import upstream version 1.5.7

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/******************************************************************************
 
2
 *
 
3
 * Latin1UTF16 -        SWFilter descendant to convert a Latin-1 character to UTF-16
 
4
 *
 
5
 */
 
6
 
 
7
 
 
8
#include <stdlib.h>
 
9
#include <stdio.h>
 
10
#include <latin1utf16.h>
 
11
 
 
12
SWORD_NAMESPACE_START
 
13
 
 
14
Latin1UTF16::Latin1UTF16() {
 
15
}
 
16
 
 
17
 
 
18
char Latin1UTF16::processText(SWBuf &text, const SWKey *key, const SWModule *module) {
 
19
    const unsigned char *from;
 
20
    int len;
 
21
         if ((unsigned long)key < 2)    // hack, we're en(1)/de(0)ciphering
 
22
                return -1;
 
23
   
 
24
    
 
25
        SWBuf orig = text;
 
26
        from = (const unsigned char *)orig.c_str();
 
27
 
 
28
        for (text = ""; *from; from++) {
 
29
                text.setSize(text.size()+2);
 
30
           switch (*from) {
 
31
        case 0x80: // '�'
 
32
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x20AC;
 
33
                break;
 
34
        case 0x82: // '�'
 
35
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x201A;
 
36
                break;
 
37
        case 0x83: // '�'
 
38
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x0192;
 
39
                break;
 
40
        case 0x84: // '�'
 
41
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x201E;
 
42
                break;
 
43
        case 0x85: // '�'
 
44
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2026;
 
45
                break;
 
46
        case 0x86: // '�'
 
47
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2020;
 
48
                break;
 
49
        case 0x87: // '�'
 
50
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2021;
 
51
                break;
 
52
        case 0x88: // '�'
 
53
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x02C6;
 
54
                break;
 
55
        case 0x89: // '�'
 
56
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2030;
 
57
                break;
 
58
        case 0x8A: // '�'
 
59
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x0160;
 
60
                break;
 
61
        case 0x8B: // '�'
 
62
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2039;
 
63
                break;
 
64
        case 0x8C: // '�'
 
65
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x0152;
 
66
                break;
 
67
        case 0x8E: // '�'
 
68
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x017D;
 
69
                break;
 
70
        case 0x91: // '�'
 
71
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2018;
 
72
                break;
 
73
        case 0x92: // '�'
 
74
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2019;
 
75
                break;
 
76
        case 0x93: // '�'
 
77
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x201C;
 
78
                break;
 
79
        case 0x94: // '�'
 
80
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x201D;
 
81
                break;
 
82
        case 0x95: // '�'
 
83
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2022;
 
84
                break;
 
85
        case 0x96: // '�'
 
86
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2013;
 
87
                break;
 
88
        case 0x97: // '�'
 
89
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2014;
 
90
                break;
 
91
        case 0x98: // '�'
 
92
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x02DC;
 
93
                break;
 
94
        case 0x99: // '�'
 
95
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x2122;
 
96
                break;
 
97
        case 0x9A: // '�'
 
98
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x0161;
 
99
                break;
 
100
        case 0x9B: // '�'
 
101
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x203A;
 
102
                break;
 
103
        case 0x9C: // '�'
 
104
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x0153;
 
105
                break;
 
106
        case 0x9E: // '�'
 
107
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x017E;
 
108
                break;
 
109
        case 0x9F: // '�'
 
110
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) 0x0178;
 
111
                break;
 
112
           default:
 
113
                *((unsigned short *)(text.getRawData()+(text.size()-2))) = (unsigned short) *from;
 
114
           }
 
115
    }
 
116
    return 0;
 
117
}
 
118
 
 
119
SWORD_NAMESPACE_END