Diff for /np2/codecnv/textcnv.c between versions 1.1 and 1.2

version 1.1, 2005/03/19 18:54:57 version 1.2, 2005/04/01 15:35:48
Line 3 Line 3
 #include        "textcnv.h"  #include        "textcnv.h"
   
   
 BRESULT textcnv_tooem(UINT code, TCTOOEM *tcto) {  UINT textcnv_getinfo(TCINF *inf, const UINT8 *hdr, UINT hdrsize) {
   
         TCTOOEM fn;          UINT    textcode;
           TCINF   info;
   
           textcode = TEXTCNV_DEFAULT;
           ZeroMemory(&info, sizeof(info));
           if ((hdrsize >= 3) &&
                   (hdr[0] == 0xef) && (hdr[1] == 0xbb) && (hdr[2] == 0xbf)) {
                   // UTF-8
                   textcode = TEXTCNV_UTF8;
                   info.width = 1;
                   info.hdrsize = 3;
           }
           else if ((hdrsize >= 2) && (hdr[0] == 0xff) && (hdr[1] == 0xfe)) {
                   // UCSLE
                   textcode = TEXTCNV_UCS2;
   #if defined(BYTESEX_BIG)
                   info.xendian = 1;
   #endif
                   info.width = 2;
                   info.hdrsize = 2;
           }
           else if ((hdrsize >= 2) && (hdr[0] == 0xfe) && (hdr[1] == 0xff)) {
                   // UCS2BE
                   // UCSLE
                   textcode = TEXTCNV_UCS2;
   #if defined(BYTESEX_LITTLE)
                   info.xendian = 1;
   #endif
                   info.width = 2;
                   info.hdrsize = 2;
           }
           else {
                   info.width = 1;
           }
   
         fn = NULL;  
 #if defined(OSLANG_SJIS)  #if defined(OSLANG_SJIS)
         switch(code) {          switch(textcode) {
                 case TEXTCNV_DEFAULT:                  case TEXTCNV_DEFAULT:
                 case TEXTCNV_SJIS:                  case TEXTCNV_SJIS:
                           info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                         break;                          break;
   
                 default:  
                         return(FAILURE);  
         }          }
 #elif defined(OSLANG_EUC)  #elif defined(OSLANG_EUC)
         switch(code) {          switch(textcode) {
                 case TEXTCNV_DEFAULT:                  case TEXTCNV_DEFAULT:
                 case TEXTCNV_EUC:                  case TEXTCNV_EUC:
                           info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                         break;                          break;
   
                 default:  
                         return(FAILURE);  
         }          }
 #elif defined(OSLANG_UTF8)  #elif defined(OSLANG_UTF8)
         switch(code) {          switch(textcode) {
                 case TEXTCNV_UTF8:                  case TEXTCNV_UTF8:
                           info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                         break;                          break;
   
                 case TEXTCNV_UCS2:                  case TEXTCNV_UCS2:
                         fn = (TCTOOEM)codecnv_ucs2toutf8;                          info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                           info.tooem = (TCTOOEM)codecnv_ucs2toutf8;
                           info.fromoem = (TCFROMOEM)codecnv_utf8toucs2;
                         break;                          break;
   
                 default:  
                         return(FAILURE);  
         }          }
 #elif defined(OSLANG_UCS2)  #elif defined(OSLANG_UCS2)
         switch(code) {          switch(textcode) {
                 case TEXTCNV_UTF8:                  case TEXTCNV_UTF8:
                         fn = (TCTOOEM)codecnv_utf8toucs2;                          info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                           info.tooem = (TCTOOEM)codecnv_utf8toucs2;
                           info.fromoem = (TCFROMOEM)codecnv_ucs2toutf8;
                         break;                          break;
   
                 case TEXTCNV_UCS2:                  case TEXTCNV_UCS2:
                           info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                         break;                          break;
   
                 default:  
                         return(FAILURE);  
         }          }
 #else  #else   // defined(OSLANG_*)
         switch(code) {          switch(textcode) {
                 case TEXTCNV_DEFAULT:                  case TEXTCNV_DEFAULT:
                           info.caps = TEXTCNV_READ | TEXTCNV_WRITE;
                         break;                          break;
   
                 default:  
                         return(FAILURE);  
         }          }
 #endif  #endif  // defined(OSLANG_*)
         if (tcto) {          if (inf) {
                 *tcto = fn;                  *inf = info;
         }          }
         return(SUCCESS);          return(info.caps);
 }  
   
 BRESULT textcnv_fromoem(UINT code, TCFROMOEM *tcfo) {  
   
         return(FAILURE);  
 }  }
   

Removed from v.1.1  
changed lines
  Added in v.1.2


RetroPC.NET-CVS <cvs@retropc.net>