Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CEncoding.cpp

Go to the documentation of this file.
00001 #include <stdio.h>
00002 #include "CEncoding.h"
00003 
00004 void CUtf8::getch(tchar& ch, CStyle& sty, unsigned long& pos)
00005 {
00006     tchar ret;
00007     parent->getch(ret, sty, pos);
00008     if (ret == UEOF)
00009     {
00010         ch = UEOF;
00011         return;
00012     }
00013     int count = 0;
00014     if (ret & (1 << 7))
00015     {
00016         unsigned char flags = ret << 1;
00017         while ((flags & (1 << 7)) != 0)
00018         {
00019             ret <<= 6;
00020             tchar iret;
00021             parent->getch(iret, sty, pos);
00022             ret += iret & 0x3f;
00023             flags <<= 1;
00024             count++;
00025         }
00026         switch (count)
00027         {
00028             case 0:
00029                 break;
00030             case 1:
00031                 ret &= 0x07ff;
00032                 break;
00033             case 2:
00034                 break;
00035             case 3:
00036             case 4:
00037             case 5:
00038             default:
00039                 printf("Only 16bit unicode supported...");
00040         }
00041     }
00042     ch = ret;
00043     return;
00044 }
00045 
00046 void CUcs16be::getch(tchar& ch, CStyle& sty, unsigned long& pos)
00047 {
00048     tchar iret;
00049     parent->getch(iret, sty, pos);
00050     if (iret == UEOF)
00051     {
00052         ch = UEOF;
00053         return;
00054     }
00055     tchar ret = iret;
00056     parent->getch(iret, sty, pos);
00057     ch = (ret << 8) + iret;
00058 }
00059 
00060 void CUcs16le::getch(tchar& ch, CStyle& sty, unsigned long& pos)
00061 {
00062     tchar iret;
00063     parent->getch(iret, sty, pos);
00064     if (iret == UEOF)
00065     {
00066         ch = UEOF;
00067         return;
00068     }
00069     tchar ret = iret;
00070     parent->getch(iret, sty, pos);
00071     ch = ret + (iret << 8);
00072 }
00073 
00074 void Ccp1252::getch(tchar& ch, CStyle& sty, unsigned long& pos)
00075 {
00076     tchar iret;
00077     parent->getch(iret, sty, pos);
00078     ch = iret;
00079     switch (ch)
00080     {
00081         case UEOF:
00082             ch = UEOF;
00083             break;
00084         case 0x80:
00085             ch = 0x20ac;
00086             break;
00087         case 0x82:
00088             ch = 0x201a;
00089             break;
00090         case 0x83:
00091             ch = 0x0192;
00092             break;
00093         case 0x84:
00094             ch = 0x201e;
00095             break;
00096         case 0x85:
00097             ch = 0x2026;
00098             break;
00099         case 0x86:
00100             ch = 0x2020;
00101             break;
00102         case 0x87:
00103             ch = 0x2021;
00104             break;
00105         case 0x88:
00106             ch = 0x02c6;
00107             break;
00108         case 0x89:
00109             ch = 0x2030;
00110             break;
00111         case 0x8a:
00112             ch = 0x0160;
00113             break;
00114         case 0x8b:
00115             ch = 0x2039;
00116             break;
00117         case 0x8c:
00118             ch = 0x0152;
00119             break;
00120         case 0x8e:
00121             ch = 0x017d;
00122             break;
00123         case 0x91:
00124             ch = 0x2018;
00125             break;
00126         case 0x92:
00127             ch = 0x2019;
00128             break;
00129         case 0x93:
00130             ch = 0x201c;
00131             break;
00132         case 0x94:
00133             ch = 0x201d;
00134             break;
00135         case 0x95:
00136             ch = 0x2022;
00137             break;
00138         case 0x96:
00139             ch = 0x2013;
00140             break;
00141         case 0x97:
00142             ch = 0x2014;
00143             break;
00144         case 0x98:
00145             ch = 0x02dc;
00146             break;
00147         case 0x99:
00148             ch = 0x2122;
00149             break;
00150         case 0x9a:
00151             ch = 0x0161;
00152             break;
00153         case 0x9b:
00154             ch = 0x203a;
00155             break;
00156         case 0x9c:
00157             ch = 0x0153;
00158             break;
00159         case 0x9e:
00160             ch = 0x017e;
00161             break;
00162         case 0x9f:
00163             ch = 0x0178;
00164             break;
00165         default:
00166             break;
00167     }
00168 }
00169 
00170 void CPalm::getch(tchar& ch, CStyle& sty, unsigned long& pos)
00171 {
00172     Ccp1252::getch(ch, sty, pos);
00173     switch (ch)
00174     {
00175         case 0x18:
00176             ch = 0x2026;
00177             break;
00178         case 0x19:
00179             ch = 0x2007;
00180             break;
00181         case 0x8d:
00182             ch = 0x2662;
00183             break;
00184         case 0x8e:
00185             ch = 0x2663;
00186             break;
00187         case 0x8f:
00188             ch = 0x2661;
00189             break;
00190         case 0x90:
00191             ch = 0x2660;
00192             break;
00193         default:
00194             break;
00195     }
00196 }
00197 
00198 void CAscii::getch(tchar& ch, CStyle& sty, unsigned long& pos)
00199 {
00200     tchar iret;
00201     parent->getch(iret, sty, pos);
00202     if (iret == UEOF)
00203     {
00204         ch = UEOF;
00205     }
00206     else
00207     {
00208         ch = iret;
00209     }
00210 }

Generated on Sat Nov 5 16:16:54 2005 for OPIE by  doxygen 1.4.2