#include 
#include 
#include 

#define vortlongo 1000
#define npronomoj 2
#define novortoj 24

char pronomoj[npronomoj][2][5]={{"li","ri"},{"^si","ri"}};
char ovortoj[novortoj][2][10]={
                         {"av","avi^c"},
                         {"edz","edzi^c"},
                         {"av","avi^c"},
                         {"edz","edzi^c"},
                         {"fian^c","fian^ci^c"},
                         {"filin","gefil"},
                         {"fil","gefil"},
                         {"frat","frati^c"},
                         {"kuzin","kuz"},
                         {"nepin","nep"},
                         {"nevin","nev"},
                         {"onklin","onkl"},
                         {"patr","patri^c"},
                         {"vidvin","vidv"},
                         {"bubin","bub"},
                         {"knabin","knab"},
                         {"vir","viri^c"},
                         {"fra^ulin","fra^ul"},
                         {"graf","grafi^c"},
                         {"princin","princ"},
                         {"re^g","re^gi^c"},
                         {"sinjorin","sinjor"},
                         {"amikin","amik"},
                         {"mona^h","mona^hi^c"}};
          // etc...
          // - avo edzo fian^co filo frato kuzo nepo nevo onklo patro vidvo
          // - bubo knabo viro
          // - fra^ulo grafo princo re^go sinjoro
          // - amiko

int traduku(char *vorto);

int main(int argc, char *argv[])
{ FILE *F;
  if (argc==1) F=stdin;
  if (argc==2) if (strcmp(argv[1],"h")==0){ printf("riismigu -- julio 1996 -- Michiel Meeuwissen \n"
                                                  "uzu: riismigu teksto.tks > teksto.ri \n"
                                                  "au ekz.: type teksto.tks | riismigu > teksto.ri\n");
                                            return 1;
                                          }        
  if (argc==2) if ( (F=fopen(argv[1],"rt")) == NULL) { printf("%s nemalfermebla",argv[1]); return 1;}

  char c;
  char vorto[vortlongo];
  unsigned lon;
  unsigned n=0;

  vorto[0]='\0';
  while(fscanf(F, "%c",&c)!=EOF)
    {
       if (c==' ' || c==',' || c=='.' || c==';' || c=='\n' || c=='\0' || c=='}' || c=='{'
          || c=='(' || c==')' || c=='[' || c==']' || c=='`' || c=='\'' ||
          c=='"' )
        {
          // printf("{%s}",vorto);
          if (strlen(vorto)>1) n+=traduku(vorto);
          printf("%s%c",vorto,c); vorto[0]='\0';

        }
       else { lon=strlen(vorto); vorto[lon]=c; vorto[lon+1]='\0';}
    }
  printf("\n%% %s: %u aliigoj\n",argv[0],n);
  fclose(F);
  return 0;
}


char *majusklu(char *vorto)
{ vorto[0]=toupper(vorto[0]);
  if(vorto[0]=='^') vorto[1]=toupper(vorto[1]);
  return vorto;
}

char *vortmajusklu(char *vorto)
{ int i=0;
 while(vorto[i]!='\0') {vorto[i]=toupper(vorto[i]); i++;}
 return vorto;
}


int komparu(char *vorto, char *malnova, char *nova)
{ char ilomn[vortlongo];
  // printf("{%s,%s,%s}",vorto,malnova,nova);
  strcpy(ilomn,malnova);
  if (strcmp(ilomn,vorto)==0) { strcpy(vorto,nova); return 1;}
  majusklu(ilomn);
  if (strcmp(ilomn,vorto)==0) { majusklu(strcpy(vorto,nova)); return 1;}
  vortmajusklu(ilomn);
  if (strcmp(ilomn,vorto)==0) { vortmajusklu(strcpy(vorto,nova)); return 1;}
  return 0;
}

int traduku(char *vorto)
{
  // printf("{%s,%s,%s}",vorto,malnova,nova);
  int i;
  char nova[vortlongo];
  char malnova[vortlongo];
  for(i=0; i

    Source: geocities.com/athens/Acropolis/4675

               ( geocities.com/athens/Acropolis)                   ( geocities.com/athens)