home *** CD-ROM | disk | FTP | other *** search
- /* Conversion of files between different charsets and usages.
- Copyright (C) 1990, 1993, 1994 Free Software Foundation, Inc.
- Francois Pinard <pinard@iro.umontreal.ca>, 1988.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but
- WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
- #include "recode.h"
-
- static const char *const translation_table[128] =
- {
- NULL, /* 128 */
- NULL, /* 129 */
- NULL, /* 130 */
- NULL, /* 131 */
- NULL, /* 132 */
- NULL, /* 133 */
- NULL, /* 134 */
- NULL, /* 135 */
- NULL, /* 136 */
- NULL, /* 137 */
- NULL, /* 138 */
- NULL, /* 139 */
- NULL, /* 140 */
- NULL, /* 141 */
- NULL, /* 142 */
- NULL, /* 143 */
- NULL, /* 144 */
- NULL, /* 145 */
- NULL, /* 146 */
- NULL, /* 147 */
- NULL, /* 148 */
- NULL, /* 149 */
- NULL, /* 150 */
- NULL, /* 151 */
- NULL, /* 152 */
- NULL, /* 153 */
- NULL, /* 154 */
- NULL, /* 155 */
- NULL, /* 156 */
- NULL, /* 157 */
- NULL, /* 158 */
- NULL, /* 159 */
-
- " ", /* 160 no-break space */
- NULL, /* 161 inverted exclamation mark */
- NULL, /* 162 cent sign */
- NULL, /* 163 pound sign */
- NULL, /* 164 currency sign */
- NULL, /* 165 yen sign */
- NULL, /* 166 broken bar */
- NULL, /* 167 paragraph sign, section sign */
- NULL, /* 168 diaeresis */
- NULL, /* 169 copyright sign */
- NULL, /* 170 feminine ordinal indicator */
- "<\b\"", /* 171 left angle quotation mark */
- NULL, /* 172 not sign */
- NULL, /* 173 soft hyphen */
- NULL, /* 174 registered trade mark sign */
- NULL, /* 175 macron */
- NULL, /* 176 degree sign */
- NULL, /* 177 plus-minus sign */
- NULL, /* 178 superscript two */
- NULL, /* 179 superscript three */
- NULL, /* 180 acute accent */
- NULL, /* 181 small greek mu, micro sign */
- NULL, /* 182 pilcrow sign */
- NULL, /* 183 middle dot */
- NULL, /* 184 cedilla */
- NULL, /* 185 superscript one */
- NULL, /* 186 masculine ordinal indicator */
- ">\b\"", /* 187 right angle quotation mark */
- NULL, /* 188 vulgar fraction one quarter */
- NULL, /* 189 vulgar fraction one half */
- NULL, /* 190 vulgar fraction three quarters */
- NULL, /* 191 inverted question mark */
- "`\bA", /* 192 capital A with grave accent */
- "'\bA", /* 193 capital A with acute accent */
- "^\bA", /* 194 capital A with circumflex accent */
- "~\bA", /* 195 capital A with tilde */
- "\"\bA", /* 196 capital A diaeresis */
- NULL, /* 197 capital A with ring above */
- NULL, /* 198 capital diphthong A with E */
- ",\bC", /* 199 capital C with cedilla */
- "`\bE", /* 200 capital E with grave accent */
- "'\bE", /* 201 capital E with acute accent */
- "^\bE", /* 202 capital E with circumflex accent */
- "\"\bE", /* 203 capital E with diaeresis */
- "`\bI", /* 204 capital I with grave accent */
- "'\bI", /* 205 capital I with acute accent */
- "^\bI", /* 206 capital I with circumflex accent */
- "\"\bI", /* 207 capital I with diaeresis */
- NULL, /* 208 capital icelandic ETH */
- "~\bN", /* 209 capital N with tilde */
- "`\bO", /* 210 capital O with grave accent */
- "'\bO", /* 211 capital O with acute accent */
- "^\bO", /* 212 capital O with circumflex accent */
- "~\bO", /* 213 capital O with tilde */
- "\"\bO", /* 214 capital O with diaeresis */
- NULL, /* 215 multiplication sign */
- "/\bO", /* 216 capital O with oblique stroke */
- "`\bU", /* 217 capital U with grave accent */
- "'\bU", /* 218 capital U with acute accent */
- "^\bU", /* 219 capital U with circumflex accent */
- "\"\bU", /* 220 capital U with diaeresis */
- "'\bY", /* 221 capital Y with acute accent */
- NULL, /* 222 capital icelandic THORN */
- "\"\bs", /* 223 small german sharp s */
- "`\ba", /* 224 small a with grave accent */
- "'\ba", /* 225 small a with acute accent */
- "^\ba", /* 226 small a with circumflex accent */
- "~\ba", /* 227 small a with tilde */
- "\"\ba", /* 228 small a with diaeresis */
- NULL, /* 229 small a with ring above */
- NULL, /* 230 small diphthong a with e */
- ",\bc", /* 231 small c with cedilla */
- "`\be", /* 232 small e with grave accent */
- "'\be", /* 233 small e with acute accent */
- "^\be", /* 234 small e with circumflex accent */
- "\"\be", /* 235 small e with diaeresis */
- "`\bi", /* 236 small i with grave accent */
- "'\bi", /* 237 small i with acute accent */
- "^\bi", /* 238 small i with circumflex accent */
- "\"\bi", /* 239 small i with diaeresis */
- NULL, /* 240 small icelandic eth */
- "~\bn", /* 241 small n with tilde */
- "`\bo", /* 242 small o with grave accent */
- "'\bo", /* 243 small o with acute accent */
- "^\bo", /* 244 small o with circumflex accent */
- "~\bo", /* 245 small o with tilde */
- "\"\bo", /* 246 small o with diaeresis */
- NULL, /* 247 division sign */
- "/\bo", /* 248 small o with oblique stroke */
- "`\bu", /* 249 small u with grave accent */
- "'\bu", /* 250 small u with acute accent */
- "^\bu", /* 251 small u with circumflex accent */
- "\"\bu", /* 252 small u with diaeresis */
- "'\by", /* 253 small y with acute accent */
- NULL, /* 254 small icelandic thorn */
- "\"\by", /* 255 small y with diaeresis */
- };
-
- static void
- init_latin1_ascii (STEP *step)
- {
- const char **table;
- char *pool;
- int counter;
-
- table = (const char **) xmalloc (256 * sizeof (char *) + 256);
- pool = (char *) (table + 256);
-
- for (counter = 0; counter < 128; counter++)
- {
- table[counter] = pool;
- *pool++ = counter;
- *pool++ = '\0';
- }
- for (; counter < 256; counter++)
- table[counter] = translation_table[counter - 128];
-
- step->one_to_many = table;
- }
-
- void
- module_latin1_ascii (void)
- {
- declare_step ("Latin-1", "ASCII-BS", ONE_TO_MANY, init_latin1_ascii,
- file_one_to_many);
- }
-