From: Jens Wahnes Newsgroups: de.comm.software.newsreader Date: 16 Aug 2000 12:09:20 GMT Organization: Wahnes World User-Agent: slrn/0.9.6.2 (Linux) Klaus Fischer schrieb am Tue, 15 Aug 2000 21:29:31 +0200 folgendes: > * Jens Wahnes schrieb: > [Punkte 1. - 6.] > > Je"die Antworten gibts bei deja.com -- oder sollte man die > > wirklich mal aufschreiben?"ns > Ja, mach mal. du hast doch schon einige gute Punkte zusammen für > den Rumpf der FAQ :-) Gut, dann mach ich halt mal die Ingrid und frage, was der Rest hier von diesem Entwurf hält: > 1. Wieso sind meine Umlaute kaputt, wenn ich bei slrn-w32 meinen > Lieblings-Windows-Editor benutze? Weil slrn annimmt, daß bei der Bearbeitung der Texte ein Editor benutzt wird, der wie slrn in der Win32-Konsole läuft - und dort ist i.d.R. Codepage 850 angesagt. Deshalb wird der zitierte Text vor der Bearbeitung nach CP850 konvertiert und nach der Bearbeitung wieder nach ISO 8859-1 (latin1, von slrn auch isolatin genannt). Wenn man aber nun statt eines Konsolen-Editors einen Windows-Editor nimmt, dann wird während des Bearbeiten des Textes eben nicht mehr CP850 sondern Codepage 1252 (ein ISO 8559-1 ziemlich ähnlicher Zeichensatz) verwendet und damit erscheinen dann im Editor ggf. zitierte Umlaute und andere Sonderzeichen kaputt, und selbst eingegebene Sonderzeichen erscheinen im endgültigen Posting falsch. Abhilfe schafft also nur, einen Editor für die Konsole zu benutzen, z.B. den DOS-Edit oder vim für DOS (http://www.vim.org). Wenn bei der Benutzung von DOS-Edit (edit.com) slrn anschließend anfängt zu blinken, dann sollte man das Programm von Farbe auf schwarz/weiß umstellen, siehe auch http://thingy.apana.org.au/~fun/slrn/ > 2. Wie schaffe ich es, daß bei Replies (und geforwardeten Artikeln) > meine richtige E-Mail-Adresse erscheint? Slrn erzeugt im Normalfall bei E-Mails keine From:-Zeile, daher wird vom Mailsystem automatisch eine hinzugefügt, und die kann u.U. falsch sein. Wenn man slrn selbst übersetzt (kompiliert), kann man in slrnfeat.h die Einstellung #if defined(IBMPC_SYSTEM) # define SLRN_GEN_FROM_EMAIL_HEADER 1 #else # define SLRN_GEN_FROM_EMAIL_HEADER 0 #endif ändern in #if defined(IBMPC_SYSTEM) # define SLRN_GEN_FROM_EMAIL_HEADER 1 #else # define SLRN_GEN_FROM_EMAIL_HEADER 1 #endif Allerdings wird beim Weiterleiten von Postings die Adresse trotzdem nicht richtig gesetzt. Dazu gibt es einen Patch unter http://slrn.sourceforge.net/patches/slrn-0.9.6.2-forward_from.diff Noch besser ist es natürlich, gleich sein Mailsystem so einzustellen, daß ein richtiger From:-Header von MTA (mail transport agent) erzeugt wird. Im Falle von sendmail geht das üblicherweise so (Kurzfassung ;-): Man erzeugt in /etc/mail/genericstable einen Eintrag in der Art user user@some.domain und übersetzt mit makemap hash genericstable < genericstable die Tabelle neu. Bei Problemen siehe die Sendmail-FAQ unter http://www.sendmail.org/faq/ und http://www.sendmail.org/virtual-hosting.html oder in de.comm.software.mailserver fragen. > 3. Wie kann ich den rechten Teil der Message-ID setzen? Hierzu muß startup.c gepatcht werden. Irgendwo zwischen Zeile 454 und 482 fügt man folgende Zeile ein: {"posting_host", &Slrn_User_Info.posting_host}, Danach kann in .slrnrc mit set posting_host "irgend.ein.fqdn" die rechte Seite der Message-ID auf jeden beliebigen Wert setzen. > 4. Kann man die Signatur in Abhängigkeit der der aktuellen Gruppe > ändern? Wie werden Zufalls-Signaturen erzeugt? Ein Beispiel, wie man nicht nur die Signatur in Abhängigkeit der Gruppe setzen kann, ist folgendes S-Lang Makro, das man leicht an die eigenen Bedürfnisse anpassen kann. Es basiert auf einem Makro, das ursprünglich in news.software.readers gepostet wurde, der Autor ist mir leider unbekannt. Um das Makro benutzen zu können, speichert man es in eine Datei ab (z.B. .slrn.sl) und ruft diese dann in .slrnrc mit "interpret .slrn.sl" auf. define article_mode_hook () { variable signature_file = ".signature/englisch"; % english signature variable reply_s = "In %n, you wrote:\n"; variable cc_fup_s = "[This messages has also been posted to a newsgroup]\n"; variable followup_s = "%r wrote:\n"; variable newsgroup = current_newsgroup (); if ( orelse { string_match (newsgroup, "^de\.", 1) } { string_match (newsgroup, "^kl\.", 1) } { string_match (newsgroup, "^schule\.", 1) } { string_match (newsgroup, "^wahnes-world\.", 1) } ) { signature_file = ".signature/deutsch-usenet"; % deutsche signature followup_s = "%r schrieb am %d folgendes:\n"; reply_s = "Hallo %r,\nDu schriebst am %d in %n:\n"; cc_fup_s = "[Dies ist die Kopie eines Artikels, der in eine Newsgruppe gepostet wurde]\n"; } if ( newsgroup == "de.alt.fan.haraldschmidt" ) { followup_s = "Mama, 's %r schreibt:\n"; signature_file=".signature/dafhs"; } set_string_variable ("signature", signature_file); set_string_variable ("followup_string", followup_s); set_string_variable ("cc_followup_string", cc_fup_s); set_string_variable ("reply_string", reply_s); } Um Zufalls-Signaturen zu erzeugen, gibt es ein Perl-Skript von Stefan Scholl: #! /usr/bin/perl -w # $Id: sigrandom.pl,v 1.4 1997/08/10 20:11:14 stesch Exp stesch $ chdir; # go home $FIFO = $ENV{'HOME'} . '/.randsignature'; $fixed = $ENV{'HOME'} . '/.sigfixed'; $sigdir = $ENV{'HOME'} . '/.Sig'; # $lockfile = '/var/lock/sigrandom.lock'; $lockfile = $ENV{'HOME'} . '/.sigrandom.lock'; # -------- sub catch_zap { my $signame = shift; unlink($lockfile); die "Got SIG$signame"; } # -------- $SIG{INT} = \&catch_zap; $SIG{TERM} = \&catch_zap; $SIG{QUIT} = \&catch_zap; $SIG{HUP} = \&catch_zap; exit if(-e $lockfile); unless (-p $FIFO) { unlink $FIFO; system('mknod', $FIFO, 'p') && die "can't mknod $FIFO: $!"; } # --- fork my $pid; FORK: { if($pid = fork) { print "sigrandom.pl forked\n"; sleep 2; exit; } elsif (defined $pid) { # forked process } elsif ($! =~ /No more process/) { # == EAGAIN sleep 5; redo FORK; } else { die "***Can't fork: $!\n"; } } # --- open(L, ">$lockfile") || die "can't open $lockfile: $!"; print L $$; close(L); srand ($$ ^ time); while (1) { unless (-p $FIFO) { unlink $FIFO; system('mknod', $FIFO, 'p') && die "can't mknod $FIFO: $!"; } # next line blocks until there's a reader open (FIFO, "> $FIFO") || die "can't write $FIFO: $!"; print FIFO "-- \n"; if(open(FIX, $fixed)) { while() { print FIFO $_; } close(FIX); } if(opendir(DIR, $sigdir)) { @randfiles = grep( !/^\./, readdir(DIR)); if(open(RAND, $sigdir . '/' . $randfiles[rand($#randfiles)])) { while() { print FIFO $_; } close(RAND); } closedir(DIR); } close FIFO; sleep 2; # to avoid dup sigs } exit; Er schreibt dazu: Im Directory ~/.Sig stehen die zufällig ausgewählten Teile. Alles einzelne Files. Die werden mit ~/.sigfixed kombiniert. Der Signatur-Wechsler kann z.B. einmal pro slrn-Aufruf gestart werden, indem man einen Aufruf in der Art define startup_hook () { system("sigrandom.pl"); } in seine .slrn.sl (o.ä.) einträgt. Alternativ kann man es auch in den Aufruf des Editors einbauen, so daß vor dem Schreiben eines Postings jedes Mal die Signatur gewechselt wird. > 5. Kann ich mit slrn die expireten Scores aus dem Scorefile entfernen > lassen? Slrn kann das "von Haus aus" nicht. Es gibt aber von Felix Schueller ein Skript, das veraltete Scorefile-Einträge löscht. Nähere Informationen und das Skript selbst sind unter http://slrn.sourceforge.net/cleanscore/index.html zu finden. > 6. Wie kann ich den Date:-Header von GMT auf die lokale Zeitzone > umstellen? Gar nicht, da slrn keinen Date:-Header erzeugt. Der Date:-Header wird vom Newsserver beim Posten hinzugefügt. Dann sind mir noch folgende Fragen eingefallen: > 7. Slrn erzeugt From:-Zeilen in der Form »email@adresse (vorname name)«. > Ich möchte aber lieber »Vorname Name «. Wie kann > ich das einstellen? Man kann den From:-Header durch die Definition eines Hooks verändern. Im einfachsten Fall in .slrn.sl (o.ä.) durch define make_from_string_hook () { return "Vorname Name " ; } Auch Spielereien wie das Setzen der Adresse in Abhängigkeit der aktuellen Newsgroup sind damit möglich. Zu beachten ist dabei allerdings, daß bei einer E-Mail-Adresse, die von der durch username und hostname definierten abweicht, das Canceln und Superseden nicht mehr möglich ist. > 8. Wie kann ich die mit 'o' archivierten Postings wieder lesen? Am einfachsten mit dem Mailreader mutt. Mit dem Aufruf mutt -f ~/News/De.comm.software.newsreader wird beispielsweise die Datei geöffnet, in der die Postings dieser Gruppe standardmäßig abgespeichert werden. Jens