ftp.nice.ch/pub/next/unix/text/NeXT_French_Dictionary.3.1.08.I.bs.tar.gz#/NeXT_French_Dictionary3.1.08/src/next_francais/conv_iso_next/next2iso.c

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

#include <stdio.h>


FILE   *fileIn,*fileOut;
char   fileNameIn[30];
char   fileNameOut[30];
char   shCommand[80];
int    pipeOk = 0;


int localGet(valuePtr)
int *valuePtr;
{
  if (pipeOk == 0){
    *valuePtr = getc(fileIn);
  }else{ 
    *valuePtr = getchar();
  }
  return *valuePtr;
}

localPut(value)
int  value;
{
  if (pipeOk == 0){
    putc(value,fileOut);
  }else{
    putchar(value);
  }
}

processFile()
{
     int current_char;

     while ( localGet(&current_char) != EOF)
     {
        if (current_char < 128){
           localPut(current_char);
	 }else{
	   switch ( current_char)
	   { 
	     case (int)128 : localPut(32); /* */
                      break;
	     case (int)129 : localPut(192); /* Agrave */
                      break;
	     case (int)130 : localPut(193); /* Aacute */
                      break;
	     case (int)131 : localPut(194); /* Acircumflex */
                      break;
	     case (int)132 : localPut(195); /* Atilde */
                      break;
	     case (int)133 : localPut(196); /* Adieresis */
                      break;
	     case (int)134 : localPut(197); /* Aring */
                      break;
	     case (int)135 : localPut(199); /* Ccedilla */
                      break;
	     case (int)136 : localPut(200); /* Egrave */
                      break;
	     case (int)137 : localPut(201); /* Eacute */
                      break;
	     case (int)138 : localPut(202); /* Ecircumflex */
                      break;
	     case (int)139 : localPut(203); /* Edieresis */
                      break;
	     case (int)140 : localPut(204); /* Igrave */
                      break;
	     case (int)141 : localPut(205); /* Iacute */
                      break;
	     case (int)142 : localPut(206); /* Icircumflex */
                      break;
	     case (int)143 : localPut(207); /* Idieresis */
                      break;
	     case (int)144 : localPut(208); /* Eth */
                      break;
	     case (int)145 : localPut(209); /* Ntilde */
                      break;
	     case (int)146 : localPut(210); /* Ograve */
                      break;
	     case (int)147 : localPut(211); /* Oacute */
                      break;
	     case (int)148 : localPut(212); /* Ocircumflex */
                      break;
	     case (int)149 : localPut(213); /* Otilde */
                      break;
	     case (int)150 : localPut(214); /* Odieresis */
                      break;
	     case (int)151 : localPut(217); /* Ugrave */
                      break;
	     case (int)152 : localPut(218); /* Uacute */
                      break;
	     case (int)153 : localPut(219); /* Ucircumflex */
                      break;
	     case (int)154 : localPut(220); /* Udieresis */
                      break;
	     case (int)155 : localPut(221); /* Yacute */
                      break;
	     case (int)156 : localPut(222); /* Thorn */
                      break;
	     case (int)157 : localPut(181); /* mu */
                      break;
	     case (int)158 : localPut(215); /* multiply */
                      break;
	     case (int)159 : localPut(247); /* divide */
                      break;
	     case (int)160 : localPut(169); /* copyright */
                      break;
	     case (int)161 : localPut(161); /* exclamdown */
                      break;
	     case (int)162 : localPut(162); /* cent */
                      break;
	     case (int)163 : localPut(163); /* sterling */
                      break;
	     case (int)164 : localPut(47); /* fraction -> */
                      break;
	     case (int)165 : localPut(165); /* yen */
                      break;
	     case (int)166 : localPut(63); /* florin -> 266 */
                      break;
	     case (int)167 : localPut(167); /* section */
                      break;
	     case (int)168 : localPut(164); /* currency */
                      break;
	     case (int)169 : localPut(63); /* quotesingle -> 262 */
                      break;
	     case (int)170 : localPut(63); /* quotedblleft -> 272 */
                      break;
	     case (int)171 : localPut(171); /* guillemotleft */
                      break;
	     case (int)172 : localPut(63); /* guilsinglleft -> 276 */
                      break;
	     case (int)173 : localPut(63); /* guilsinglright -> 277 */
                      break;
	     case (int)174 : localPut(63); /* fi -> 278 */
                      break;
	     case (int)175 : localPut(63); /* fl -> 279 */
                      break;
	     case (int)176 : localPut(174); /* registered */
                      break;
	     case (int)177 : localPut(45); /* endash -> 270 */
                      break;
	     case (int)178 : localPut(63); /* dagger -> 263 */
                      break;
	     case (int)179 : localPut(63); /* daggerdbl -> 280 */
                      break;
	     case (int)180 : localPut(183); /* periodcentered */
                      break;
	     case (int)181 : localPut(166); /* brokenbar */
                      break;
	     case (int)182 : localPut(182); /* paragraph */
                      break;
	     case (int)183 : localPut(63); /* bullet -> 264 */
                      break;
	     case (int)184 : localPut(63); /* quotesinglbase -> 281 */
                      break;
	     case (int)185 : localPut(63); /* quotedblbase -> 282 */
                      break;
	     case (int)186 : localPut(63); /* quotedblright -> 273 */
                      break;
	     case (int)187 : localPut(187); /* guillemotright -> 187 */
                      break;
	     case (int)188 : localPut(63); /* ellipsis -> 267 */
                      break;
	     case (int)189 : localPut(63); /* perthousand -> 283 */
                      break;
	     case (int)190 : localPut(172); /* logicalnot */
                      break;
	     case (int)191 : localPut(191); /* questiondown */
                      break;
	     case (int)192 : localPut(185); /* onesuperior */
                      break;
	     case (int)193 : localPut(145); /* grave */
                      break;
	     case (int)194 : localPut(146); /* acute */
                      break;
	     case (int)195 : localPut(147); /* circumflex */
                      break;
	     case (int)196 : localPut(148); /* tilde */
                      break;
	     case (int)197 : localPut(149); /* macron */
                      break;
	     case (int)198 : localPut(150); /* breve */
                      break;
	     case (int)199 : localPut(151); /* dotaccent */
                      break;
	     case (int)200 : localPut(152); /* dieresis */
                      break;
	     case (int)201 : localPut(178); /* twosuperior */
                      break;
	     case (int)202 : localPut(154); /* ring */
                      break;
	     case (int)203 : localPut(155); /* cedilla */
                      break;
	     case (int)204 : localPut(179); /* threesuperior */
                      break;
	     case (int)205 : localPut(157); /* hungarumlaut */
                      break;
	     case (int)206 : localPut(158); /* ogonek */
                      break;
	     case (int)207 : localPut(159); /* caron */
                      break;
	     case (int)208 : localPut(63); /* emdash -> 271 */
                      break;
	     case (int)209 : localPut(177); /* plusminus */
                      break;
	     case (int)210 : localPut(188); /* onequarter */
                      break;
	     case (int)211 : localPut(189); /* onehalf */
                      break;
	     case (int)212 : localPut(190); /* threequarters */
                      break;
	     case (int)213 : localPut(224); /* agrave */
                      break;
	     case (int)214 : localPut(225); /* aacute */
                      break;
	     case (int)215 : localPut(226); /* acircumflex */
                      break;
	     case (int)216 : localPut(227); /* atilde */
                      break;
	     case (int)217 : localPut(228); /* adieresis */
                      break;
	     case (int)218 : localPut(229); /* aring */
                      break;
	     case (int)219 : localPut(231); /* ccedilla */
                      break;
	     case (int)220 : localPut(232); /* egrave */
                      break;
	     case (int)221 : localPut(233); /* eacute */
                      break;
	     case (int)222 : localPut(234); /* ecircumflex */
                      break;
	     case (int)223 : localPut(235); /* edieresis */
                      break;
	     case (int)224 : localPut(236); /* igrave */
                      break;
	     case (int)225 : localPut(198); /* AE */
                      break;
	     case (int)226 : localPut(237); /* iacute */
                      break;
	     case (int)227 : localPut(170); /* ordfeminine */
                      break;
	     case (int)228 : localPut(238); /* icircumflex */
                      break;
	     case (int)229 : localPut(239); /* idieresis */
                      break;
	     case (int)230 : localPut(240); /* eth */
                      break;
	     case (int)231 : localPut(241); /* ntilde */
                      break;
	     case (int)232 : localPut(76); /* Lslash -> 256 */
                      break;
	     case (int)233 : localPut(216); /* Oslash */
                      break;
	     case (int)234 : localPut(79);
	                      localPut(69); /* OE -> 268 */
                      break;
	     case (int)235 : localPut(186); /* ordmasculine */
                      break;
	     case (int)236 : localPut(242); /* ograve */
                      break;
	     case (int)237 : localPut(243); /* oacute */
                      break;
	     case (int)238 : localPut(244); /* ocircumflex */
                      break;
	     case (int)239 : localPut(245); /* otilde */
                      break;
	     case (int)240 : localPut(246); /* odieresis */
                      break;
	     case (int)241 : localPut(230); /* ae */
                      break;
	     case (int)242 : localPut(249); /* ugrave */
                      break;
	     case (int)243 : localPut(250); /* uacute */
                      break;
	     case (int)244 : localPut(251); /* ucircumflex */
                      break;
	     case (int)245 : localPut(144); /* dotlessi */
                      break;
	     case (int)246 : localPut(252); /* udieresis */
                      break;
	     case (int)247 : localPut(253); /* yacute */
                      break;
	     case (int)248 : localPut(108); /* lslash -> 257 */
                      break;
	     case (int)249 : localPut(248); /* oslash */
                      break;
	     case (int)250 : localPut(111);
                              localPut(101); /* oe -> 269 */
                      break;
	     case (int)251 : localPut(223); /* germandbls */
                      break;
	     case (int)252 : localPut(254); /* thorn */
                      break;
	     case (int)253 : localPut(255); /* ydieresis */
                      break;
	     case (int)254 : localPut(32); /* */
                      break;
	     case (int)255 : localPut(32); /* */
                      break;
	     default : localPut(current_char);
	               break;
	   }
	}
    }
}


main(argc,argv)
char **argv;
int  argc;
{
   int k;
   int m=1;
   int keepOrig = 1;
   char *p;
       
   /* test du nombre de parametres */
   if ( argc < 2 )
   {
       pipeOk = 1;
       processFile();
   }else{
       p = argv[1];
       if (*p == '-'){
         m++;
	 if (*(p+1) == 'd'){
	   keepOrig = 0;
         }
	 if (*(p+1) == 'h'){
	   printf("next2iso V1.0 April 94 by Franck Vamparys@litnext1.epfl.ch\n");
	   printf("    -d  to not keep the original file\n");
	   printf("    -h  help\n");
	   printf("ex: next2iso file1\n");
	   printf("    next2iso -d *.rtf\n");
	   printf("    cat file1 | next2iso > file2\n");
	   exit(0);
         }
       }
       for (k=m;k<argc;k++){
	 
         strcpy(fileNameIn,argv[k]);
         strcat(fileNameIn,".old_iso2next");
         strcpy(fileNameOut,argv[k]);

         strcpy(shCommand,"mv ");
         strcat(shCommand,fileNameOut);
         strcat(shCommand," ");
         strcat(shCommand,fileNameIn);
	 system(shCommand);

         fileIn = fopen(fileNameIn,"r");

         /* ouvrir le fichier en entree */
         if ( fileIn == NULL ) 
	 {
	   printf("cannot access the file: %s\n", argv[k]);
	   exit (-1);
	 };
       
       /* ouvrir le fichier en sortie */

         if ( (fileOut = fopen(fileNameOut,"w")) == NULL )
	 {
	   printf("cannot open file: %s\n", fileNameOut);
	   exit (-1);
	 }

         processFile();

         fclose(fileIn);
         fclose(fileOut);

	 if (keepOrig == 0){
           strcpy(shCommand,"rm ");
           strcat(shCommand,fileNameIn);
           system(shCommand);
	 }

         };
    };
}

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