Add GNU LGPL headers to all .c .C and .h files
[oweals/cde.git] / cde / programs / dtksh / ksh93 / src / lib / libast / string / memetoa.c
1 /*
2  * CDE - Common Desktop Environment
3  *
4  * Copyright (c) 1993-2012, The Open Group. All rights reserved.
5  *
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)
10  * any later version.
11  *
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
16  * details.
17  *
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
22  */
23 /* $XConsortium: memetoa.c /main/3 1995/11/01 18:46:46 rswiston $ */
24 /***************************************************************
25 *                                                              *
26 *                      AT&T - PROPRIETARY                      *
27 *                                                              *
28 *         THIS IS PROPRIETARY SOURCE CODE LICENSED BY          *
29 *                          AT&T CORP.                          *
30 *                                                              *
31 *                Copyright (c) 1995 AT&T Corp.                 *
32 *                     All Rights Reserved                      *
33 *                                                              *
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        *
37 *                                                              *
38 *               This software was created by the               *
39 *           Software Engineering Research Department           *
40 *                    AT&T Bell Laboratories                    *
41 *                                                              *
42 *               For further information contact                *
43 *                     gsf@research.att.com                     *
44 *                                                              *
45 ***************************************************************/
46
47 /* : : generated by proto : : */
48
49 #if !defined(__PROTO__)
50 #if defined(__STDC__) || defined(__cplusplus) || defined(_proto) || defined(c_plusplus)
51 #if defined(__cplusplus)
52 #define __MANGLE__      "C"
53 #else
54 #define __MANGLE__
55 #endif
56 #define __STDARG__
57 #define __PROTO__(x)    x
58 #define __OTORP__(x)
59 #define __PARAM__(n,o)  n
60 #if !defined(__STDC__) && !defined(__cplusplus)
61 #if !defined(c_plusplus)
62 #define const
63 #endif
64 #define signed
65 #define void            int
66 #define volatile
67 #define __V_            char
68 #else
69 #define __V_            void
70 #endif
71 #else
72 #define __PROTO__(x)    ()
73 #define __OTORP__(x)    x
74 #define __PARAM__(n,o)  o
75 #define __MANGLE__
76 #define __V_            char
77 #define const
78 #define signed
79 #define void            int
80 #define volatile
81 #endif
82 #if defined(__cplusplus) || defined(c_plusplus)
83 #define __VARARG__      ...
84 #else
85 #define __VARARG__
86 #endif
87 #if defined(__STDARG__)
88 #define __VA_START__(p,a)       va_start(p,a)
89 #else
90 #define __VA_START__(p,a)       va_start(p)
91 #endif
92 #endif
93 #include <ast.h>
94
95 /*
96  * this is an EBCDIC to ASCII conversion table
97  * from a proposed BTL standard April 16, 1979
98  */
99
100 static unsigned char etoa[] =
101 {
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,
134 };
135
136 /*
137  * convert n bytes of EBCDIC ip to ASCII op
138  * ip==op is ok
139  */
140
141 void
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;
145
146         while (n-- > 0) *op++ = etoa[*ip++];
147 }