2 * CDE - Common Desktop Environment
4 * Copyright (c) 1993-2012, The Open Group. All rights reserved.
6 * These libraries and programs are free software; you can
7 * redistribute them and/or modify them under the terms of the GNU
8 * Lesser General Public License as published by the Free Software
9 * Foundation; either version 2 of the License, or (at your option)
12 * These libraries and programs are distributed in the hope that
13 * they will be useful, but WITHOUT ANY WARRANTY; without even the
14 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU Lesser General Public License for more
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with these librararies and programs; if not, write
20 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
21 * Floor, Boston, MA 02110-1301 USA
23 /* $XConsortium: memetoa.c /main/3 1995/11/01 18:46:46 rswiston $ */
24 /***************************************************************
26 * AT&T - PROPRIETARY *
28 * THIS IS PROPRIETARY SOURCE CODE LICENSED BY *
31 * Copyright (c) 1995 AT&T Corp. *
32 * All Rights Reserved *
34 * This software is licensed by AT&T Corp. *
35 * under the terms and conditions of the license in *
36 * http://www.research.att.com/orgs/ssr/book/reuse *
38 * This software was created by the *
39 * Software Engineering Research Department *
40 * AT&T Bell Laboratories *
42 * For further information contact *
43 * gsf@research.att.com *
45 ***************************************************************/
47 /* : : generated by proto : : */
49 #if !defined(__PROTO__)
50 #if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
51 #if defined(__cplusplus)
52 #define __MANGLE__ "C"
57 #define __PROTO__(x) x
59 #define __PARAM__(n,o) n
60 #if !defined(__STDC__) && !defined(__cplusplus)
61 #if !defined(c_plusplus)
72 #define __PROTO__(x) ()
73 #define __OTORP__(x) x
74 #define __PARAM__(n,o) o
82 #if defined(__cplusplus) || defined(c_plusplus)
83 #define __VARARG__ ...
87 #if defined(__STDARG__)
88 #define __VA_START__(p,a) va_start(p,a)
90 #define __VA_START__(p,a) va_start(p)
96 * this is an EBCDIC to ASCII conversion table
97 * from a proposed BTL standard April 16, 1979
100 static unsigned char etoa[] =
102 0000,0001,0002,0003,0234,0011,0206,0177,
103 0227,0215,0216,0013,0014,0015,0016,0017,
104 0020,0021,0022,0023,0235,0205,0010,0207,
105 0030,0031,0222,0217,0034,0035,0036,0037,
106 0200,0201,0202,0203,0204,0012,0027,0033,
107 0210,0211,0212,0213,0214,0005,0006,0007,
108 0220,0221,0026,0223,0224,0225,0226,0004,
109 0230,0231,0232,0233,0024,0025,0236,0032,
110 0040,0240,0241,0242,0243,0244,0245,0246,
111 0247,0250,0325,0056,0074,0050,0053,0174,
112 0046,0251,0252,0253,0254,0255,0256,0257,
113 0260,0261,0041,0044,0052,0051,0073,0176,
114 0055,0057,0262,0263,0264,0265,0266,0267,
115 0270,0271,0313,0054,0045,0137,0076,0077,
116 0272,0273,0274,0275,0276,0277,0300,0301,
117 0302,0140,0072,0043,0100,0047,0075,0042,
118 0303,0141,0142,0143,0144,0145,0146,0147,
119 0150,0151,0304,0305,0306,0307,0310,0311,
120 0312,0152,0153,0154,0155,0156,0157,0160,
121 0161,0162,0136,0314,0315,0316,0317,0320,
122 0321,0345,0163,0164,0165,0166,0167,0170,
123 0171,0172,0322,0323,0324,0133,0326,0327,
124 0330,0331,0332,0333,0334,0335,0336,0337,
125 0340,0341,0342,0343,0344,0135,0346,0347,
126 0173,0101,0102,0103,0104,0105,0106,0107,
127 0110,0111,0350,0351,0352,0353,0354,0355,
128 0175,0112,0113,0114,0115,0116,0117,0120,
129 0121,0122,0356,0357,0360,0361,0362,0363,
130 0134,0237,0123,0124,0125,0126,0127,0130,
131 0131,0132,0364,0365,0366,0367,0370,0371,
132 0060,0061,0062,0063,0064,0065,0066,0067,
133 0070,0071,0372,0373,0374,0375,0376,0377,
137 * convert n bytes of EBCDIC ip to ASCII op
142 memetoa __PARAM__((__V_* aop, const __V_* aip, register size_t n), (aop, aip, n)) __OTORP__(__V_* aop; const __V_* aip; register size_t n;){
143 register unsigned char* op = (unsigned char*)aop;
144 register const unsigned char* ip = (const unsigned char*)aip;
146 while (n-- > 0) *op++ = etoa[*ip++];