LCOV - code coverage report
Current view: top level - libreoffice/workdir/unxlngi6.pro/UnpackedTarball/python3/Modules/cjkcodecs - _codecs_tw.c (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 0 60 0.0 %
Date: 2012-12-17 Functions: 0 5 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /*
       2             :  * _codecs_tw.c: Codecs collection for Taiwan's encodings
       3             :  *
       4             :  * Written by Hye-Shik Chang <perky@FreeBSD.org>
       5             :  */
       6             : 
       7             : #include "cjkcodecs.h"
       8             : #include "mappings_tw.h"
       9             : 
      10             : /*
      11             :  * BIG5 codec
      12             :  */
      13             : 
      14           0 : ENCODER(big5)
      15             : {
      16           0 :     while (inleft > 0) {
      17           0 :         Py_UNICODE c = **inbuf;
      18             :         DBCHAR code;
      19             : 
      20           0 :         if (c < 0x80) {
      21           0 :             REQUIRE_OUTBUF(1)
      22           0 :             **outbuf = (unsigned char)c;
      23           0 :             NEXT(1, 1)
      24           0 :             continue;
      25             :         }
      26           0 :         UCS4INVALID(c)
      27             : 
      28           0 :         REQUIRE_OUTBUF(2)
      29             : 
      30           0 :         TRYMAP_ENC(big5, code, c);
      31           0 :         else return 1;
      32             : 
      33           0 :         OUT1(code >> 8)
      34           0 :         OUT2(code & 0xFF)
      35           0 :         NEXT(1, 2)
      36             :     }
      37             : 
      38           0 :     return 0;
      39             : }
      40             : 
      41           0 : DECODER(big5)
      42             : {
      43           0 :     while (inleft > 0) {
      44           0 :         unsigned char c = IN1;
      45             : 
      46           0 :         REQUIRE_OUTBUF(1)
      47             : 
      48           0 :         if (c < 0x80) {
      49           0 :             OUT1(c)
      50           0 :             NEXT(1, 1)
      51           0 :             continue;
      52             :         }
      53             : 
      54           0 :         REQUIRE_INBUF(2)
      55           0 :         TRYMAP_DEC(big5, **outbuf, c, IN2) {
      56           0 :             NEXT(2, 1)
      57             :         }
      58           0 :         else return 1;
      59             :     }
      60             : 
      61           0 :     return 0;
      62             : }
      63             : 
      64             : 
      65             : /*
      66             :  * CP950 codec
      67             :  */
      68             : 
      69           0 : ENCODER(cp950)
      70             : {
      71           0 :     while (inleft > 0) {
      72           0 :         Py_UNICODE c = IN1;
      73             :         DBCHAR code;
      74             : 
      75           0 :         if (c < 0x80) {
      76           0 :             WRITE1((unsigned char)c)
      77           0 :             NEXT(1, 1)
      78           0 :             continue;
      79             :         }
      80           0 :         UCS4INVALID(c)
      81             : 
      82           0 :         REQUIRE_OUTBUF(2)
      83           0 :         TRYMAP_ENC(cp950ext, code, c);
      84           0 :         else TRYMAP_ENC(big5, code, c);
      85           0 :         else return 1;
      86             : 
      87           0 :         OUT1(code >> 8)
      88           0 :         OUT2(code & 0xFF)
      89           0 :         NEXT(1, 2)
      90             :     }
      91             : 
      92           0 :     return 0;
      93             : }
      94             : 
      95           0 : DECODER(cp950)
      96             : {
      97           0 :     while (inleft > 0) {
      98           0 :         unsigned char c = IN1;
      99             : 
     100           0 :         REQUIRE_OUTBUF(1)
     101             : 
     102           0 :         if (c < 0x80) {
     103           0 :             OUT1(c)
     104           0 :             NEXT(1, 1)
     105           0 :             continue;
     106             :         }
     107             : 
     108           0 :         REQUIRE_INBUF(2)
     109             : 
     110           0 :         TRYMAP_DEC(cp950ext, **outbuf, c, IN2);
     111           0 :         else TRYMAP_DEC(big5, **outbuf, c, IN2);
     112           0 :         else return 1;
     113             : 
     114           0 :         NEXT(2, 1)
     115             :     }
     116             : 
     117           0 :     return 0;
     118             : }
     119             : 
     120             : 
     121             : 
     122             : BEGIN_MAPPINGS_LIST
     123             :   MAPPING_ENCDEC(big5)
     124             :   MAPPING_ENCDEC(cp950ext)
     125             : END_MAPPINGS_LIST
     126             : 
     127             : BEGIN_CODECS_LIST
     128             :   CODEC_STATELESS(big5)
     129             :   CODEC_STATELESS(cp950)
     130             : END_CODECS_LIST
     131             : 
     132           0 : I_AM_A_MODULE_FOR(tw)

Generated by: LCOV version 1.10