Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
cpython
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
Batuhan Osman TASKAYA
cpython
Commits
bd97ac35
Kaydet (Commit)
bd97ac35
authored
Eki 28, 2013
tarafından
Victor Stinner
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
CJK codecs: use less magic and more readable macros, write explicit if
üst
0a6e2c59
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
32 additions
and
34 deletions
+32
-34
_codecs_cn.c
Modules/cjkcodecs/_codecs_cn.c
+4
-4
_codecs_hk.c
Modules/cjkcodecs/_codecs_hk.c
+3
-3
_codecs_iso2022.c
Modules/cjkcodecs/_codecs_iso2022.c
+8
-8
_codecs_jp.c
Modules/cjkcodecs/_codecs_jp.c
+10
-10
_codecs_kr.c
Modules/cjkcodecs/_codecs_kr.c
+3
-3
_codecs_tw.c
Modules/cjkcodecs/_codecs_tw.c
+3
-3
cjkcodecs.h
Modules/cjkcodecs/cjkcodecs.h
+1
-3
No files found.
Modules/cjkcodecs/_codecs_cn.c
Dosyayı görüntüle @
bd97ac35
...
...
@@ -36,7 +36,7 @@
if ((code) == 0x2014) (assi) = 0xa1aa; \
else if ((code) == 0x2015) (assi) = 0xa844; \
else if ((code) == 0x00b7) (assi) = 0xa1a4; \
else if ((code) != 0x30fb && TRYMAP_ENC
_COND
(gbcommon, assi, code));
else if ((code) != 0x30fb && TRYMAP_ENC(gbcommon, assi, code));
/*
* GB2312 codec
...
...
@@ -58,7 +58,7 @@ ENCODER(gb2312)
return
1
;
REQUIRE_OUTBUF
(
2
)
TRYMAP_ENC
(
gbcommon
,
code
,
c
);
if
(
TRYMAP_ENC
(
gbcommon
,
code
,
c
)
);
else
return
1
;
if
(
code
&
0x8000
)
/* MSB set: GBK */
...
...
@@ -192,7 +192,7 @@ ENCODER(gb18030)
REQUIRE_OUTBUF
(
2
)
GBK_ENCODE
(
c
,
code
)
else
TRYMAP_ENC
(
gb18030ext
,
code
,
c
);
else
if
(
TRYMAP_ENC
(
gb18030ext
,
code
,
c
)
);
else
{
const
struct
_gb18030_to_unibmp_ranges
*
utrrange
;
...
...
@@ -343,7 +343,7 @@ ENCODER(hz)
if
(
c
>
0xFFFF
)
return
1
;
TRYMAP_ENC
(
gbcommon
,
code
,
c
);
if
(
TRYMAP_ENC
(
gbcommon
,
code
,
c
)
);
else
return
1
;
if
(
code
&
0x8000
)
/* MSB set: GBK */
...
...
Modules/cjkcodecs/_codecs_hk.c
Dosyayı görüntüle @
bd97ac35
...
...
@@ -54,7 +54,7 @@ ENCODER(big5hkscs)
REQUIRE_OUTBUF
(
2
)
if
(
c
<
0x10000
)
{
TRYMAP_ENC
(
big5hkscs_bmp
,
code
,
c
)
{
if
(
TRYMAP_ENC
(
big5hkscs_bmp
,
code
,
c
)
)
{
if
(
code
==
MULTIC
)
{
Py_UCS4
c2
;
if
(
inlen
-
*
inpos
>=
2
)
...
...
@@ -81,13 +81,13 @@ ENCODER(big5hkscs)
}
}
}
else
TRYMAP_ENC
(
big5
,
code
,
c
);
else
if
(
TRYMAP_ENC
(
big5
,
code
,
c
)
);
else
return
1
;
}
else
if
(
c
<
0x20000
)
return
insize
;
else
if
(
c
<
0x30000
)
{
TRYMAP_ENC
(
big5hkscs_nonbmp
,
code
,
c
&
0xffff
);
if
(
TRYMAP_ENC
(
big5hkscs_nonbmp
,
code
,
c
&
0xffff
)
);
else
return
insize
;
}
else
...
...
Modules/cjkcodecs/_codecs_iso2022.c
Dosyayı görüntüle @
bd97ac35
...
...
@@ -578,9 +578,10 @@ ksx1001_encoder(const Py_UCS4 *data, Py_ssize_t *length)
DBCHAR
coded
;
assert
(
*
length
==
1
);
if
(
*
data
<
0x10000
)
{
TRYMAP_ENC
(
cp949
,
coded
,
*
data
)
if
(
TRYMAP_ENC
(
cp949
,
coded
,
*
data
))
{
if
(
!
(
coded
&
0x8000
))
return
coded
;
}
}
return
MAP_UNMAPPABLE
;
}
...
...
@@ -618,7 +619,7 @@ jisx0208_encoder(const Py_UCS4 *data, Py_ssize_t *length)
if
(
*
data
<
0x10000
)
{
if
(
*
data
==
0xff3c
)
/* F/W REVERSE SOLIDUS */
return
0x2140
;
else
TRYMAP_ENC
(
jisxcommon
,
coded
,
*
data
)
{
else
if
(
TRYMAP_ENC
(
jisxcommon
,
coded
,
*
data
)
)
{
if
(
!
(
coded
&
0x8000
))
return
coded
;
}
...
...
@@ -655,7 +656,7 @@ jisx0212_encoder(const Py_UCS4 *data, Py_ssize_t *length)
DBCHAR
coded
;
assert
(
*
length
==
1
);
if
(
*
data
<
0x10000
)
{
TRYMAP_ENC
(
jisxcommon
,
coded
,
*
data
)
{
if
(
TRYMAP_ENC
(
jisxcommon
,
coded
,
*
data
)
)
{
if
(
coded
&
0x8000
)
return
coded
&
0x7fff
;
}
...
...
@@ -759,19 +760,18 @@ jisx0213_encoder(const Py_UCS4 *data, Py_ssize_t *length, void *config)
if
(
*
data
>=
0x10000
)
{
if
((
*
data
)
>>
16
==
0x20000
>>
16
)
{
EMULATE_JISX0213_2000_ENCODE_EMP
(
coded
,
*
data
)
else
TRYMAP_ENC
(
jisx0213_emp
,
coded
,
(
*
data
)
&
0xffff
)
else
if
(
TRYMAP_ENC
(
jisx0213_emp
,
coded
,
(
*
data
)
&
0xffff
))
return
coded
;
}
return
MAP_UNMAPPABLE
;
}
EMULATE_JISX0213_2000_ENCODE_BMP
(
coded
,
*
data
)
else
TRYMAP_ENC
(
jisx0213_bmp
,
coded
,
*
data
)
{
else
if
(
TRYMAP_ENC
(
jisx0213_bmp
,
coded
,
*
data
)
)
{
if
(
coded
==
MULTIC
)
return
MAP_MULTIPLE_AVAIL
;
}
else
TRYMAP_ENC
(
jisxcommon
,
coded
,
*
data
)
{
else
if
(
TRYMAP_ENC
(
jisxcommon
,
coded
,
*
data
)
)
{
if
(
coded
&
0x8000
)
return
MAP_UNMAPPABLE
;
}
...
...
@@ -962,7 +962,7 @@ gb2312_encoder(const Py_UCS4 *data, Py_ssize_t *length)
DBCHAR
coded
;
assert
(
*
length
==
1
);
if
(
*
data
<
0x10000
)
{
TRYMAP_ENC
(
gbcommon
,
coded
,
*
data
)
{
if
(
TRYMAP_ENC
(
gbcommon
,
coded
,
*
data
)
)
{
if
(
!
(
coded
&
0x8000
))
return
coded
;
}
...
...
Modules/cjkcodecs/_codecs_jp.c
Dosyayı görüntüle @
bd97ac35
...
...
@@ -49,11 +49,11 @@ ENCODER(cp932)
return
1
;
REQUIRE_OUTBUF
(
2
)
TRYMAP_ENC
(
cp932ext
,
code
,
c
)
{
if
(
TRYMAP_ENC
(
cp932ext
,
code
,
c
)
)
{
OUTBYTE1
(
code
>>
8
)
OUTBYTE2
(
code
&
0xff
)
}
else
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
{
else
if
(
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
)
{
if
(
code
&
0x8000
)
/* MSB set: JIS X 0212 */
return
1
;
...
...
@@ -165,7 +165,7 @@ ENCODER(euc_jis_2004)
if
(
c
<=
0xFFFF
)
{
EMULATE_JISX0213_2000_ENCODE_BMP
(
code
,
c
)
else
TRYMAP_ENC
(
jisx0213_bmp
,
code
,
c
)
{
else
if
(
TRYMAP_ENC
(
jisx0213_bmp
,
code
,
c
)
)
{
if
(
code
==
MULTIC
)
{
if
(
inlen
-
*
inpos
<
2
)
{
if
(
flags
&
MBENC_FLUSH
)
{
...
...
@@ -197,7 +197,7 @@ ENCODER(euc_jis_2004)
}
}
}
else
TRYMAP_ENC
(
jisxcommon
,
code
,
c
);
else
if
(
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
);
else
if
(
c
>=
0xff61
&&
c
<=
0xff9f
)
{
/* JIS X 0201 half-width katakana */
WRITEBYTE2
(
0x8e
,
c
-
0xfec0
)
...
...
@@ -215,7 +215,7 @@ ENCODER(euc_jis_2004)
}
else
if
(
c
>>
16
==
EMPBASE
>>
16
)
{
EMULATE_JISX0213_2000_ENCODE_EMP
(
code
,
c
)
else
TRYMAP_ENC
(
jisx0213_emp
,
code
,
c
&
0xffff
);
else
if
(
TRYMAP_ENC
(
jisx0213_emp
,
code
,
c
&
0xffff
)
);
else
return
insize
;
}
else
...
...
@@ -334,7 +334,7 @@ ENCODER(euc_jp)
if
(
c
>
0xFFFF
)
return
1
;
TRYMAP_ENC
(
jisxcommon
,
code
,
c
);
if
(
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
);
else
if
(
c
>=
0xff61
&&
c
<=
0xff9f
)
{
/* JIS X 0201 half-width katakana */
WRITEBYTE2
(
0x8e
,
c
-
0xfec0
)
...
...
@@ -469,7 +469,7 @@ ENCODER(shift_jis)
REQUIRE_OUTBUF
(
2
)
if
(
code
==
NOCHAR
)
{
TRYMAP_ENC
(
jisxcommon
,
code
,
c
);
if
(
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
);
#ifndef STRICT_BUILD
else
if
(
c
==
0xff3c
)
code
=
0x2140
;
/* FULL-WIDTH REVERSE SOLIDUS */
...
...
@@ -570,7 +570,7 @@ ENCODER(shift_jis_2004)
if
(
code
==
NOCHAR
)
{
if
(
c
<=
0xffff
)
{
EMULATE_JISX0213_2000_ENCODE_BMP
(
code
,
c
)
else
TRYMAP_ENC
(
jisx0213_bmp
,
code
,
c
)
{
else
if
(
TRYMAP_ENC
(
jisx0213_bmp
,
code
,
c
)
)
{
if
(
code
==
MULTIC
)
{
if
(
inlen
-
*
inpos
<
2
)
{
if
(
flags
&
MBENC_FLUSH
)
{
...
...
@@ -603,7 +603,7 @@ ENCODER(shift_jis_2004)
}
}
}
else
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
{
else
if
(
TRYMAP_ENC
(
jisxcommon
,
code
,
c
)
)
{
/* abandon JIS X 0212 codes */
if
(
code
&
0x8000
)
return
1
;
...
...
@@ -612,7 +612,7 @@ ENCODER(shift_jis_2004)
}
else
if
(
c
>>
16
==
EMPBASE
>>
16
)
{
EMULATE_JISX0213_2000_ENCODE_EMP
(
code
,
c
)
else
TRYMAP_ENC
(
jisx0213_emp
,
code
,
c
&
0xffff
);
else
if
(
TRYMAP_ENC
(
jisx0213_emp
,
code
,
c
&
0xffff
)
);
else
return
insize
;
}
else
...
...
Modules/cjkcodecs/_codecs_kr.c
Dosyayı görüntüle @
bd97ac35
...
...
@@ -47,7 +47,7 @@ ENCODER(euc_kr)
return
1
;
REQUIRE_OUTBUF
(
2
)
TRYMAP_ENC
(
cp949
,
code
,
c
);
if
(
TRYMAP_ENC
(
cp949
,
code
,
c
)
);
else
return
1
;
if
((
code
&
0x8000
)
==
0
)
{
...
...
@@ -182,7 +182,7 @@ ENCODER(cp949)
return
1
;
REQUIRE_OUTBUF
(
2
)
TRYMAP_ENC
(
cp949
,
code
,
c
);
if
(
TRYMAP_ENC
(
cp949
,
code
,
c
)
);
else
return
1
;
OUTBYTE1
((
code
>>
8
)
|
0x80
)
...
...
@@ -279,7 +279,7 @@ ENCODER(johab)
}
else
if
(
c
>=
0x3131
&&
c
<=
0x3163
)
code
=
u2johabjamo
[
c
-
0x3131
];
else
TRYMAP_ENC
(
cp949
,
code
,
c
)
{
else
if
(
TRYMAP_ENC
(
cp949
,
code
,
c
)
)
{
unsigned
char
c1
,
c2
,
t2
;
unsigned
short
t1
;
...
...
Modules/cjkcodecs/_codecs_tw.c
Dosyayı görüntüle @
bd97ac35
...
...
@@ -29,7 +29,7 @@ ENCODER(big5)
REQUIRE_OUTBUF
(
2
)
TRYMAP_ENC
(
big5
,
code
,
c
);
if
(
TRYMAP_ENC
(
big5
,
code
,
c
)
);
else
return
1
;
OUTBYTE1
(
code
>>
8
)
...
...
@@ -84,8 +84,8 @@ ENCODER(cp950)
return
1
;
REQUIRE_OUTBUF
(
2
)
TRYMAP_ENC
(
cp950ext
,
code
,
c
);
else
TRYMAP_ENC
(
big5
,
code
,
c
);
if
(
TRYMAP_ENC
(
cp950ext
,
code
,
c
)
);
else
if
(
TRYMAP_ENC
(
big5
,
code
,
c
)
);
else
return
1
;
OUTBYTE1
(
code
>>
8
)
...
...
Modules/cjkcodecs/cjkcodecs.h
Dosyayı görüntüle @
bd97ac35
...
...
@@ -172,10 +172,8 @@ static const struct dbcs_map *mapping_list;
((m)->map != NULL && (val) >= (m)->bottom && \
(val)<= (m)->top && ((assi) = (m)->map[(val) - \
(m)->bottom]) != NOCHAR)
#define TRYMAP_ENC
_COND
(charset, assi, uni) \
#define TRYMAP_ENC(charset, assi, uni) \
_TRYMAP_ENC(&charset##_encmap[(uni) >> 8], assi, (uni) & 0xff)
#define TRYMAP_ENC(charset, assi, uni) \
if TRYMAP_ENC_COND(charset, assi, uni)
#define _TRYMAP_DEC(m, assi, val) \
((m)->map != NULL && \
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment