summaryrefslogtreecommitdiffstats
path: root/Modules/cjkcodecs/alg_jisx0201.h
diff options
context:
space:
mode:
authorHye-Shik Chang <hyeshik@gmail.com>2004-01-17 14:29:29 (GMT)
committerHye-Shik Chang <hyeshik@gmail.com>2004-01-17 14:29:29 (GMT)
commit3e2a30692085d32ac63f72b35da39158a471fc68 (patch)
tree4cbe735f61eae87ac56a13ca6bd32113b98bd03d /Modules/cjkcodecs/alg_jisx0201.h
parentcd1f7430cb8f48de970021071d7683054c23b10f (diff)
downloadcpython-3e2a30692085d32ac63f72b35da39158a471fc68.zip
cpython-3e2a30692085d32ac63f72b35da39158a471fc68.tar.gz
cpython-3e2a30692085d32ac63f72b35da39158a471fc68.tar.bz2
Add CJK codecs support as discussed on python-dev. (SF #873597)
Several style fixes are suggested by Martin v. Loewis and Marc-Andre Lemburg. Thanks!
Diffstat (limited to 'Modules/cjkcodecs/alg_jisx0201.h')
-rw-r--r--Modules/cjkcodecs/alg_jisx0201.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/Modules/cjkcodecs/alg_jisx0201.h b/Modules/cjkcodecs/alg_jisx0201.h
new file mode 100644
index 0000000..6152c75
--- /dev/null
+++ b/Modules/cjkcodecs/alg_jisx0201.h
@@ -0,0 +1,27 @@
+/* $CJKCodecs: alg_jisx0201.h,v 1.2 2003/11/27 16:42:20 perky Exp $ */
+
+#define JISX0201_R_ENCODE(c, assi) \
+ if ((c) < 0x80 && (c) != 0x5c && (c) != 0x7e) \
+ (assi) = (c); \
+ else if ((c) == 0x00a5) (assi) = 0x5c; \
+ else if ((c) == 0x203e) (assi) = 0x7e;
+#define JISX0201_K_ENCODE(c, assi) \
+ if ((c) >= 0xff61 && (c) <= 0xff9f) \
+ (assi) = (c) - 0xfec0;
+#define JISX0201_ENCODE(c, assi) \
+ JISX0201_R_ENCODE(c, assi) \
+ else JISX0201_K_ENCODE(c, assi)
+
+#define JISX0201_R_DECODE(c, assi) \
+ if ((c) < 0x5c) (assi) = (c); \
+ else if ((c) == 0x5c) (assi) = 0x00a5; \
+ else if ((c) < 0x7e) (assi) = (c); \
+ else if ((c) == 0x7e) (assi) = 0x203e; \
+ else if ((c) == 0x7f) (assi) = 0x7f;
+#define JISX0201_K_DECODE(c, assi) \
+ if ((c) >= 0xa1 && (c) <= 0xdf) \
+ (assi) = 0xfec0 + (c);
+#define JISX0201_DECODE(c, assi) \
+ JISX0201_R_DECODE(c, assi) \
+ else JISX0201_K_DECODE(c, assi)
+