⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pgpcharmap.c

📁 vc环境下的pgp源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*
 * 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 + -