🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.admin.news.software
Article #239

Umlaut Loesungen

#239
From: Markus Kuhn
Date: Thu, 19 Nov 1992 20:31
73 lines
3050 bytes
Da es hier hoffentlich noch genuegend Leute gibt, die statt Worten
Taten walten lassen oder diese jenen wenigstens folgen lassen, poste
ich hier mal eine kleine Routine, die in verschiedenste Software eingebaut
werden kann (gateways, user agents, treiber, filter, ...) um die
immer gebraeuchlicheren ISO Umlaute auch auf antiker Hardware
ertraeglich zu machen. Ich habe das ganze heute abend in etwa 2 Stunden
z.B. in den UNIX gopher client eingebaut und den Patch bereits an den
Autor in Minesota geschickt. Vielleicht ist die Option zur ISO->ASCII
Wandlung in der 1.1 Release fest eingebaut.


/* Conversion table for displaying the G1 set (0xa0-0xff) of
   ISO Latin 1 (ISO 8859-1) with 7-bit ASCII characters.
   Suggestions for improvement are welcome!

   Markus Kuhn <mskuhn@immd4.informatik.uni-erlangen.de>     */

static char *iso2asc[96] = {
  " ","!","c","?","?","Y","|","?","\"","(c)","a","<<","?","-","(R)"," ",
  "?","+/-","2","3","'","mu","P",".",",","1","o",">>","1/4","1/2","3/4","?",
  "A","A","A","A","Ae","A","AE","C","E","E","E","E","I","I","I","I",
  "D","N","O","O","O","O","Oe","x","O","U","U","U","Ue","Y","P","ss",
  "a","a","a","a","ae","a","ae","c","e","e","e","e","i","i","i","i",
  "d","n","o","o","o","o","oe",":","o","u","u","u","ue","y","p","y"
};


/*
 *  Transform an 8-bit ISO Latin 1 string s1 in a 7-bit ASCII string s2
 *  readable on old terminals.
 *
 *  In worst case: strlen(s2) = 3*strlen(s1).
 */
  void
Latin1toASCII(s1,s2)
  unsigned char *s1,*s2;
{
  char *p;

  if (s1==NULL || s2==NULL) return;

  while (*s1 != '\0') {
    if (*s1 >= 0xa0) {
      p = iso2asc[*(s1++) - 0xa0];
      while (*p != '\0') *(s2++) = *(p++);
    } else {
      *(s2++) = *(s1++);
    }
  }
  *s2 = '\0';

  return;
}


Eine vergleichbare Routine laesst sich sehr leicht in die meisten
Newsreader einbauen, wenn man den Sourcecode dazu hat und ueber
minimale Programmierkenntnisse verfuegt (die man durch so eine
Aktion auch erweitern kann!).

Im nn z.B. muss man sich nur mal ansehen, wie in more.c die decrypt
Funktion eingebaut wurde. Statt rot13 laesst man dann eben iso2asc
auf den Text los. Probiert's und postet die Patches an die Autoren 
fuer die naechste Release.

Von Heulen und Zaehneknirschen wurde noch kein Berg versetzt!

Markus

-- 
Markus Kuhn, Computer Science student -=-=- University of Erlangen, Germany
Internet: mskuhn@immd4.informatik.uni-erlangen.de  |  X.500 entry available
--- Wer, wie, was? Wieso, weshalb, warum? Wer nichts fragt bleibt dumm. ---
Technical Details
Message-ID: <BxzD12.F8A@immd4.informatik.uni-erlangen.de>
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!fauern!fauna!mskuhn

Show Full Headers
Complete Article Headers
Newsgroups: de.admin.news.software
Path: arc1-ca.pugleaf.net!sparky!uunet!zaphod.mps.ohio-state.edu!sol.ctr.columbia.edu!ira.uka.de!fauern!fauna!mskuhn
From: mskuhn@immd4.informatik.uni-erlangen.de (Markus Kuhn)
Subject: Umlaut Loesungen
Message-ID: <BxzD12.F8A@immd4.informatik.uni-erlangen.de>
Reply-To: mskuhn@immd4.informatik.uni-erlangen.de
Organization: CSD., University of Erlangen, Germany
Date: Thu, 19 Nov 1992 20:31:50 GMT
Keywords: ISO 8859-1, ISO Latin 1
Lines: 73