22 * _codecs_iso2022.c: Codecs collection for ISO-2022 encodings.
33 *
44 * Written by Hye-Shik Chang <[email protected] > 5- * $CJKCodecs: _codecs_iso2022.c,v 1.22 2004/08/19 17:08:13 perky Exp $
65 */
76
87#define USING_IMPORTED_MAPS
104103
105104typedef int (* iso2022_init_func )(void );
106105typedef ucs4_t (* iso2022_decode_func )(const unsigned char * data );
107- typedef DBCHAR (* iso2022_encode_func )(const ucs4_t * data , int * length );
106+ typedef DBCHAR (* iso2022_encode_func )(const ucs4_t * data , Py_ssize_t * length );
108107
109108struct iso2022_designation {
110109 unsigned char mark ;
@@ -160,7 +159,7 @@ ENCODER(iso2022)
160159 const struct iso2022_designation * dsg ;
161160 DBCHAR encoded ;
162161 ucs4_t c = * * inbuf ;
163- int insize ;
162+ Py_ssize_t insize ;
164163
165164 if (c < 0x80 ) {
166165 if (STATE_G0 != CHARSET_ASCII ) {
@@ -183,7 +182,7 @@ ENCODER(iso2022)
183182
184183 encoded = MAP_UNMAPPABLE ;
185184 for (dsg = CONFIG_DESIGNATIONS ; dsg -> mark ; dsg ++ ) {
186- int length = 1 ;
185+ Py_ssize_t length = 1 ;
187186 encoded = dsg -> encoder (& c , & length );
188187 if (encoded == MAP_MULTIPLE_AVAIL ) {
189188 /* this implementation won't work for pair
@@ -300,12 +299,12 @@ DECODER_RESET(iso2022)
300299 return 0 ;
301300}
302301
303- static int
302+ static Py_ssize_t
304303iso2022processesc (const void * config , MultibyteCodec_State * state ,
305- const unsigned char * * inbuf , size_t * inleft )
304+ const unsigned char * * inbuf , Py_ssize_t * inleft )
306305{
307306 unsigned char charset , designation ;
308- size_t i , esclen ;
307+ Py_ssize_t i , esclen ;
309308
310309 for (i = 1 ;i < MAX_ESCSEQLEN ;i ++ ) {
311310 if (i >= * inleft )
@@ -388,10 +387,10 @@ iso2022processesc(const void *config, MultibyteCodec_State *state,
388387 else if ((c) == 0xa2) (assi) = 0x2019; \
389388 else if ((c) == 0xaf) (assi) = 0x2015;
390389
391- static int
390+ static Py_ssize_t
392391iso2022processg2 (const void * config , MultibyteCodec_State * state ,
393- const unsigned char * * inbuf , size_t * inleft ,
394- Py_UNICODE * * outbuf , size_t * outleft )
392+ const unsigned char * * inbuf , Py_ssize_t * inleft ,
393+ Py_UNICODE * * outbuf , Py_ssize_t * outleft )
395394{
396395 /* not written to use encoder, decoder functions because only few
397396 * encodings use G2 designations in CJKCodecs */
@@ -425,7 +424,7 @@ DECODER(iso2022)
425424
426425 while (inleft > 0 ) {
427426 unsigned char c = IN1 ;
428- int err ;
427+ Py_ssize_t err ;
429428
430429 if (STATE_GETFLAG (F_ESCTHROUGHOUT )) {
431430 /* ESC throughout mode:
@@ -589,7 +588,7 @@ ksx1001_decoder(const unsigned char *data)
589588}
590589
591590static DBCHAR
592- ksx1001_encoder (const ucs4_t * data , int * length )
591+ ksx1001_encoder (const ucs4_t * data , Py_ssize_t * length )
593592{
594593 DBCHAR coded ;
595594 assert (* length == 1 );
@@ -625,7 +624,7 @@ jisx0208_decoder(const unsigned char *data)
625624}
626625
627626static DBCHAR
628- jisx0208_encoder (const ucs4_t * data , int * length )
627+ jisx0208_encoder (const ucs4_t * data , Py_ssize_t * length )
629628{
630629 DBCHAR coded ;
631630 assert (* length == 1 );
@@ -662,7 +661,7 @@ jisx0212_decoder(const unsigned char *data)
662661}
663662
664663static DBCHAR
665- jisx0212_encoder (const ucs4_t * data , int * length )
664+ jisx0212_encoder (const ucs4_t * data , Py_ssize_t * length )
666665{
667666 DBCHAR coded ;
668667 assert (* length == 1 );
@@ -760,7 +759,7 @@ jisx0213_2004_2_decoder(const unsigned char *data)
760759}
761760
762761static DBCHAR
763- jisx0213_encoder (const ucs4_t * data , int * length , void * config )
762+ jisx0213_encoder (const ucs4_t * data , Py_ssize_t * length , void * config )
764763{
765764 DBCHAR coded ;
766765
@@ -814,7 +813,7 @@ jisx0213_encoder(const ucs4_t *data, int *length, void *config)
814813}
815814
816815static DBCHAR
817- jisx0213_2000_1_encoder (const ucs4_t * data , int * length )
816+ jisx0213_2000_1_encoder (const ucs4_t * data , Py_ssize_t * length )
818817{
819818 DBCHAR coded = jisx0213_encoder (data , length , (void * )2000 );
820819 if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL )
@@ -826,10 +825,10 @@ jisx0213_2000_1_encoder(const ucs4_t *data, int *length)
826825}
827826
828827static DBCHAR
829- jisx0213_2000_1_encoder_paironly (const ucs4_t * data , int * length )
828+ jisx0213_2000_1_encoder_paironly (const ucs4_t * data , Py_ssize_t * length )
830829{
831830 DBCHAR coded ;
832- int ilength = * length ;
831+ Py_ssize_t ilength = * length ;
833832
834833 coded = jisx0213_encoder (data , length , (void * )2000 );
835834 switch (ilength ) {
@@ -849,7 +848,7 @@ jisx0213_2000_1_encoder_paironly(const ucs4_t *data, int *length)
849848}
850849
851850static DBCHAR
852- jisx0213_2000_2_encoder (const ucs4_t * data , int * length )
851+ jisx0213_2000_2_encoder (const ucs4_t * data , Py_ssize_t * length )
853852{
854853 DBCHAR coded = jisx0213_encoder (data , length , (void * )2000 );
855854 if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL )
@@ -861,7 +860,7 @@ jisx0213_2000_2_encoder(const ucs4_t *data, int *length)
861860}
862861
863862static DBCHAR
864- jisx0213_2004_1_encoder (const ucs4_t * data , int * length )
863+ jisx0213_2004_1_encoder (const ucs4_t * data , Py_ssize_t * length )
865864{
866865 DBCHAR coded = jisx0213_encoder (data , length , NULL );
867866 if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL )
@@ -873,10 +872,10 @@ jisx0213_2004_1_encoder(const ucs4_t *data, int *length)
873872}
874873
875874static DBCHAR
876- jisx0213_2004_1_encoder_paironly (const ucs4_t * data , int * length )
875+ jisx0213_2004_1_encoder_paironly (const ucs4_t * data , Py_ssize_t * length )
877876{
878877 DBCHAR coded ;
879- int ilength = * length ;
878+ Py_ssize_t ilength = * length ;
880879
881880 coded = jisx0213_encoder (data , length , NULL );
882881 switch (ilength ) {
@@ -896,7 +895,7 @@ jisx0213_2004_1_encoder_paironly(const ucs4_t *data, int *length)
896895}
897896
898897static DBCHAR
899- jisx0213_2004_2_encoder (const ucs4_t * data , int * length )
898+ jisx0213_2004_2_encoder (const ucs4_t * data , Py_ssize_t * length )
900899{
901900 DBCHAR coded = jisx0213_encoder (data , length , NULL );
902901 if (coded == MAP_UNMAPPABLE || coded == MAP_MULTIPLE_AVAIL )
@@ -917,7 +916,7 @@ jisx0201_r_decoder(const unsigned char *data)
917916}
918917
919918static DBCHAR
920- jisx0201_r_encoder (const ucs4_t * data , int * length )
919+ jisx0201_r_encoder (const ucs4_t * data , Py_ssize_t * length )
921920{
922921 DBCHAR coded ;
923922 JISX0201_R_ENCODE (* data , coded )
@@ -935,7 +934,7 @@ jisx0201_k_decoder(const unsigned char *data)
935934}
936935
937936static DBCHAR
938- jisx0201_k_encoder (const ucs4_t * data , int * length )
937+ jisx0201_k_encoder (const ucs4_t * data , Py_ssize_t * length )
939938{
940939 DBCHAR coded ;
941940 JISX0201_K_ENCODE (* data , coded )
@@ -967,7 +966,7 @@ gb2312_decoder(const unsigned char *data)
967966}
968967
969968static DBCHAR
970- gb2312_encoder (const ucs4_t * data , int * length )
969+ gb2312_encoder (const ucs4_t * data , Py_ssize_t * length )
971970{
972971 DBCHAR coded ;
973972 assert (* length == 1 );
@@ -986,7 +985,7 @@ dummy_decoder(const unsigned char *data)
986985}
987986
988987static DBCHAR
989- dummy_encoder (const ucs4_t * data , int * length )
988+ dummy_encoder (const ucs4_t * data , Py_ssize_t * length )
990989{
991990 return MAP_UNMAPPABLE ;
992991}
0 commit comments