ftp.nice.ch/pub/next/unix/text/recode-3.4.s.tar.gz#/recode-3.4/lat1asci.c

This is lat1asci.c in view mode; [Download] [Up]

/* 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);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.