This is lat1txte.c in view mode; [Download] [Up]
/* Conversion of files between different charsets and usages. Copyright (C) 1990, 1993 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 */ "``", /* 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 */ "''", /* 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 */ "A`", /* 192 capital A with grave accent */ NULL, /* 193 capital A with acute accent */ "A^", /* 194 capital A with circumflex accent */ NULL, /* 195 capital A with tilde */ "A\"", /* 196 capital A diaeresis */ NULL, /* 197 capital A with ring above */ NULL, /* 198 capital diphthong A with E */ "C,", /* 199 capital C with cedilla */ "E`", /* 200 capital E with grave accent */ "E\'", /* 201 capital E with acute accent */ "E^", /* 202 capital E with circumflex accent */ "E\"", /* 203 capital E with diaeresis */ NULL, /* 204 capital I with grave accent */ NULL, /* 205 capital I with acute accent */ "I^", /* 206 capital I with circumflex accent */ "I\"", /* 207 capital I with diaeresis */ NULL, /* 208 capital icelandic ETH */ NULL, /* 209 capital N with tilde */ "O`", /* 210 capital O with grave accent */ NULL, /* 211 capital O with acute accent */ "O^", /* 212 capital O with circumflex accent */ NULL, /* 213 capital O with tilde */ "O\"", /* 214 capital O with diaeresis */ NULL, /* 215 multiplication sign */ NULL, /* 216 capital O with oblique stroke */ "U`", /* 217 capital U with grave accent */ NULL, /* 218 capital U with acute accent */ "U^", /* 219 capital U with circumflex accent */ "U\"", /* 220 capital U with diaeresis */ NULL, /* 221 capital Y with acute accent */ NULL, /* 222 capital icelandic THORN */ NULL, /* 223 small german sharp s */ "a`", /* 224 small a with grave accent */ NULL, /* 225 small a with acute accent */ "a^", /* 226 small a with circumflex accent */ NULL, /* 227 small a with tilde */ "a\"", /* 228 small a with diaeresis */ NULL, /* 229 small a with ring above */ NULL, /* 230 small diphthong a with e */ "c,", /* 231 small c with cedilla */ "e`", /* 232 small e with grave accent */ "e\'", /* 233 small e with acute accent */ "e^", /* 234 small e with circumflex accent */ "e\"", /* 235 small e with diaeresis */ NULL, /* 236 small i with grave accent */ NULL, /* 237 small i with acute accent */ "i^", /* 238 small i with circumflex accent */ "i\"", /* 239 small i with diaeresis */ NULL, /* 240 small icelandic eth */ NULL, /* 241 small n with tilde */ "o`", /* 242 small o with grave accent */ NULL, /* 243 small o with acute accent */ "o^", /* 244 small o with circumflex accent */ NULL, /* 245 small o with tilde */ "o\"", /* 246 small o with diaeresis */ NULL, /* 247 division sign */ NULL, /* 248 small o with oblique stroke */ "u`", /* 249 small u with grave accent */ NULL, /* 250 small u with acute accent */ "u^", /* 251 small u with circumflex accent */ "u\"", /* 252 small u with diaeresis */ NULL, /* 253 small y with acute accent */ NULL, /* 254 small icelandic thorn */ NULL, /* 255 small y with diaeresis */ }; static void init_latin1_texte (STEP *step) { int rewritten; /* number of rewritten translations */ const char **table; /* allocated structure, including pool */ char *pool; /* cursor in character pool */ int counter; /* general purpose counter */ /* The algorithm for proper processing of -c option depends on the fact that quotes to be changed in colons are exactly those, in strings from translation_table, which are in second position while the string is two characters in length. This is sufficient for now. */ rewritten = 0; if (diaeresis_char != '"') for (counter = 128; counter < 256; counter++) if (translation_table[counter - 128] && translation_table[counter - 128][1] == '"' && translation_table[counter - 128][2] == '\0') rewritten++; table = (const char **) xmalloc (sizeof (char *) * 256 + 2 * 128 + 3 * rewritten); pool = (char *) (table + 256); for (counter = 0; counter < 128; counter++) { table[counter] = pool; *pool++ = counter; *pool++ = '\0'; } for (; counter < 256; counter++) if (diaeresis_char != '"' && translation_table[counter - 128] && translation_table[counter - 128][1] == '"' && translation_table[counter - 128][2] == '\0') { table[counter] = pool; *pool++ = translation_table[counter - 128][0]; *pool++ = diaeresis_char; *pool++ = '\0'; } else table[counter] = translation_table[counter - 128]; step->one_to_many = table; } void module_latin1_texte (void) { declare_step ("Latin-1", "Texte", ONE_TO_MANY, init_latin1_texte, file_one_to_many); declare_alias ("txte", "Texte"); }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.