📄 pgpcharmap.c
字号:
/*
* Charmap.c
*
* Mapping tables between different character sets.
*
* Written by colin Plumb.
*
* $Id: pgpCharMap.c,v 1.8 1997/09/15 21:21:54 hal Exp $
*/
#include <string.h>
#include "pgpConfig.h"
#include <ctype.h>
#include "pgpCharMap.h"
#include "pgpErrors.h"
/**********************************************************************/
/* *INDENT-OFF* */
unsigned char const charMapIdentity[256] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
};
/* *INDENT-ON* */
/* Conversion table from `latin1' charset to `cp850' charset.
* Generated mechanically by GNU recode 3.4.
*
* The recoding should be reversible.
*/
static unsigned char const latin1_to_cp850[256] =
{
0, 1, 2, 3, 4, 5, 6, 7, /* 0 - 7 */
8, 9, 10, 11, 12, 13, 14, 15, /* 8 - 15 */
16, 17, 18, 19, 20, 21, 22, 23, /* 16 - 23 */
24, 25, 26, 27, 28, 29, 30, 31, /* 24 - 31 */
32, 33, 34, 35, 36, 37, 38, 39, /* 32 - 39 */
40, 41, 42, 43, 44, 45, 46, 47, /* 40 - 47 */
48, 49, 50, 51, 52, 53, 54, 55, /* 48 - 55 */
56, 57, 58, 59, 60, 61, 62, 63, /* 56 - 63 */
64, 65, 66, 67, 68, 69, 70, 71, /* 64 - 71 */
72, 73, 74, 75, 76, 77, 78, 79, /* 72 - 79 */
80, 81, 82, 83, 84, 85, 86, 87, /* 80 - 87 */
88, 89, 90, 91, 92, 93, 94, 95, /* 88 - 95 */
96, 97, 98, 99, 100, 101, 102, 103, /* 96 - 103 */
104, 105, 106, 107, 108, 109, 110, 111, /* 104 - 111 */
112, 113, 114, 115, 116, 117, 118, 119, /* 112 - 119 */
120, 121, 122, 123, 124, 125, 126, 127, /* 120 - 127 */
195, 179, 218, 200, 186, 203, 213, 204, /* 128 - 135 */
219, 217, 254, 180, 238, 178, 196, 197, /* 136 - 143 */
201, 230, 202, 194, 247, 242, 185, 191, /* 144 - 151 */
223, 205, 220, 176, 250, 177, 206, 159, /* 152 - 159 */
255, 173, 189, 156, 207, 190, 221, 245, /* 160 - 167 */
249, 184, 166, 174, 170, 240, 169, 187, /* 168 - 175 */
248, 241, 253, 252, 239, 193, 244, 192, /* 176 - 183 */
188, 251, 167, 175, 172, 171, 243, 168, /* 184 - 191 */
183, 181, 182, 199, 142, 143, 146, 128, /* 192 - 199 */
212, 144, 210, 211, 222, 214, 215, 216, /* 200 - 207 */
209, 165, 227, 224, 226, 229, 153, 158, /* 208 - 215 */
157, 235, 233, 234, 154, 237, 231, 225, /* 216 - 223 */
133, 160, 131, 198, 132, 134, 145, 135, /* 224 - 231 */
138, 130, 136, 137, 141, 161, 140, 139, /* 232 - 239 */
208, 164, 149, 162, 147, 228, 148, 246, /* 240 - 247 */
155, 151, 163, 150, 129, 236, 232, 152 /* 248 - 255 */
};
/* Conversion table from `cp850' charset to `latin1' charset.
* Generated mechanically by GNU recode 3.4.
*
* The recoding should be reversible.
*/
static unsigned char const cp850_to_latin1[256] =
{
0, 1, 2, 3, 4, 5, 6, 7, /* 0 - 7 */
8, 9, 10, 11, 12, 13, 14, 15, /* 8 - 15 */
16, 17, 18, 19, 20, 21, 22, 23, /* 16 - 23 */
24, 25, 26, 27, 28, 29, 30, 31, /* 24 - 31 */
32, 33, 34, 35, 36, 37, 38, 39, /* 32 - 39 */
40, 41, 42, 43, 44, 45, 46, 47, /* 40 - 47 */
48, 49, 50, 51, 52, 53, 54, 55, /* 48 - 55 */
56, 57, 58, 59, 60, 61, 62, 63, /* 56 - 63 */
64, 65, 66, 67, 68, 69, 70, 71, /* 64 - 71 */
72, 73, 74, 75, 76, 77, 78, 79, /* 72 - 79 */
80, 81, 82, 83, 84, 85, 86, 87, /* 80 - 87 */
88, 89, 90, 91, 92, 93, 94, 95, /* 88 - 95 */
96, 97, 98, 99, 100, 101, 102, 103, /* 96 - 103 */
104, 105, 106, 107, 108, 109, 110, 111, /* 104 - 111 */
112, 113, 114, 115, 116, 117, 118, 119, /* 112 - 119 */
120, 121, 122, 123, 124, 125, 126, 127, /* 120 - 127 */
199, 252, 233, 226, 228, 224, 229, 231, /* 128 - 135 */
234, 235, 232, 239, 238, 236, 196, 197, /* 136 - 143 */
201, 230, 198, 244, 246, 242, 251, 249, /* 144 - 151 */
255, 214, 220, 248, 163, 216, 215, 159, /* 152 - 159 */
225, 237, 243, 250, 241, 209, 170, 186, /* 160 - 167 */
191, 174, 172, 189, 188, 161, 171, 187, /* 168 - 175 */
155, 157, 141, 129, 139, 193, 194, 192, /* 176 - 183 */
169, 150, 132, 175, 184, 162, 165, 151, /* 184 - 191 */
183, 181, 147, 128, 142, 143, 227, 195, /* 192 - 199 */
131, 144, 146, 133, 135, 153, 158, 164, /* 200 - 207 */
240, 208, 202, 203, 200, 134, 205, 206, /* 208 - 215 */
207, 137, 130, 136, 154, 166, 204, 152, /* 216 - 223 */
211, 223, 212, 210, 245, 213, 145, 222, /* 224 - 231 */
254, 218, 219, 217, 253, 221, 140, 180, /* 232 - 239 */
173, 177, 149, 190, 182, 167, 247, 148, /* 240 - 247 */
176, 168, 156, 185, 179, 178, 138, 160 /* 248 - 255 */
};
/* Conversion table from `latin1' charset to `ebcdic' charset.
Generated mechanically by GNU recode 3.4.
The recoding should be reversible.
*/
static unsigned char const latin1_to_ebcdic[256] =
{
0, 1, 2, 3, 55, 45, 46, 47, /* 0 - 7 */
22, 5, 37, 11, 12, 13, 14, 15, /* 8 - 15 */
16, 17, 18, 19, 60, 61, 50, 38, /* 16 - 23 */
24, 25, 63, 39, 28, 29, 30, 31, /* 24 - 31 */
64, 79, 127, 123, 91, 108, 80, 125, /* 32 - 39 */
77, 93, 92, 78, 107, 96, 75, 97, /* 40 - 47 */
240, 241, 242, 243, 244, 245, 246, 247, /* 48 - 55 */
248, 249, 122, 94, 76, 126, 110, 111, /* 56 - 63 */
124, 193, 194, 195, 196, 197, 198, 199, /* 64 - 71 */
200, 201, 209, 210, 211, 212, 213, 214, /* 72 - 79 */
215, 216, 217, 226, 227, 228, 229, 230, /* 80 - 87 */
231, 232, 233, 74, 224, 90, 95, 109, /* 88 - 95 */
121, 129, 130, 131, 132, 133, 134, 135, /* 96 - 103 */
136, 137, 145, 146, 147, 148, 149, 150, /* 104 - 111 */
151, 152, 153, 162, 163, 164, 165, 166, /* 112 - 119 */
167, 168, 169, 192, 106, 208, 161, 7, /* 120 - 127 */
32, 33, 34, 35, 36, 21, 6, 23, /* 128 - 135 */
40, 41, 42, 43, 44, 9, 10, 27, /* 136 - 143 */
48, 49, 26, 51, 52, 53, 54, 8, /* 144 - 151 */
56, 57, 58, 59, 4, 20, 62, 225, /* 152 - 159 */
65, 66, 67, 68, 69, 70, 71, 72, /* 160 - 167 */
73, 81, 82, 83, 84, 85, 86, 87, /* 168 - 175 */
88, 89, 98, 99, 100, 101, 102, 103, /* 176 - 183 */
104, 105, 112, 113, 114, 115, 116, 117, /* 184 - 191 */
118, 119, 120, 128, 138, 139, 140, 141, /* 192 - 199 */
142, 143, 144, 154, 155, 156, 157, 158, /* 200 - 207 */
159, 160, 170, 171, 172, 173, 174, 175, /* 208 - 215 */
176, 177, 178, 179, 180, 181, 182, 183, /* 216 - 223 */
184, 185, 186, 187, 188, 189, 190, 191, /* 224 - 231 */
202, 203, 204, 205, 206, 207, 218, 219, /* 232 - 239 */
220, 221, 222, 223, 234, 235, 236, 237, /* 240 - 247 */
238, 239, 250, 251, 252, 253, 254, 255, /* 248 - 255 */
};
/* Conversion table from `ebcdic' charset to `latin1' charset.
Generated mechanically by GNU recode 3.4.
The recoding should be reversible.
*/
static unsigned char const ebcdic_to_latin1[256] =
{
0, 1, 2, 3, 156, 9, 134, 127, /* 0 - 7 */
151, 141, 142, 11, 12, 13, 14, 15, /* 8 - 15 */
16, 17, 18, 19, 157, 133, 8, 135, /* 16 - 23 */
24, 25, 146, 143, 28, 29, 30, 31, /* 24 - 31 */
128, 129, 130, 131, 132, 10, 23, 27, /* 32 - 39 */
136, 137, 138, 139, 140, 5, 6, 7, /* 40 - 47 */
144, 145, 22, 147, 148, 149, 150, 4, /* 48 - 55 */
152, 153, 154, 155, 20, 21, 158, 26, /* 56 - 63 */
32, 160, 161, 162, 163, 164, 165, 166, /* 64 - 71 */
167, 168, 91, 46, 60, 40, 43, 33, /* 72 - 79 */
38, 169, 170, 171, 172, 173, 174, 175, /* 80 - 87 */
176, 177, 93, 36, 42, 41, 59, 94, /* 88 - 95 */
45, 47, 178, 179, 180, 181, 182, 183, /* 96 - 103 */
184, 185, 124, 44, 37, 95, 62, 63, /* 104 - 111 */
186, 187, 188, 189, 190, 191, 192, 193, /* 112 - 119 */
194, 96, 58, 35, 64, 39, 61, 34, /* 120 - 127 */
195, 97, 98, 99, 100, 101, 102, 103, /* 128 - 135 */
104, 105, 196, 197, 198, 199, 200, 201, /* 136 - 143 */
202, 106, 107, 108, 109, 110, 111, 112, /* 144 - 151 */
113, 114, 203, 204, 205, 206, 207, 208, /* 152 - 159 */
209, 126, 115, 116, 117, 118, 119, 120, /* 160 - 167 */
121, 122, 210, 211, 212, 213, 214, 215, /* 168 - 175 */
216, 217, 218, 219, 220, 221, 222, 223, /* 176 - 183 */
224, 225, 226, 227, 228, 229, 230, 231, /* 184 - 191 */
123, 65, 66, 67, 68, 69, 70, 71, /* 192 - 199 */
72, 73, 232, 233, 234, 235, 236, 237, /* 200 - 207 */
125, 74, 75, 76, 77, 78, 79, 80, /* 208 - 215 */
81, 82, 238, 239, 240, 241, 242, 243, /* 216 - 223 */
92, 159, 83, 84, 85, 86, 87, 88, /* 224 - 231 */
89, 90, 244, 245, 246, 247, 248, 249, /* 232 - 239 */
48, 49, 50, 51, 52, 53, 54, 55, /* 240 - 247 */
56, 57, 250, 251, 252, 253, 254, 255, /* 248 - 255 */
};
/* Crude, non-invertible accent-dropping mapping from Latin1 to Ascii */
static unsigned char const latin1_to_ascii[256] =
{
0, 1, 2, 3, 4, 5, 6, 7, /* 0 - 7 */
8, 9, 10, 11, 12, 13, 14, 15, /* 8 - 15 */
16, 17, 18, 19, 20, 21, 22, 23, /* 16 - 23 */
24, 25, 26, 27, 28, 29, 30, 31, /* 24 - 31 */
32, 33, 34, 35, 36, 37, 38, 39, /* 32 - 39 */
40, 41, 42, 43, 44, 45, 46, 47, /* 40 - 47 */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -