  SLRN+SLRNPULL HOWTO
  Alessandro Airaghi (a.airaghi@tiscalinet.it)
  v2.2, 7 Settembre 2000

  Questo documento descrive come leggere offline gli articoli di un news
  server utilizzando i programmi SLRN e SLRNPULL. E' illustrato anche
  come configurare il programma Knews se si preferisce leggere/scrivere
  gli articoli utilizzando X.

  1.  Introduzione



  1.1.  Nessuna garanzia


  Ho scritto questo documento con tutta l' accuratezza possibile ma se
  usate le informazioni in esso contenute lo fate a vostro rischio e
  pericolo. In nessun caso potr essere ritenuto responsabile di
  eventuali danni causati dall' utilizzo del presente HOWTO.


  1.2.  Copyright


  La traduzione in italiano si trova subito dopo la versione originale
  in lingua inglese.

  Unless otherwise stated, Linux HOWTO documents are copyrighted by
  their respective authors. Linux HOWTO documents may be reproduced and
  distributed in whole or in part, in any medium physical or electronic,
  as long as this copyright notice is retained on all copies. Commercial
  redistribution is allowed and encouraged; however, the author would
  like to be notified of any such distributions.

  All translations, derivative works, or aggregate works incorporating
  any Linux HOWTO documents must be covered under this copyright notice.
  That is, you may not produce a derivative work from a HOWTO and impose
  additional restrictions on its distribution. Exceptions to these rules
  may be granted under certain conditions; please contact the Linux
  HOWTO coordinator at the address given below.

  In short, we wish to promote dissemination of this information through
  as many channels as possible. However, we do wish to retain copyright
  on the HOWTO documents, and would like to be notified of any plans to
  redistribute the HOWTOs.

  If you have questions, please contact Tim Bynum, the Linux HOWTO
  coordinator, at tjbynum@sunsite.unc.edu via email.

  Questa la traduzione in italiano:

  Senza nessuna precisazione, i documenti Linux HOWTO hanno il copyright
  dei loro rispettivi autori. I documenti Linux HOWTO possono essere
  riprodotti e distribuiti, completi o in parte, con ogni mezzo fisico o
  elettronico, purch siano tutti accompagnati da questo copyright.
  Distribuzioni commerciali sono permesse ed incoraggiate; comunque l'
  autore desidera essere avvisato di ogni simile distribuzione.

  Tutte le traduzioni, derivazioni o lavori incorporanti qualsiasi Linux
  HOWTO devono essere mantenuti sotto questo avviso di copyright. Per
  questo non  possibile produrre un lavoro derivante da un HOWTO ed
  imporre restrizioni aggiuntive alla sua distribuzione. Eccezioni a
  questa regola possono essere concesse a certe condizioni; contattare
  il coordinatore dei Linux HOWTO all' indirizzo riportato sotto.

  In breve vogliamo promuovere la disseminazione di queste informazioni
  attraverso pi canali possibili. Comunque vogliamo mantenere il
  copyright nei documenti HOWTO, e possibilmente essere avvisati di ogni
  progetto di ridistribuzione degli HOWTO.

  Se si hanno domande, contattare Tim Bynum, il coordinatore dei Linux
  HOWTO, all' indirizzo e-mail tjbynum@sunsite.unc.edu

  Per le versioni italiane degli HOWTO rivolgersi a Giovanni Bortolozzo,
  borto@pluto.linux.it o Eugenia Franzoni, eugenia@stud.unipg.it.


  1.3.  Distribuzione


  L' ultima versione di questo documento  reperibile presso i seguenti
  quattro indirizzi:


     <http://web.tiscalinet.it/airaghi>

     <http://www.linux.it/ospiti/slrn/>

     <http://www.pluto.linux.it/ildp/altri/SLRN+SLRNPULL-HOWTO.html>

     <http://www.ziobudda.net/mirror/slrn_slrnpull/>

  Critiche, correzioni e suggerimenti per migliorare questo testo sono
  ben accetti. Contattatemi pure tramite posta elettronica.


  1.4.  Convenzioni tipografiche utilizzate nel testo


  Tutti i comandi da scrivere nella shell di Linux sono indicati con un
  "#" o "$" prefisso al comando.


  #  il simbolo che appare quando usate la shell come utente root.

  $  il simbolo che appare quando usate la shell come utente normale.


  Per esempio, "$ slrn" indica che dovete lanciare il comando "slrn"
  come utente normale mentre "# rpm -ivh slrn-0.9.6.2-4.i386.rpm" indica
  che dovete lanciare il comando "rpm -ivh slrn-0.9.6.2-4.i386.rpm" come
  utente root.

  [Esc] [p]  : indica che dovete premere il tasto Esc, poi il tasto p

  [Ctrl]+[d] : indica che dovete tenere premuto il tasto Ctrl e poi
  premere il tasto d

  Un' ultima nota: nella shell di Linux la tilde (~) indica la directory
  home di un utente (con tale termine si indica la directory in cui l'
  utente si trova subito dopo il login). Esempio: la frase "bisogna
  editare il file ~/.bash_profile", per l' utente alex diventa "bisogna
  editare il file /home/alex/.bash_profile". In pratica: "entra come
  utente alex ed edita il file .bash_profile".


  1.5.  Funzionamento di SLRN e SLRNPULL


  Questo, in breve, il funzionamento dei due programmi.

     SLRNPULL:
        appena lanciato invia al news server gli articoli che uno o pi
        utenti di un sistema Linux hanno scritto offline. Finita questa
        operazione scarica, da uno o pi newsgroup, i nuovi articoli
        presenti sul news server.


     SLRN:
        da solo, si collega ad un news server e consente di poter
        leggere, uno alla volta, gli articoli di un dato newsgroup.  Pu
        anche essere utilizzato per leggere offline gli articoli
        scaricati in precedenza da SLRNPULL.

  NOTA 1: l' utente che utilizza SLRNPULL deve necessariamente
  appartenere al gruppo news. Per esempio, affinch l' utente alex possa
  scaricare le news  necessario editare, con i permessi di root, il
  file /etc/group in modo che compaia una linea simile alla seguente:



       news::13:news,alex




  Se un utente desidera semplicemente leggere le news con SLRN (news che
  qualcun altro avr scaricato con SLRNPULL) allora NON  necessario che
  egli appartenga al gruppo news. Un simile utente potr comunque
  inviare i propri articoli al news server. Pi precisamente: i suoi
  articoli verranno salvati sull' hard disk in attesa che l' utente
  appartenente al gruppo news lanci il programma SLRNPULL.

  NOTA 2: le informazioni contenute nel presente HOWTO sono state
  verificate con SLRN e SLRNPULL versione 0.9.6.2 e potrebbero risultare
  inadatte per versioni precedenti dei programmi.


  2.  Installazione dei programmi



  2.1.  Installazione per gli utenti RedHat


  Sono necessari i seguenti tre pacchetti .rpm:



       slang-1.2.2-5.i386.rpm
       slrn-0.9.6.2-4.i386.rpm
       slrn-pull-0.9.6.2-4.i386.rpm




  Questi pacchetti sono presenti nella distribuzione RedHat 6.2 e li
  potete anche trovare (per esempio) qui:

   <ftp://ftp.students.cs.unibo.it/Mirrors/ftp.redhat.com/redhat-6.2/i386/RedHat/RPMS>

  Nel caso non siano pi presenti su tale sito al momento della lettura
  di questo documento, potete effettuare una ricerca in rete usando uno
  dei tanti motori di ricerca.
  Per esempio, potete collegarvi tramite Netscape ad uno dei seguenti
  due siti:

   <http://rpmfind.net>

   <http://ftpsearch.lycos.com>

  Si deve ora procedere con l' installazione dei tre pacchetti .rpm
  Effettuate il login come utente root.
  Inserite il CD della distribuzione RedHat 6.2 e date il seguente
  comando:

  # mount /mnt/cdrom

  Portatevi nella directory che contiene i tre pacchetti .rpm:

  # cd /mnt/cdrom/RedHat/RPMS

  Installateli dando i seguenti comandi:

  # rpm -ivh slang-1.2.2-5.i386.rpm
  # rpm -ivh slrn-0.9.6.2-4.i386.rpm
  # rpm -ivh slrn-pull-0.9.6.2-4.i386.rpm

  Uscite come utente root e rientrate come utente normale.



  2.2.  Installazione per gli utenti Debian


  NOTA IMPORTANTE: questo paragrafo non viene pi aggiornato da diversi
  mesi. Contiene riferimenti a versioni dei programmi e delle librerie
  divenute ormai obsolete.  Se possedete una distribuzione Debian e
  volete darmi informazioni su come aggiornare questo paragrafo,
  scrivetemi un' e-mail. Grazie.

  Questo paragrafo  a cura di Roberto Gerola, rogerola@tin.it

  Dovete procurarvi i seguenti pacchetti .deb, che trovate anche sui CD
  della distribuzione:



       slang0.99.38_0.99.38-6.deb
       slrn-0.9.4.3-4.deb (contiene sia SLRN che SLRNPULL)




  Effettuate il login come utente root.  Installate il primo pacchetto
  .deb dando il seguente comando:

  # dpkg -i slang0.99.38_0.99.38-6.deb

  Installate il secondo pacchetto .deb dando il seguente comando:

  # dpkg -i slrn-0.9.4.3-4.deb

  Al termine della scompattazione e copia dei file bisogna rispondere ad
  alcune semplici domande poste dallo script di installazione al fine di
  configurare al meglio SLRN sul proprio sistema. Queste le domande:

  Do you want to change the current configuration ?
  Viene chiesto solo se  gia presente sul proprio sistema un file
  /etc/slrnget.conf

  Do you want a cron job to be set up to automatically refresh the
  newsgroup descriptions for you ?
  Rispondendo y viene attivata un' entry in cron per aggiornare
  periodicamente la lista dei newsgroup sul vostro news server.
  Risposta consigliata: n

  Do you want /etc/ppp/ip-up.d/slrn to refresh the newsgroups
  descriptions?
  Viene chiesto solo se si  risposto no alla domanda precedente. Ad
  ogni collegamento viene aggiornata la lista dei newsgroup, direi di
  rispondere con decisione n. Rispondendo no lo script ci informa che
  dovremo aggiornare manualmente la lista dei newsgroup lanciando come
  utente root il programma: /usr/sbin/slrn_getdescs

  Seguono poi le domande per configurare il programma SLRNPULL:

  Do you plan to use slrnpull to download a small local news spool for
  offline news reading?
  Lo vogliamo usare questo SLRNPULL s o no? y

  Do you want a cron job to be set to automatically run slrnpull ?
  Io direi di no. Trovo l' opzione utile solo se abbiamo un collegamento
  permanente ad internet.

  Do you want /etc/ppp/ip-up.d/slrn to run slrnpull ?
  Viene chiesto solo se abbiamo risposto no alla domanda precendente.
  Direi che sarebbe il caso di rispondere y.

  Ci viene poi chiesto se siamo soddisfatti delle nostre scelte o se
  vogliamo cambiare qualcosa e, per ultimo, ci viene chiesto se vogliamo
  aggiornare subito la lista dei newsgroup. Dovete rispondere n in
  quanto non avete ancora specificato il nome del news server da cui
  scaricare le news.

  A questo punto si seguano le istruzioni riportate nel capitolo
  intitolato "Configurazione" fecendo attenzione che:


    il file slrnpull.conf si trovi nella directory /var/spool/slrnpull

    nel file ~/.slrnrc compaiano queste linee:



       set spool_inn_root      "/var/spool/slrnpull"
       set spool_root          "/var/spool/slrnpull/news"
       set spool_nov_root      "/var/spool/slrnpull/news"




  Collegatevi ad internet e lanciate /usr/sbin/slrn_getdescs: la lista
  dei newsgroup verr messa nel file /var/lib/slrn/newsgroups.dsc . Si
  tratta di un file di testo, sar il caso di leggerlo per vedere quali
  newsgroup abbiamo a disposizione e quali possono interessarci.

  NOTA:  sempre possibile cambiare la configurazione lanciando come
  utente root lo script:

  /usr/sbin/slrnconfig



  2.3.  Installazione a partire dai sorgenti


  Questa  procedura   consigliata a  tutti coloro  che non dispongono
  di una distribuzione Linux basata sui pacchetti .rpm o .deb
  E' altres  indicata per tutti  coloro che vogliono  utilizzare l'
  ultima versione  disponibile dei  programmi  senza  che  debbano
  aspettare il rilascio dei pacchetti .rpm o .deb

  Vi occorre il seguente file (contiene sia SLRN che SLRNPULL):



       slrn-0.9.6.2.tar.gz




  che potete trovare qui:  <ftp://space.mit.edu/pub/davis/slrn>

  Nel caso non abbiate gi installato la libreria S-Lang, avete bisogno
  anche di questo file:



       slang-1.4.0.tar.gz




  che potete scaricare da:  <ftp://space.mit.edu/pub/davis/slang/v1.4>

  NOTA: la documentazione di S-Lang  contenuta nel file
  slang1.4-doc.tar.gz

  Per prima cosa bisogna compilare ed installare la libreria S-Lang.


  Entrate come utente root e portatevi nella directory /usr/local/src:

  # cd /usr/local/src

  Decomprimete l' archivio:

  # tar xvzf [path completo]/slang-1.4.0.tar.gz
  # cd slang-1.4.0

  Per compilare ed installare S-Lang iniziate a dare i seguenti tre
  comandi:

  # ./configure
  # make
  # make runtests

  Se non viene segnalato nessun errore date questi altri tre comandi:

  # make install
  # make elf
  # make install-elf

  Assicuratevi che nel file /etc/ld.so.conf sia presente la seguente
  linea:



       /usr/local/lib/





  Date ora il seguente comando:

  # ldconfig

  Si procede ora con la compilazione ed installazione dei programmi SLRN
  e SLRNPULL.
  Sempre come utente root decomprimete l' archivio compresso
  slrn-0.9.6.2.tar.gz nella directory /usr/local/src:

  # cd /usr/local/src
  # tar xvzf [path completo]/slrn-0.9.6.2.tar.gz
  # cd slrn-0.9.6.2

  Editate il file src/slrnfeat.h ed assicuratevi che compaia la seguente
  linea:



       #define SLRNPULL_ROOT_DIR       "/var/spool/slrnpull"




  Date ora i seguenti comandi:

  # ./configure
  # make
  # make slrnpull
  # make install
  # mkdir /var/spool/slrnpull
  # chown news.news /var/spool/slrnpull

  Come  ultima cosa, assicuratevi che  la variabile  di ambiente  PATH
  (di tutti  gli utenti  che utilizzeranno  i programmi SLRN e/o
  SLRNPULL) contenga la seguente stringa:



       /usr/local/bin




  Per accertarsene basta dare questo comando:

  $ echo $PATH

  In caso contrario aggiungete alla fine del file ~/.bash_profile le
  seguenti due linee:



       PATH=$PATH:/usr/local/bin
       export PATH






  3.  Configurazione


  Copiate il file slrn.rc come ~/.slrnrc:


  $ cp [path completo]/slrn.rc ~/.slrnrc


  NOTA: il file slrn.rc si trover in directory diverse a seconda del
  tipo di installazione effettuata.
  Per esempio, se installate i programmi a partire dai pacchetti .rpm,
  il file slrn.rc sar presente nella directory /usr/lib/slrn/
  Se avete utilizzato i sorgenti .tar.gz, il file slrn.rc sar presente
  nella directory /usr/local/src/slrn-0.9.6.2/doc

  Editate  il file  ~/.slrnrc,  inserite i  vostri dati  ed assicuratevi
  che compaiano TUTTE le righe sotto riportate:






















































  ______________________________________________________________________
  % File ~/.slrnrc
  %
  % Si fa riferimento ad un ipotetico abbonato di Tiscalinet, Mario Rossi,
  % avente il seguente indirizzo e-mail: mr@tiscalinet.it
  % Inserendo tutti i dati CORRETTAMENTE si  per soggetti al
  % fastidioso fenomeno dello spamming. Si legga a tal proposito
  % il paragrafo intitolato "Protezione dallo spamming".
  % L' header From viene generato dal programma SLRN cos:
  %
  % username@hostname (realname)
  %
  % ATTENZIONE: lo username non deve contenere spazi !

  hostname                "tiscalinet.it"
  set username            "mr"
  set realname            "Mario Rossi"
  set replyto             "mr@tiscalinet.it"

  set signature           ".signature.slrn"

  % Filename where articles you have posted are archived.
  % Traduzione: nomi dei file dove vengono archiviati gli articoli
  %             che sono stati inviati.

  set save_posts          "slrn/My_Posts"
  set save_replies        "slrn/My_Replies"
  scorefile               "slrn/score"

  % Name of directory where decoded files are placed (relative to HOME)
  % Traduzione: nome della directory dove vengono posti i file
  %             decodificati (relativamente alla directory home)

  set decode_directory    "slrn/decoded"

  % Directory where all other files are saved.
  % Traduzione: directory dove vengono salvati tutti gli altri file.

  set save_directory      "slrn/misc"

  % Directory where postponed articles are placed.  (Make sure it exists)
  % Traduzione: directory dove vengono posti gli articoli scritti, ma che
  %             si vogliono inviare al newsgroup in un secondo tempo.
  %
  % Quando siete in modalit -elenco dei newsgroup-, premete [Esc] [p] per
  % scegliere quali di questi articoli archiviati inviare.

  set postpone_directory  "slrn/postponed"

  %-------------------------------------------------
  %  Local spool configuration
  %-------------------------------------------------

  set spool_inn_root      "/var/spool/slrnpull"
  set spool_root          "/var/spool/slrnpull/news"
  set spool_nov_root      "/var/spool/slrnpull/news"
  set read_active         1
  set use_slrnpull        1
  set server_object       "spool"

  % Trovo che i colori per SLRN 0.9.5.7 (e superiori) definiti
  % nel file /usr/lib/slrn/slrn.rc non siano molto belli a vedersi.
  % Personalmente preferisco i colori che erano definiti
  % per la versione 0.9.5.4 e che sono qui sotto riportati.

  %-----------------------------------------------
  % Colors
  %-----------------------------------------------

  color header_number     "green"         "white"
  color header_name       "green"         "white"
  color normal            "black"         "white"
  color error             "red"           "white"
  color status            "yellow"        "blue"
  color group             "blue"          "white"
  color article           "blue"          "white"
  color cursor            "brightgreen"   "white"
  color author            "magenta"       "white"
  color subject           "black"         "white"
  color headers           "brightcyan"    "white"
  color menu              "yellow"        "blue"
  color menu_press        "blue"          "yellow"
  color tree              "red"           "white"
  color quotes            "red"           "white"
  color thread_number     "blue"          "white"
  color high_score        "red"           "white"
  color signature         "red"           "white"
  color description       "blue"          "white"
  color tilde             "green"         "white"
  color response_char     "green"         "white"

  % Commentate/correggete la linea (errata): mono verbatum           0
  ______________________________________________________________________




  Un consiglio: nel file ~/.slrnrc modificate la variabile
  followup_string eliminando <%f> e/o %d di modo che la stringa
  risultante sia la pi corta possibile. In caso contrario, il programma
  SLRN potrebbe chiedervi di ri-editare il vostro articolo per
  "sistemare" una riga che  lunga pi di 80 caratteri.
  Esempi (usando l' italiano):

  set followup_string "In data %d, %r scriveva:"

  set followup_string "%r scriveva:"

  Oppure, fate in modo che compaia la seguente linea:

  set reject_long_lines 0

  NOTA: il file ~/.slrnrc in realt contiene molte altre istruzioni che
  consentono una maggiore personalizzazione del programma.  Quelle da me
  sopra elencate sono le minime indispensabili, affinch tutto funzioni
  correttamente: il programma SLRN non si collegher al news server per
  leggere le news perch utilizzer quelle presenti sull' hard disk,
  scaricate in precedenza dal programma SLRNPULL.

  Create le seguenti directory:

  $ mkdir slrn
  $ mkdir slrn/postponed
  $ mkdir slrn/decoded
  $ mkdir slrn/misc

  Bisogna ora indicare a SLRNPULL quali newsgroup scaricare.  Con i
  permessi di root editate il file /var/spool/slrnpull/slrnpull.conf.
  Tale file  formato da una serie di linee del tipo:



  [nome newsgroup]  [numero articoli]  [tempo di permanenza]




  [nome newsgroup] = nome del newsgroup da scaricare

  [numero articoli] = indica quanti articoli devono essere scaricati.
  Il numero 0 equivale a scaricare TUTTI gli articoli presenti nel
  newsgroup

  [tempo di permanenza] = indica quanti giorni gli articoli rimangono
  sull' hard disk prima di essere rimossi a seguito del comando "$
  slrnpull --expire"

  Esempio di file /var/spool/slrnpull/slrnpull.conf:



       ______________________________________________________________________
       # Scarica TUTTI gli articoli dal newsgroup it.comp.os.linux.iniziare
       # con un tempo di permanenza pari a 14 giorni.
       # Gli articoli scaricati verranno rimossi dall' hard disk se dopo 14
       # giorni dal download viene dato il comando "$ slrnpull --expire"

       it.comp.os.linux.iniziare  0  14

       # Scarica gli ULTIMI 50 articoli presenti nel newsgroup
       # it.comp.os.linux.software con un tempo di permanenza pari a 7 giorni.
       # Gli articoli scaricati verranno rimossi dall' hard disk se dopo 7
       # giorni dal download viene dato il comando "$ slrnpull --expire"

       it.comp.os.linux.software  50  7
       ______________________________________________________________________






  4.  Utilizzo dei programmi



  4.1.  Download delle news


  Nelle linee che seguono dovete sostituire al posto di [news server] il
  nome del news server al quale potete accedere per leggere/scrivere le
  news. Per maggiori informazioni chiedete al vostro fornitore di
  accesso ad internet.


    Per gli abbonati a Flashnet: [news server] = news.flashnet.it


    Per gli abbonati a Jumpy: [news server] = newsread.albacom.net


    Per gli abbonati a Libero: [news server] = news.libero.it


    Per gli abbonati a Tin: [news server] = news.tin.it



    Per gli abbonati a Tiscali: [news server] = news.tiscalinet.it

  Effettuate il login con l' utente abilitato ad utilizzare il programma
  SLRNPULL (si ricorda che deve appartenere al gruppo news).  Una volta
  collegati ad internet date il seguente comando:

  $ slrnpull -h [news server]

  E' altres possibile definire la variabile di ambiente NNTPSERVER per
  evitare di utilizzare l' opzione -h di SLRNPULL.  Basta editare il
  file /etc/profile ed aggiungere le seguenti due linee:



       NNTPSERVER=[news server]
       export NNTPSERVER




  In questo caso il comando per scaricare le news diventer
  semplicemente:

  $ slrnpull

  La prima volta che lancerete SLRNPULL verr visualizzata una schermata
  simile alla seguente:



       10/06/1999 16:02:15 slrnpull started.
       10/06/1999 16:02:15 Created dir /var/spool/slrnpull/news.
       10/06/1999 16:02:15 Created dir /var/spool/slrnpull/data.
       10/06/1999 16:02:15 Reading /var/spool/slrnpull/slrnpull.conf
       10/06/1999 16:02:15 Created dir /var/spool/slrnpull/news/it.
       10/06/1999 16:02:15 Created dir /var/spool/slrnpull/news/it/test.
       10/06/1999 16:02:15 Connecting to host news.tiscalinet.it ...
       10/06/1999 16:02:17 Connected to host.  Posting Ok.
       10/06/1999 16:02:17 ***/var/spool/slrnpull/out.going/rejects directory
       does not exist.  Creating it...
       10/06/1999 16:02:17 Fetching articles for it.test.




  A questo punto verranno scaricati sia i titoli degli articoli sia i
  relativi messaggi in essi contenuti.

  NOTA: la prima volta sar necessario scaricare migliaia di articoli e
  la cosa potrebbe richiedere una quantit di tempo non trascurabile.
  Inoltre, con alcuni news server, la velocit di download potrebbe
  diminuire drasticamente dopo aver scaricato i primi 100 articoli (cosa
  che capita utilizzando il news server di Tin - news.tin.it - per
  esempio).

  Una volta che il programma SLRNPULL ha terminato il suo compito,
  potete scollegarvi da internet e procedere alla lettura delle news
  usando il programma SLRN. Una registrazione di tutte le operazioni
  svolte dal programma SLRNPULL  contenuta nel file
  /var/spool/slrnpull/log. Per esaminarne il contenuto:

  $ less /var/spool/slrnpull/log

  Per effettuare la cancellazione dall' hard disk degli articoli
  divenuti ormai vecchi (in base a quanto specificato nel file
  /var/spool/slrnpull/slrnpull.conf) date il seguente comando:
  $ slrnpull --expire

  NOTA: per quest' ultima operazione non  necessario essere collegati
  ad internet.



  4.2.  Lettura delle news


  E' un' operazione semplicissima, basta digitare il seguente comando:

  $ slrn -create

  per ogni utente che desidera leggere le news.

  NOTA: dovete usare l' opzione -create solamente la prima volta che
  lanciate il programma SLRN. Le volte successive il comando sar
  semplicemente:

  $ slrn

  NOTA: il programma SLRN in molti casi, ma non sempre, fa distinzione
  tra lettere maiuscole e minuscole.
  Ad esempio, IL COMANDO OTTENUTO PREMENDO IL TASTO [L] E' DIVERSO DA
  QUELLO OTTENUTO PREMENDO IL TASTO [l].

  Per leggere gli articoli scaricati:

    premete [s] in corrispondenza di ogni newsgroup che intendete
     sottoscrivere (in inglese: subscribe). In tal modo i newsgroup
     appariranno ogni volta che lancerete SLRN. In caso contrario, ogni
     volta che lanciate SLRN dovete premere [L] e scrivere i nomi dei
     newsgroup. Quest' ultima operazione  da eseguirsi anche quando
     lanciate il programma SLRNPULL dopo aver modificato il file
     /var/spool/slrnpull/slrnpull.conf aggiungendo nuovi newsgroup da
     scaricare.


    premete [Invio] in corrispondenza del nome di un newsgroup per
     visualizzare l' elenco degli articoli NON ANCORA LETTI.


    premete [Esc] [1] [Invio] in corrispondenza del nome di un
     newsgroup per vedere elencati TUTTI gli articoli.

  Il programma SLRN presenta 3 modalit di funzionamento.


    Modalit -elenco dei newsgroup- :  la schermata di avvio, con l'
     elenco di tutti i newsgroup sottoscritti aventi almeno 1 articolo
     non ancora letto.


    Modalit -elenco degli articoli- :  la schermata che appare quando
     si preme [Invio] sul nome di un newsgroup.


    Modalit -lettura degli articoli- :  la finestra che contiene il
     corpo dell' articolo. Appare quando si preme [Invio] sul titolo di
     un articolo.

  Per avere un elenco dei comandi, premete [?].
  I pi utili sono i seguenti:


  Ovunque vi troviate

  [Ctrl]+[g] : annulla un' operazione

  [Ctrl]+[r] : refresh dello schermo

  -Elenco dei newsgroup-

  [l] : elenca i newsgroup sottoscritti ma che contengono solamente
  articoli gi letti (tali newsgroup hanno uno 0 a sinistra del nome.
  Tale numero, infatti, conteggia gli articoli non letti)

  -Elenco degli articoli-

  [Esc]+[s] : per ordinare (in inglese: to sort) gli articoli secondo
  diversi criteri

  [Esc]+[t] : espande/collassa un thread

  [h] : dopo che  stato letto un articolo, serve per tornare all'
  elenco degli articoli a pieno schermo

  [Esc]+[<] : salta al primo articolo

  [Esc]+[>] : salta all' ultimo articolo

  [a] : ricerca (in avanti) una data stringa nel campo "Author"

  [A] : ricerca (all' indietro) una data stringa nel campo "Author"

  [s] : ricerca (in avanti) una data stringa nel campo "Subject"

  [S] : ricerca (all' indietro) una data stringa nel campo "Subject"

  [o] : salva un articolo sull' hard disk nel file specificato dall'
  utente.  Se il file esiste, l' articolo viene aggiunto alla fine del
  file (operazione nota come "append").

  [.] : ripete l' ultimo comando dato

  -Lettura degli articoli-

  [t] : mostra/nasconde gli header meno importanti

  [T] : mostra/nasconde le linee che costituiscono citazioni di altri
  articoli (in inglese: quoted lines)

  [U] : lancia Netscape per collegarsi all' URL presente nell' articolo
  Nel caso che in quest' ultimo siano presenti pi URL, verr aperta una
  finestra per chiedervi quale indirizzo contattare

  [z] : mostra l' articolo a tutto schermo

  [TAB] : scavalca le "quoted lines"

  [b] : indietro di una pagina

  [SPAZIO] : avanti di una pagina

  [Invio] : avanti di una riga

  [Esc]+[FRECCIA SU] : indietro di una riga

  [Esc]+[FRECCIA GIU'] : avanti di una riga


  NOTA: per default vengono mostrati solo i seguenti header: From,
  Newsgroups e Subject. Se volete modificare tale situazione editate la
  variabile "visible_headers" in ~/.slrnrc.
  Esempi:

  visible_headers "X-,From:" per visualizzare, di default, tutti gli
  header che iniziano con X- pi l' header From

  visible_headers "" per non visualizzare, di default, nessun header


  4.3.  Invio delle news


  Per inviare un nuovo articolo lanciate il programma SLRN

  $ slrn

  Vi comparir l' elenco dei newsgroup sottoscritti, che contengono
  almeno 1 articolo non ancora letto. Ricordo che se non vedete il nome
  di nessun newsgroup ma solo il puntatore "->" :


    non avete sottoscritto (subscribe) nessun newsgroup. Premete [L]
     [*] [Invio] per avere l' elenco di tutti i newsgroup disponibili.
     Per sottoscrivere un newsgroup, premete [s] in corrispondenza del
     suo nome.


    tutti i newsgroup sottoscritti contengono articoli gi letti.
     Premete [l].

  Portatevi sul nome del newsgroup al quale volete inviare il vostro
  articolo e premete i tasti [p] [y] [Invio].

  NOTA: i manifesti dei newsgroup italiani li trovate presso
   <http://www.news.nic.it/news-it/gruppi-it.html>

  Se volete inviare un articolo di prova, per verificare la corretta
  installazione dei programmi, dovete utilizzare il newsgroup it.test !

  Per default si dovr scrivere l' articolo utilizzando l' editor vi. Se
  volete utilizzare un editor diverso, modificate nel file ~/.slrnrc la
  linea: set editor_command

  Uscite dall' editor, vi verr posta la seguente domanda:
  Post the message? Yes, No, Edit, poStpone


  Si possono presentare i seguenti 3 casi:

  1. nel file ~/.slrnrc  presente la linea "set use_slrnpull 1".
     Premete [y] oppure [Y].  SLRN non invia al news server l' articolo
     bens lo copia nella directory /var/spool/slrnpull/out.going con un
     nome simile a questo: X913482683-607-1.[utente]

     [utente] = nome col quale si  effettuato il login

     TUTTI i file che si trovano in questa directory verranno
     automaticamente inviati al news server dal programma SLRNPULL prima
     di scaricare i nuovi articoli.
     E' il metodo consigliato




  2. nel file ~/.slrnrc NON  presente la linea "set use_slrnpull 1". Se
     premete [y] o [Y] l' articolo verr inviato al news server. E'
     NECESSARIO, pertanto, avere attiva la connessione ad internet


  3. indipendentemente dal contenuto del file ~/.slrnrc, premete [s] o
     [S]. L' articolo verr salvato in un file: dovete fornire un nome.
     Successivamente, tale articolo potr essere inviato (al news server
     o alla directory /var/spool/slrnpull/out.going) premendo i tasti
     [Esc] [p] in modalit -elenco dei newsgroup-

  Se volete rispondere nel newsgroup ad un articolo che avete appena
  finito di leggere, premete [f] per effettuare un followup. Le regole
  per l' invio dell' articolo di followup sono identiche ai 3 casi sopra
  elencati.



  5.  Informazioni aggiuntive



  5.1.  Utilizzo del file score


  I programmi SLRN e SLRNPULL consentono di assegnare un punteggio (in
  inglese: score) ad ogni articolo che  stato scaricato (SLRN) o che
  deve essere scaricato (SLRNPULL).  Le regole per l' assegnazione dei
  punteggi si trovano nel file ~/slrn/score per SLRN e nel file
  /var/spool/slrnpull/score per SLRNPULL.  I programmi SLRN e SLRNPULL
  utilizzano il file score in modo differente:


    SLRNPULL non scarica dal news server un articolo se quest' ultimo
     totalizza un punteggio minore di ZERO. Ogni articolo che non viene
     scaricato incrementa di uno la voce "killed" (letteralmente, dall'
     inglese: uccisi, rimossi).



    SLRN pu mostrare a sinistra di ciascun articolo il punteggio da
     esso ottenuto. Controllate che sia presente nel file ~/.slrnrc la
     linea: set display_score 1
     E' anche possibile ordinare gli articoli in base ai punteggi.
     Modificate nel file ~/.slrnrc la linea: set sorting_method

  Il formato di un file score non  complicato ed  lo stesso sia per
  SLRN che per SLRNPULL.  Tale file consiste di sezioni, ognuna delle
  quali contiene le regole che devono essere applicate ad uno o pi
  newsgroup per calcolare i punteggi da attribuire a ciascun articolo.

  Ogni sezione  identificata da parentesi quadre.  Per esempio,
  [it.comp.os.linux.*] indica l' inizio della sezione che definir le
  regole per tutti i newsgroup che iniziano con i caratteri
  "it.comp.os.linux.". Cio per i seguenti newsgroup:

  it.comp.os.linux.annunci
  it.comp.os.linux.development
  it.comp.os.linux.iniziare
  it.comp.os.linux.software
  it.comp.os.linux.sys

  Seguono ora alcuni esempi.

    Volete assegnare un punteggio pari a -1 a tutti gli articoli del
     newsgroup news.software.readers che non contengono la parola "slrn"
     nel titolo (Subject) dell' articolo, per evitare di scaricarli.
     Questo  ci che dovete scrivere nel file
     /var/spool/slrnpull/score:



       [news.software.readers]
       Score: -1
        ~Subject: slrn





    Volete assegnare un punteggio pari a 10 a tutti gli articoli del
     newsgroup it.comp.os.linux.iniziare i cui titoli contengono la
     parola "redhat". Inserite nel file ~/slrn/score:


       [it.comp.os.linux.iniziare]
       Score: 10
        Subject: redhat





    Volete assegnare un punteggio pari a 20 a tutti gli articoli del
     newsgroup it.comp.os.linux.iniziare i cui titoli contengono la
     parola "aiuto" E l' autore  Mario Rossi. Inserite nel file
     ~/slrn/score:


       [it.comp.os.linux.iniziare]
       Score: 20
        Subject: aiuto
        From: Mario Rossi





    Volete assegnare un punteggio pari a 30 a tutti gli articoli del
     newsgroup it.comp.os.linux.iniziare i cui titoli contengono la
     parola "aiuto" OPPURE l' autore  Mario Rossi (notare Score::).
     Inserite nel file ~/slrn/score:


       [it.comp.os.linux.iniziare]
       Score:: 30
        Subject: aiuto
        From: Mario Rossi





    Volete assegnare un punteggio pari a 40 a tutti gli articoli del
     newsgroup it.comp.os.linux.iniziare, da voi scritti, appartenenti
     ad un qualsiasi thread (non dovete scrivere le parentesi tonde).
     Inserite nel file ~/slrn/score:





  [it.comp.os.linux.iniziare]
  Score: 40
   From: ( mettete ci che compare nel VOSTRO header From )





    Volete assegnare un punteggio pari a 50 a tutti gli articoli che
     costituiscono una risposta ai vostri articoli apparsi nel newsgroup
     it.comp.os.linux.sys. Inserite nel file ~/slrn/score:


       [it.comp.os.linux.sys]
       Score: 50
        References: ( si veda la nota sotto )





  NOTA: dovete basarvi sulla parte finale dell' header Message-ID di un
  vostro articolo, quella che comincia con il vostro username.  Se, per
  esempio, il vostro username  "mr" (si veda la voce "set username" nel
  file ~/.slrnrc) e non avete dato un nome al vostro PC, tale header
  terminer nel seguente modo:


  mr@localhost.localdomain>


  La linea da inserire alla voce "References:" sar allora la seguente:


  \.mr@localhost.localdomain>$

  Con quest' ultima regola di assegnazione dei punteggi vi sar senz'
  altro pi semplice poter seguire le risposte ai vostri articoli.
  Per maggiori informazioni si veda il file: SCORE_FAQ



  5.2.  Protezione dallo "spamming"


  Inserendo correttamente i vostri dati nel file ~/.slrnrc tutti coloro
  che leggeranno il vostro articolo sapranno qual  il vostro indirizzo
  e-mail. Potrete cos ricevere, in privato, le risposte ai vostri
  articoli da parte di altri frequentatori dei newsgroup.  Esistono per
  programmi appositi che estraggono, dagli articoli inviati ad un
  newsgroup, gli indirizzi e-mail.  Noto il vostro indirizzo e-mail 
  possibile inviarvi (in automatico) di tutto un po': proposte di
  vacanze in Papuasia, vendite di PC, consulenze informatiche, numeri
  del lotto, ...  Questa poco civile pratica  nota come "spamming" (ho
  una mia versione in italiano ma  improponibile).  Se volete evitare
  di trovare la vostra casella di posta intasata da messaggi non
  desiderati, potete alterare i vostri dati ed usare il file
  ~/.signature.slrn
  Per esempio, sempre facendo riferimento all' ipotetico abbonato di
  Tiscali Mario Rossi (e-mail: mr@tiscalinet.it), potete editare il file
  ~/.slrnrc cos:





  ______________________________________________________________________
  hostname       "tiscalinet.it"
  set username   "NOSPAM"
  set realname   "Mario Rossi"
  set replyto    "NOSPAM@tiscalinet.it"
  set signature  ".signature.slrn"
  ______________________________________________________________________




  ed editare il file ~/.signature.slrn in modo che compaia la seguente
  frase:


       Per ottenere il mio indirizzo e-mail sostituite NOSPAM con mr




  In tal modo, solo chi avr realmente necessit vi contatter tramite
  e-mail.


  5.3.  Traduzione del file FAQ presente nella distribuzione di SLRN



    D. Dove posso trovare maggiori informazioni riguardo slrn?

     R. Sebbene vi sia una man page, essa probabilmente non illustra le
     ultime caratteristiche del programma. Una miglior sorgente di
     informazioni riguardo le nuove caratteristiche di slrn si trova nel
     file changes.txt (in inglese) che viene distribuito assieme a slrn.
     Inoltre, tutte le opzioni di ~/.slrnrc sono descritte nel file di
     esempio slrn.rc, anch' esso distribuito assieme a slrn.
     Un ulteriore aiuto (in lingua inglese)  disponibile a:

      <http://space.mit.edu/~davis/slrn.html>

     In particolare, questa pagina web contiene dei link ad altre
     sorgenti di informazioni riguardanti slrn.
     Potete inoltre partecipare allo sviluppo di slrn migliorando la sua
     documentazione. Se siete intenzionati a presentare della
     documentazione per slrn, utilizzate per favore il semplice formato
     testo. Ho intenzione, prima o poi, di tradurre tutta la
     documentazione di slrn in formato SGML per poi elaborare il
     documento SGML per produrre man page e documenti nei formati HTML,
     TeX, RTF, ecc...  Infine, se create della documentazione
     addizionale per slrn e la rendete disponibile attraverso il WWW,
     per cortesia fatemelo sapere cos che io possa creare un link alla
     vostra pagina web.

     Frequentemente il newsgroup news.software.readers contiene articoli
     che riguardano SLRN. Molti utilizzatori esperti di SLRN partecipano
     attivamente al newsgroup, rendendolo una grande risorsa per SLRN
     stesso.

     Vi sono diverse pagine web dedicate a SLRN. Basta seguire i link
     presenti nella home page del programma SLRN a:
      <http://space.mit.edu/~davis/slrn.html>


    D. Invece delle linee, per l' albero dei thread viene utilizzato
     "mq". Perch?

     R. Ci sono un paio di ragioni per questo. La pi semplice potrebbe
     essere che il font che state utilizzando non supporta i caratteri
     utilizzati per disegnare le linee. Si pu risolvere il problema
     semplicemente cambiando il font con uno dec-vt220 compatibile.
     Questo  di solito il caso delle applicazioni telnet di Windows.
     Un' altra ragione  che il vostro file terminfo potrebbe non essere
     configurato correttamente. La soluzione ovvia  quella di sistemare
     il file terminfo. Comunque, ci potrebbe non essere possibile senza
     le corrette utility (untic e tic) e molti sistemi non hanno queste
     utility installate.  Sebbene slang sia un sistema basato su
     terminfo, c' un' altra soluzione basata su termcap se state usando
     la versione 0.99.18, o successive, di slang. Prima di tutto,
     aggiungete una voce al file termcap per poter disporre di un set di
     caratteri alternativo tramite le propriet "ac", "ae", "as" e
     possibilmente "eA". Chiameremo questo file mio_termcap. Date ora i
     seguenti comandi:

     # setenv TERMCAP mio_termcap (se state usando tcsh come shell)
     # export TERMCAP=mio_termcap (se state usando bash come shell)
     # eval `tset -s nome-terminale`

     Sostituite nome-terminale con il nome del vostro terminale.  `tset'
     legge ed analizza il file mio_termcap ed imposta adeguatamente la
     variabile TERMCAP. Potete ora inserirla nel vostro file .login


    D. Non riesco a vedere l' albero dei thread. Perch?

     R. Si veda la risposta alla domanda precedente.


    D. Quando contrassegno come letto un articolo, perch non vengono
     contrassegnati come letti anche gli articoli inviati tramite cross-
     post?

     R. Affinch slrn contrassegni come letto un articolo in pi di un
     newsgroup, ha bisogno di sapere in quali newsgroup l' articolo 
     stato inviato tramite cross-post. Questa informazione  fornita
     dall' header Xref. Non tutti i news server forniscono questo header
     cos che questa caratteristica non funzioner con questi server.
     Supponiamo ora che il vostro news server fornisca l' header Xref
     come uno degli header dell' articolo e, allo stesso tempo, fornisca
     il supporto per il database NOV (attraverso il comando nntp XOVER).
     In questo caso, a meno che il server sia configurato per fornire l'
     header Xref come parte del database NOV, slrn non sar in grado di
     ottenere l' header senza dover accedere all' articolo.
     Sfortunatamente, usando NOV l' header Xref  opzionale, cos molti
     sistemi non lo forniscono automaticamente sebbene esso sia uno
     degli header raccomandati.  Ricapitolando, assicuratevi che il
     vostro news server fornisca l' header Xref E se supporta NOV,
     assicuratevi che l' header Xref sia parte del database NOV.


    D. Cos'  un argomento di prefisso?

     R. Molte sequenze di tasti accettano argomenti di prefisso. Un
     argomento di prefisso  un intero che  generato prima di una
     sequenza di tasti e viene utilizzato come mezzo per controllarne il
     comportamento. E' generato dalla pressione del tasto [Esc] e
     successivamente dalla pressione dei tasti che corrispondono ad un
     numero intero. Per esempio, per generare l' argomento di prefisso
     314, dovete semplicemente premere 4 tasti: [Esc] [3] [1] [4].
     Alcune funzioni usano tali argomenti come elemento di ripetizione.
     La funzione corrispondente ad una determinata sequenza di tasti
     verr ripetuta il numero di volte specificato dall' argomento di
     prefisso.
     Alcune altre funzioni possono semplicemente usarli come metodo per
     modificare leggermente il comportamento della funzione. Per
     esempio, se un argomento di prefisso  utilizzato come modificatore
     della funzione "followup", gli header dell' articolo originale
     verranno inclusi nell' articolo di followup. Senza un argomento di
     prefisso, gli header non verranno inclusi nell' articolo di
     followup.


    D. Come posso rileggere gli articoli di un newsgroup che ho gi
     letto?

     R. Basta semplicemente entrare in un newsgroup utilizzando un
     argomento di prefisso. Premete cio [Esc] e poi un numero seguito
     dalla sequenza di tasti che utilizzate per entrare nel newsgroup.
     Per esempio, se utilizzate il tasto [Invio], dovete allora premere
     i seguenti tasti: [Esc] [1] [Invio].


    D. E' possibile utilizzare il mouse con slrn?

     R. S, se lanciate slrn in una finestra Xterm. Per abilitarlo,
     aggiungete al file ~/.slrnrc la seguente linea:set mouse 1
     Per forzare slrn ad usare il mouse, lanciate slrn utilizzando l'
     opzione -m, cio date il seguente comando:

     $ slrn -m

     Le azioni definite per il mouse sono specificate nella seguente
     tabella:




































  Modalit: elenco nomi newsgroup

   Oggetto                         Pulsante     Azione
   ------------------------------------------------------------------------
   Linea in alto di status         qualsiasi    specificata dall' etichetta
   Nome del newsgroup              qualsiasi    seleziona il newsgroup
   Linea in basso di status        centrale     mostra/nasconde i newsgroup
                                                i cui articoli sono stati
                                                letti tutti
   Linea in basso di status        sinistro     una pagina gi
   Linea in basso di status        destro       una pagina su


  Modalit: elenco degli articoli

   Oggetto                         Pulsante     Azione
   ------------------------------------------------------------------------
   Linea in alto di status         qualsiasi    specificata dall' etichetta
   Linea in basso di status        sinistro     una pagina gi
                                   destro       una pagina su
                                   centrale     mostra la finestra degli
                                                articoli
   Linea di status degli articoli  sinistro     vai al successivo non letto
                                   destro       vai al precedente non letto
                                   centrale     mostra/nasconde le "quoted
                                                lines"
   Titolo di un articolo           qualsiasi    seleziona l' articolo


  Modalit: finestra degli articoli

                                  Pulsante     Azione
  ------------------------------------------------------------------------
                                  sinistro     una pagina gi
                                  destro       una pagina su
                                  centrale     nascondi la finestra





    D. Come posso usare il mouse in una finestra Xterm per effettuare
     l' operazione taglia e incolla?

     R. Il metodo pi semplice consiste nel tenere premuto il tasto
     [Shift] quando si usa il mouse per le operazioni taglia e incolla.
     Un altro metodo consiste nell' ottenere un prompt di slrn per
     effettuare la ricerca di qualcosa (premete [s] o [/] a seconda dei
     casi), effettuare l' operazione di taglia e incolla per poi
     interrompere la ricerca premendo [Invio].


    D. Qual  il metodo pi semplice per decodificare gli articoli?

     R. Per fortuna, il metodo pi semplice  anche quello pi
     efficiente. In pratica esso si basa sull' uso del tasto [#] per
     contrassegnare numericamente gli articoli che volete decodificare e
     successivamente sull' uso del tasto [:] per iniziare il processo di
     decodifica.  L' unica restrizione  che gli articoli codificati in
     pi parti devono essere contrassegnati seguendo l' esatto ordine in
     cui essi sono stati suddivisi.  Non c' bisogno di decodificare un
     articolo alla volta. Semplicemente, contrassegnate tutto ci che
     volete decodificare e poi premete il tasto [:].
     Ecco un esempio concreto tratto dal newsgroup
     alt.binaries.pictures.fractals:

  -    9:[Mike In Indy]    Kaboom! - kaboom.gif (0/1)
  - 3078:[Mike In Indy]    Kaboom! - kaboom.gif (1/1)
  -   23:[Gumbycat    ]    lucifer.gif  (0/7)
  -  433:[Gumbycat    ]    lucifer.gif -  for Halloween (5/7)
  -  433:[Gumbycat    ]    lucifer.gif  -  for Halloween (3/7)
  -  433:[Gumbycat    ]    lucifer.gif  -  for Halloween (4/7)
  -  433:[Gumbycat    ]    lucifer.gif  -  for Halloween (6/7)
  -  244:[Gumbycat    ]    lucifer.gif  -  for Halloween (7/7)
  -  434:[Gumbycat    ]    lucifer.gif  - for Halloween (1/7)
  -  433:[Gumbycat    ]    lucifer.gif - for Halloween (2/7)
  -   16:[Paul Carlson]    My Halloween Fractal - devil.gif (0/1)
  - 4310:[Paul Carlson]    My Halloween Fractal - devil.gif (1/1)




  Come potete vedere, sono stati inviati 3 file: kaboom.gif, lucifer.gif
  e devil.gif (nel momento in cui sto scrivendo  la settimana di
  Halloween).  Sia kaboom.gif che devil.gif sono file costituiti da un'
  unica parte mentre lucifer.gif  un file che  stato suddiviso in 7
  parti.  Dal momento che lucifer.gif  mostrato non nell' ordine,
  bisogna prestare attenzione nel contrassegnarlo per la decodifica.
  Assumiamo che vogliate decodificare queste 3 immagini .gif, il tasto
  [#] verr utilizzato per contrassegnarle. Il risultato dell' utilizzo
  del tasto [#]  mostrato qui sotto:


        -    9:[Mike In Indy]    Kaboom! - kaboom.gif (0/1)
       1- 3078:[Mike In Indy]    Kaboom! - kaboom.gif (1/1)
        -   23:[Gumbycat    ]    lucifer.gif  (0/7)
       6-  433:[Gumbycat    ]    lucifer.gif -  for Halloween  (5/7)
       4-  433:[Gumbycat    ]    lucifer.gif  -  for Halloween (3/7)
       5-  433:[Gumbycat    ]    lucifer.gif  -  for Halloween (4/7)
       7-  433:[Gumbycat    ]    lucifer.gif  -  for Halloween (6/7)
       8-  244:[Gumbycat    ]    lucifer.gif  -  for Halloween (7/7)
       2-  434:[Gumbycat    ]    lucifer.gif  - for Halloween (1/7)
       3-  433:[Gumbycat    ]    lucifer.gif - for Halloween (2/7)
        -   16:[Paul Carlson]    My Halloween Fractal - devil.gif (0/1)
       9- 4310:[Paul Carlson]    My Halloween Fractal - devil.gif (1/1)




  Sono stati contrassegnati numericamente 9 articoli. Per iniziare la
  decodifica, premete semplicemente il tasto [:]. Slrn chieder il nome
  del file in cui salvare gli articoli e, dopo aver salvato, chieder se
  deve proseguire nella decodifica delle altre 2 immagini gif. I file
  decodificati verranno posti nella directory specificata dalla
  variabile "decode_directory" che potete impostare nel file ~/.slrnrc .
  Il risultato finale  che, dopo aver contrassegnato con il tasto [#],
  dovete premere una volta [:] e due volte il tasto [Invio]. Per
  togliere tutti i contrassegni, premete [Esc] [#].


    D. Come posso inviare lo stesso articolo a pi newsgroup
     contemporaneamente ?

     R. Ci sono 2 modi:



     1. Quando slrn chiede a quale newsgroup inviare l' articolo,
        fornite un elenco di newsgroup separati da virgole.
        NON UTILIZZATE SPAZI !


     2. Modificate la linea che riporta l' header del newsgroup quando
        editate l' articolo. Di nuovo, l' elenco dei newsgroup deve
        essere separato da virgole senza lasciare spazi. Assicuratevi
        inoltre di non andare a capo mentre editate questa linea.

     Un utile suggerimento:

     se vi dimenticate il nome del newsgroup mentre avete gi caricato
     l' editor, sospendete l' editor con [Ctrl]+[z] ed utilizzate
     more/less/most per esaminare il vostro file .newsrc. Se il vostro
     editor  sufficientemente sofisticato, potete semplificare questo
     processo utilizzando la linea "editor_command" presente nel file
     ~/.slrnrc . Per esempio, se utilizzate l' editor jed, potete
     impostare il vostro comando per richiamare l' editor come:

     editor_command "jed ~/.jnewsrc -2 %s -g %d"

     Questo comando divide in due la finestra di editing, carica il file
     ~/.jnewsrc all' interno della prima finestra e il file che dovete
     editare con slrn nella seconda. Inoltre, fa s che il cursore si
     posizioni inizialmente sulla riga %d del file che dovete editare.


    D. Come posso rileggere gli articoli precedentemente letti di un
     thread?

     R. La combinazione di tasti [Esc] [p] cercher di trovare l'
     articolo padre del corrente articolo come specificato dall' header
     references interrogando il news server se necessario. Per trovare
     l' articolo figlio dell' articolo corrente utilizzate i tasti [Esc]
     [Ctrl]+[p]. Infine, per ricostruire l' intero thread utilizzate i
     tasti [Esc] [1] [Esc] [p].


    D. Perch il comando [L] non funziona come dovrebbe?

     R. Il tasto [L] mostra un elenco di tutti i gruppi non sottoscritti
     di cui slrn  a conoscenza. Slrn ottiene questa informazione
     cercando, nell' ordine, nelle seguenti 3 sorgenti e fermandosi non
     appena la trova:



     1. dal news server attraverso il file active (se state utilizzando
        slrn e slrnpull per la lettura offline delle news, questo file
        si trova nella directory ~/slrnpull/data, ndt). Slrn fa questo
        solo se  presente nel file ~/.slrnrc la linea "set read_active
        1".  Per default, slrn non legge l' active file.



     2. interrogando il news server tramite il comando nntp XGTITLE. Ci
        richiede che il vostro news server supporti questo comando e che
        sia presente nel file ~/.slrnrc la linea "set use_xgtitle 1".



     3. dai gruppi che sono elencati nel file ~/.newsrc . Il comando [L]
        mostrer solo la lista dei gruppi non sottoscritti che sono
        presenti in questo file.

     L' ultima ricerca (3) ha sempre successo con il risultato che
     potrebbero essere elencati molti meno gruppi di quelli che ci si
     aspetterebbe. Se disponete di una connessione veloce con il vostro
     news server, allora aggiungete semplicemente questa linea al file
     ~/.slrnrc: "set read_active 1". Se invece la vostra connessione 
     lenta e non desiderate che slrn legga il file active, allora
     informatevi se il vostro news server supporti o meno il comando
     XGTITLE. In caso affermativo, fate in modo che slrn lo possa usare
     aggiungendo nel file ~/.slrnrc la linea "set use_xgtitle 1". Per
     ultimo, potete inserire nel file ~/.slrnrc una lista dei newsgroup.


    D. Come posso impostare l' header From per i miei articoli?

     R. Dovete utilizzare le impostazioni presenti nel file ~/.slrnrc:



       set hostname "NOME DEL VOSTRO HOST"
       set username "NOME UTENTE"
       set realname "VOSTRO NOME REALE"




  Infine, se esiste una funzione S-Lang chiamata
  `make_from_string_hook', essa verr utilizzata per generare l' header
  From. In pratica:



       ______________________________________________________________________
       define make_from_string_hook ()
       {
        return "W. J. Clinton <president@whitehouse.gov>"
       }
       ______________________________________________________________________





    D. Perch `set_author_display' non funziona?

     R. Questa variabile non  pi significativa ed  ignorata dalle
     recenti versioni di SLRN. L' utente  invece incoraggiato ad
     utilizzare l' interfaccia, molto pi flessibile, fornita dalla
     variabile `header_display_format'.


  5.4.  Ancora FAQ



    D. Perch SLRN utilizza l' header From che  specificato nel file
     ~/.slrnrc solo per gli articoli inviati al newsgroup e non per gli
     articoli di risposta inviati tramite e-mail?

     R. Bisogna configurare correttamente il proprio MTA
     (postfix/sendmail/qmail).


     POSTFIX:
        esiste un mini-HOWTO che descrive (in italiano) come
        configurarlo:

         <http://www.linux.it/~agx/info/mini-postfix-howto.txt>

        Personalmente vi consiglio di utilizzare Postfix.  E' un MTA
        sicuro e molto semplice da configurare:

         <http://www.postfix.org>

        NOTA: se vi collegate ad internet mediante modem tramite la
        normale rete telefonica (connessioni dial-up) vi sar utile
        aggiungere in /etc/postfix/main.cf la seguente linea:

        defer_transports = smtp

        In questo modo, tutte le vostre e-mail non verranno inviate
        subito al server SMTP del vostro provider bens salvate sul
        vostro hard disk in attesa di essere spedite.  Per spedirle:

        # sendmail -q

        Per evitare di dare il comando come utente root, create il
        seguente link simbolico per ogni utente della vostra Linux box:

        $ ln -s /usr/sbin/sendmail ~/bin/sendmail


     SENDMAIL:
        si legga il "Sendmail address rewriting mini-HOWTO" che potete
        trovare (in italiano) qui:

         <http://www.pluto.linux.it/ildp/HOWTO/mini/Sendmail-Address-
        Rewrite.html>

        Se di Sendmail avete la versione 8.9.x/8.10  anche possibile
        utilizzare lo script Install-Sendmail ( multilingua, compreso
        l' italiano) che potete trovare qui:

         <http://cork.linux.ie/projects/install-sendmail/install-
        sendmail-5.3.1.tar.gz>


    D. Come fare per utilizzare il programma Mutt quando si effettua il
     reply ad un articolo?

     R. Fate in modo che siano presenti nel file ~/.slrnrc le seguenti
     due linee:

     set abort_unmodified_edits 1
     set mail_editor_command "mutt -H '%s'"

     Se utilizzate SLRN assieme a X:

     set mail_editor_command "xterm -T mutt -e mutt -H '%s' &"


    D. Come fare per evitare che appaia la signature di SLRN nel
     messaggio di reply prodotto da Mutt?

     R. Fate in modo che nel file ~/.slrnrc siano presenti le seguenti
     linee:

     set abort_unmodified_edits 1
     interpret "my_reply.sl"
     set mail_editor_command "mutt -H '%s' -F '~/.muttrc.slrn'"

     Nel file ~/.slrnrc commentate la linea (cio aggiungete un %
     all'inizio):

     setkey article  reply  "r"

     Infine, scrivete il file di testo (macro) ~/my_reply.sl:

       ______________________________________________________________________
       % File ~/my_reply.sl

       define my_reply ()
       {
       variable sig = get_variable_value("signature");
       set_string_variable("signature", " ");

       % se utilizzate delle misure anti-spam, sostituite a __________ il
       % vostro vero indirizzo e-mail
       set_string_variable("replyto", "__________");

       call("reply");
       set_string_variable("signature", sig);
       }

       definekey ("my_reply", "r", "article");
       ______________________________________________________________________




  ed il file di configurazione ~/.muttrc.slrn (commentate con un # la
  linea "set editor=" che non vi interessa):



       ______________________________________________________________________
       # File ~/.muttrc.slrn

       source ~/.muttrc

       #per avere il cursore posizionato sulla seconda linea:
       set editor="vim +2"

       #per avere il cursore posizionato appena sopra la signature:
       set editor="vim +/^$"
       ______________________________________________________________________





    D. Quale editor  consigliabile utilizzare con SLRN?

     R. Personalmente utilizzo vim:

      <http://www.vim.org>

     Una volta configurato a dovere si rivela essere un editor molto
     potente ed incredibilmente efficiente nello svolgere il proprio
     lavoro.
     Segue, commentato, il mio file di configurazione ~/.vimrc

     NOTA: il programma par (un formattatore di paragrafi) lo trovate
     qui:

      <http://www.cs.berkeley.edu/~amc/Par/>








  ______________________________________________________________________
  " File ~/.vimrc

  " evidenzia i risultati di una ricerca (tasto [/])
  set hlsearch
  " fai un backup dei file
  set backup
  " niente beep, niente visual bell
  set vb t_vb=
  " margine destro al 72-esimo carattere
  set tw=72
  " il tasto [Canc] deve funzionare come in tutti gli altri editor
  set bs=2
  " mostra riga e colonna correnti, in basso a destra dello schermo
  set ruler
  " evidenzia la sintassi dei file
  syntax on


  " SLRN utilizza i file ~/.followup e ~/.article per gli articoli destinati
  " ai newsgroup. Pertanto, per questi due file non utilizziamo le lettere
  " accentate presenti su una tastiera italiana.
  " Il contenuto del file ~/.vimrc.slrn  a seguire
  autocmd BufReadPost ~/.followup source ~/.vimrc.slrn
  autocmd BufReadPost ~/.article  source ~/.vimrc.slrn

  " Mutt utilizza i file /tmp/mutt-* quando scriviamo un' e-mail.
  " Anche in questo caso, non utilizziamo le lettere accentate presenti su
  " una tastiera italiana.
  " Il contenuto del file ~/.vimrc.mutt  a seguire
  autocmd BufReadPost /tmp/mutt-* source ~/.vimrc.mutt

  " non creare file di backup per i file "postponed", per evitare che
  " appaiano nella finestra ottenuta premendo [Esc] [p] in modalit
  " -elenco dei newsgroup-
  " Il contenuto del file ~/.vimrc.slrn.postponed  a seguire
  autocmd BufReadPost ~/slrn/postponed/* source ~/.vimrc.slrn.postponed

  " modalit NORMAL (nmap) e INSERT (imap)
  " ^[ = [Ctrl]+[v] [Esc]
  " ^M = [Ctrl]+[v] [Ctrl]+[m]

  " mappa il tasto funzione <F2> per cancellare una linea
  nmap <F2> dd
  imap <F2> ^[dd^[i

  " mappa il tasto funzione <F3> per utilizzare PAR
  nmap <F3> {!}par 72qj^M}
  imap <F3> ^[{!}par 72qj^M}^[i

  " mappa il tasto funzione <F8> per uscire SENZA salvare
  nmap <F8> :q!^M
  imap <F8> ^[:q!^M

  " mappa il tasto funzione <F10> per uscire E salvare
  nmap <F10> :x^M
  imap <F10> ^[:x^M

  " definisci le abbreviazioni per gli indirizzi di posta elettronica
  " sostituisce a io@    l' indirizzo e-mail  a.airaghi@tiscalinet.it
  " sostituisce a rossi@ l' indirizzo e-mail  mr@tiscalinet.it
  ia    io@       a.airaghi@tiscalinet.it
  ia    rossi@    mr@tiscalinet.it
  ______________________________________________________________________


       ______________________________________________________________________
       " File ~/.vimrc.slrn
       " File ~/.vimrc.mutt

       imap  a`
       imap  e`
       imap  e`
       imap  i`
       imap  o`
       imap  u`
       ______________________________________________________________________






       ______________________________________________________________________
       " File ~/.vimrc.slrn.postponed

       set nobackup

       imap  a`
       imap  e`
       imap  e`
       imap  i`
       imap  o`
       imap  u`
       ______________________________________________________________________




  Bisogna poi inserire in ~/.slrnrc questa linea:

  set editor_command "vim +8"


    D. Leggendo alcuni articoli appare la seguente domanda: "Process
     this MIME article with metamail?". E' possibile evitarla?

     R. S, basta inserire nel file ~/.slrnrc la seguente linea:

     set use_metamail 0


    D. E' possibile rileggere le copie degli articoli che abbiamo
     inviato ai vari newsgroup?

     R. S. Un metodo molto semplice consiste nell' utilizzare un MUA
     (Mail User Agent) come elm o mutt. Digitate uno dei seguenti due
     comandi:

     $ elm -f ~/slrn/My_Posts
     $ mutt -f ~/slrn/My_Posts


    D. Come fare per avere una lista di tutti i newsgroup presenti sul
     news server? [metodo breve]

     R. Modificate il file ~/.slrnrc in modo che compaia la seguente
     linea:

     set write_newsrc_flags 0

     Date ora il seguente comando:
     slrn --nntp -h [news server] -a -f elenco_gruppi -create

     [news server] = nome del news server

     Uscite da SLRN. L' elenco di tutti i newsgroup lo potete leggere
     nel file elenco_gruppi


    D. Come fare per avere una lista di tutti i newsgroup presenti sul
     news server? [metodo lungo]

     R. Date il seguente comando:

     $ slrn -h [nome news server] -f elenco_gruppi -create

     Lanciate ora SLRN:

     $ slrn

     Elencate tutti i newsgroup presenti sul news server: dovete premere
     il tasto [L], scrivere * e premere [Invio]
     Sottoscrivete tutti i newsgroup: dovete premere i tasti [Esc] [1]
     [s], scrivere * e premere [Invio]
     Uscite ora da SLRN. L' elenco di tutti i newsgroup lo potete
     leggere nel file elenco_gruppi


    D. Uscendo dall' editor senza aver salvato l' articolo che stavamo
     scrivendo, SLRN ci chiede lo stesso se lo vogliamo spedire o meno.
     E' possibile evitare questa domanda?

     R. S, basta che nel file ~/.slrnrc sia presente la seguente linea:

     set abort_unmodified_edits 1


    D. E' possibile modificare il formato con cui SLRN mostra l' elenco
     degli articoli?

     R. S, ci sono 10 formati disponibili e il comando [Esc] [a]
     consente di passare al successivo.  Per modificare il formato
     numero 0 (quello di default per la modalit -elenco degli
     articoli-) si deve aggiungere al file ~/.slrnrc la seguente linea:

     header_display_format 0 "<formato>"

     dove <formato> si costruisce utilizzando i seguenti campi:



       %d: data dell' articolo
       %f: header From
       %F: flags (marcatori: letto/non-letto, * e #, numero di linea)
       %G: "group lens score"
       %l: numero di linee dell' articolo
       %n: numero dell' articolo sul news server
       %r: realname (autore dell' articolo)
       %s: subject  (titolo dell' articolo)
       %S: score    (punteggio)
       %t: thread (mostra il numero degli articoli che formano un thread)
       %Xg: sposta il cursore alla colonna X (sono numerate a partire da 0).
            Se X  un numero negativo, il cursore verr spostato di X colonne a
            partire dal bordo destro della finestra.



  E' possibile definire l' ampiezza di ciascun campo mediante un numero
  interposto tra il segno di percentuale (%) e la lettera che identifica
  il campo. Ad esempio:

  %12r =  riserva 12 caratteri per il campo che conterr il nome dell'
  autore dell' articolo.

  Il contenuto del campo verr giustificato:

    a sinistra, se il numero  senza segno

    a destra, se il numero  negativo

     Esistono 4 formati predefiniti:

     formato numero 0: "%F%-5S%G%-5l:[%12r]%t%s"
     formato numero 1: "%F%G%-5l:[%12r]%t%s"
     formato numero 2: "%F%-5l:%t%s"
     formato numero 3: "%F%-5S%-5l:%t%50s %r"

     Inoltre, [Esc] [a] pu essere utilizzato con un argomento di
     prefisso per selezionare un particolare formato.  Per esempio,
     [Esc] [0] [Esc] [a] seleziona il formato numero 0.



  5.5.  Utilizzo di Knews, al posto di SLRN, per leggere/scrivere le
  news


  Questo paragrafo  a cura di Matteo Nastasi, nastasi@tiscalinet.it

  Knews  un programma che gira sotto X Window per leggere e inviare
  articoli ad un news server.  La K iniziale non sta per KDE ma per
  "Karl-Johan Johnsson" (il nome di colui che l' ha  scritto) quindi non
   necessario aver installato KDE per farlo funzionare.  Con gli
  opportuni accorgimenti, che verranno qui descritti, pu essere
  utilizzato offline in combinazione con SLRNPULL.
  Questa l' home page del programma:

   <http://www.matematik.su.se/users/kjj/knews.html>

  Dovete, prima di tutto, installare e configurare SLRNPULL.
  Create ora il seguente script di shell, /usr/bin/mynews:



       ______________________________________________________________________
       #!/bin/sh
       nome=`date +X%Y%m%d_%H%M%S`.`id -un`
       pa="$1"
       cat > $pa/$nome
       exit 0
       ______________________________________________________________________




  Date il seguente comando:

  # chmod a+x /usr/bin/mynews

  in modo da renderlo eseguibile

  Dopo aver installato il programma Knews, editate il file
  /usr/X11R6/lib/X11/app-defaults/Knews assicurandovi che compaiano le
  seguenti linee:



       ______________________________________________________________________
       Knews.nntpServer: #spool
       Knews.#spool:     knewsd  -spool /var/spool/slrnpull/news \
                         -active /var/spool/slrnpull/data/active \
                         -post 'exec mynews /var/spool/slrnpull/out.going'
       ______________________________________________________________________




  Per la configurazione di Knews si tengano presenti le seguenti
  equivalenze (tra parentesi quadre i file da editare):




       ______________________________________________________________________
       set realname "Mario Rossi" [~/.slrnrc] diventa:
       *fullName: Mario Rossi     [~/.knews/config-#spool]

       set username "mr"    [~/.slrnrc] diventa:
       Knews.mailName: mr   [/usr/X11R6/lib/X11/app-defaults/Knews]

       set editor_command "vim +8"             [~/.slrnrc] diventa:
       Knews.editCommand: xterm -e vim +%i %s  [/usr/X11R6/lib/X11/app-defaults/Knews]
       ______________________________________________________________________




  NOTA (per utenti Debian): l' editor utilizzato per scrivere gli
  articoli con Knews  "/usr/bin/sensible-editor". Occorre quindi
  valorizzare opportunamente la variabile di ambiente EDITOR (magari in
  uno dei vari script lanciati ad inizio sessione tipo .profile) prima
  di lanciare il programma Knews.


  5.6.  Raccolta di macro per SLRN


  E' possibile aggiungere funzionalit a SLRN mediante l' utilizzo di
  macro. Scelta la macro da utilizzare, inserite nel file ~/.slrnrc la
  seguente linea:

  interpret "{nome macro}"

  Ad esempio:

  interpret "filter.sl"

  Altre utili macro le potete trovare (in inglese) qui:

   <http://slrn.sourceforge.net/macros/index.html>

   <http://www.geocities.com/tsca.geo/slang.html>

  Per "estrarre" le macro dal presente HOWTO consiglio di partire dalla
  sua versione testo news2.2.txt e di utilizzare l' editor vim.  Potete
  ottenere la versione testo scaricandola direttamente da internet:

   <http://web.tiscalinet.it/airaghi/news2.2.txt>

  oppure elaborando il file sorgente news2.2.sgml:

  $ sgml2txt -f -l it -c latin news2.2.sgml

  Editate con vim il documento news2.2.txt:

  $ vim news2.2.txt

  Per cercare una parola utilizzate il tasto [/]
  Supponiamo ora che vogliate utilizzare la macro filter.sl.  Quest'
  ultima, all' interno del file news2.2.txt, inizia alla linea 2141 e
  termina alla linea 2163 (per la configurazione di vim si veda il
  paragrafo "Ancora FAQ").  Premete [Esc] [:] e scrivete:

  2141,2163w ~/filter.sl

  per ottenere il file ~/filter.sl con la macro richiesta.



    MACRO N.1 - Utilizzo del programma ispell per effettuare il
     controllo ortografico (in italiano oppure in inglese) sull'
     articolo che abbiamo appena terminato di scrivere. Prima di spedire
     l' articolo bisogna scegliere l' opzione "Filter".



       ______________________________________________________________________
       % File ~/filter.sl
       %
       % Autore della macro e
       % del programma newsbody: Byrial Jensen, byrial@image.dk

       define post_filter_hook (file)
       {
       variable rsp;
       variable cmd;

       rsp = get_response ("AaIiEe",
       "Use ispell? \001Abort, \001Italian, \001English");

       if ((rsp == 'i') or (rsp == 'I'))
        cmd = Sprintf ("newsbody -qs -n %s -p ispell -- -d italian -x %%f",
       file, 1);

       else if ((rsp == 'e') or (rsp == 'E'))
             cmd = Sprintf ("newsbody -qs -n %s -p ispell -- -x %%f", file, 1);
             else return;

       () = system (cmd);
       }
       ______________________________________________________________________





  E' necessario scaricare il dizionario italiano da:
   <http://members.xoom.com/endhome/download.html>

  e il programma newsbody da:
   <http://home.worldonline.dk/~byrial/spellutils/>




    MACRO N.2 - Questa macro serve per cercare una parola all' interno
     di tutti gli articoli presenti in un newsgroup.



       ______________________________________________________________________
       % File ~/cerca.sl
       %
       % Questa macro  presente nei sorgenti del programma SLRN
       %
       % This macro allows one to search throgh the bodies of the articles in
       % the current newsgroup.  It binds the function 'search_newsgroup' to
       % the '$' key in article mode.
       %
       % Traduzione: questa macro effettua una ricerca all' interno degli
       % articoli del newsgroup corrente. Associa (in modalit -elenco degli
       % articoli-) la funzione 'search_newsgroup' al tasto [$].
       %
       % Per effettuare una ricerca: premete il tasto [$] in modalit
       % -elenco degli articoli-

       variable Search_Last_Art_Search_Str = "";

       define search_newsgroup ()
       {
       variable str;
       variable flags;

       str = read_mini ("Search for regexp", Search_Last_Art_Search_Str,"");
       if (str == "")
         return;

       Search_Last_Art_Search_Str = str;

       uncollapse_threads ();

       do
         {
          flags = get_header_flags ();

          if (re_search_article (str))
            {
             pop ();
             return;
            }

          set_header_flags (flags);

          call ("hide_article");
         }
       while (header_down (1));

       error ("Not found.");
       }

       definekey ("search_newsgroup", "$", "article");
       ______________________________________________________________________







    MACRO N.3 - Questa macro consente di personalizzare i riferimenti
     dei vostri articoli a seconda del/dei newsgroup scelto/i.
     Dovete riempire i campi __________ e sostituire
     <ng1>,<ng2>,<ng3>,<ng4> con nomi di newsgroup che avete
     sottoscritto (devono apparire in modalit -elenco dei newsgroup-).
     Un articolo inviato al newsgroup <ng1> avr riferimenti e signature
     differenti da uno inviato ai newsgroup <ng2> o <ng3> o <ng4>.
     Questa macro vuol essere solo un esempio: ovviamente potete
     modificare riferimenti e signature per quanti newsgroup volete.



























































  ______________________________________________________________________
  % File ~/multi.sl
  %
  % Autore: Tomasz 'tsca' Sienicki, tsca@cryogen.com
  % http://www.geocities.com/tsca.geo/slang.html
  %
  % Modifiche: Alessandro Airaghi, a.airaghi@tiscalinet.it
  % http://web.tiscalinet.it/airaghi

  define common_hook ()
  {
  variable
           custom_headers = get_variable_value ("custom_headers"),
           editor_command = get_variable_value ("editor_command"),
  followup_custom_headers = get_variable_value (
                                               "followup_custom_headers"),
          followup_string = get_variable_value ("followup_string"),
                 hostname = get_variable_value ("hostname"),
             mime_charset = get_variable_value ("mime_charset"),
                 realname = get_variable_value ("realname"),
                  replyto = get_variable_value ("replyto"),
           signature_file = get_variable_value ("signature"),
                 username = get_variable_value ("username");

  if (is_substr (current_newsgroup (), "<ng1>"))

    {
              custom_headers = "X-____: ______";
              editor_command = "vim +9";
     followup_custom_headers = "X-____: ______";
             followup_string = "______________";
                    hostname = "______________";
                mime_charset = "______________";
                    realname = "______________";
                     replyto = "______________";
              signature_file = "______________";
                    username = "______________";
    }

  if (orelse {is_substr (current_newsgroup (), "<ng2>")}
             {is_substr (current_newsgroup (), "<ng3>")}
             {is_substr (current_newsgroup (), "<ng4>")} )

    {
              custom_headers = "X-____: ______";
              editor_command = "vim +9";
     followup_custom_headers = "X-____: ______";
             followup_string = "______________";
                    hostname = "______________";
                mime_charset = "______________";
                    realname = "______________";
                     replyto = "______________";
              signature_file = "______________";
                    username = "______________";
    }

  set_string_variable ("custom_headers", custom_headers);
  set_string_variable ("editor_command", editor_command);
  set_string_variable ("followup_custom_headers",followup_custom_headers);
  set_string_variable ("followup_string", followup_string);
  set_string_variable ("hostname", hostname);
  set_string_variable ("mime_charset", mime_charset);
  set_string_variable ("realname", realname);
  set_string_variable ("replyto", replyto);
  set_string_variable ("signature", signature_file);
  set_string_variable ("username", username);
  }

  define followup_hook () { common_hook; }
  define post_hook () { common_hook; }
  ______________________________________________________________________





  NOTA 1: la variabile signature_file non deve contenere il carattere ~
  in quanto non viene interpretato come directory HOME.  Ad esempio, se
  volete usare un' apposita signature per il newsgroup it.test, potete
  scrivere:

  signature_file = ".signature.it.test";


  e poi editare il file ~/.signature.it.test

  NOTA 2: la stringa "alt." al posto di <ng1>, per esempio, individua
  tutti i newsgroup che iniziano con i caratteri "alt."

  NOTA 3: se avete dei dubbi su come SLRN utilizzi le variabili presenti
  nella macro, osservate i due specchietti che seguono.  Le variabili
  compaiono all' interno delle parentesi graffe.

  Schema di un articolo (non di followup) inviato al newsgroup it.test :


       Path: ...!{username}
       From: {username}@{hostname} ({realname})
       Newsgroups: it.test
       Subject: ...
       Reply-To: {replyto}
       {custom_headers}
       Message-Id: <slrn8...{username}@localhost.localdomain>
       Mime-Version: 1.0
       Content-Type: text/plain; charset={mime_charset}
       Content-Transfer-Encoding: 7bit
       User-Agent: slrn/0.9.6.2 (Linux)

       ...corpo dell' articolo (non di followup)...

       --
       {signature_file}




  Schema di un articolo (di followup) inviato al newsgroup it.test :















  Path: ...!{username}
  From: {username}@{hostname} ({realname})
  Newsgroups: it.test
  Subject: Re: ...
  References: <...>
  Reply-To: {replyto}
  {followup_custom_headers}
  Message-Id: <slrn8...{username}@localhost.localdomain>
  Mime-Version: 1.0
  Content-Type: text/plain; charset={mime_charset}
  Content-Transfer-Encoding: 7bit
  User-Agent: slrn/0.9.6.2 (Linux)

  {followup_string}

  ...corpo dell' articolo (di followup)...

  --
  {signature_file}






    MACRO N.4 - Non viene suggerito il nome del newsgroup quando si
     salva un articolo premendo i tasti [Ctrl]+[o]
     Gli articoli verranno salvati nella directory ~/{save_directory}
     (si veda la voce "set save_directory" nel file ~/.slrnrc)



       ______________________________________________________________________
       % File ~/salva_no_nome.sl
       %
       % Autore: Alessandro Airaghi, a.airaghi@tiscalinet.it
       % http://web.tiscalinet.it/airaghi

       variable ultimo_file = "";

       define salva_no_nome ()
       {
       variable file, salva, home_dir;

       file = read_mini ("Save to file (^G aborts)", ultimo_file, "");
       if (file == "")
          return;
       ultimo_file = file;

       home_dir = make_home_filename ("");

       salva = Sprintf ("%s%s/%s", home_dir,
       get_variable_value("save_directory"), ultimo_file, 3);

       set_input_string (salva);
       call ("save");
       }

       definekey ("salva_no_nome", "^o", "article");
       ______________________________________________________________________






    MACRO N.5 - Evita di premere i tasti [Esc] [1] [Invio] per mostrare
     a video tutti gli articoli (letti e non) di un newsgroup.
     Posizionatevi sul nome di un newsgroup e premete [&]



       ______________________________________________________________________
       % File ~/seleziona_tutti.sl
       %
       % Autore: Paolo Piersanti, broonzy@mailandnews.com
       %
       % Modifiche: Alessandro Airaghi, a.airaghi@tiscalinet.it

       define seleziona_tutti ()
       {
       set_prefix_argument (1);
       ungetkey (13);
       call ("select_group");
       }

       definekey ("seleziona_tutti", "&", "group");
       ______________________________________________________________________





    MACRO N.6 - A volte capita di leggere, nei newsgroup, messaggi
     commerciali completamente fuori tema (spam). In questo caso 
     possibile inviare un' e-mail, a chi di dovere, per segnalare l'
     abuso (l' indirizzo al quale rivolgersi  contenuto nell' header X-
     Complaints-To).  Posizionatevi sull' articolo che contiene lo spam
     e premete [=]
     Verr automaticamente inviata un' e-mail, contenente l' articolo in
     questione, all' indirizzo presente nell' header X-Complaints-To































  ______________________________________________________________________
  % File ~/segnala_spam.sl
  %
  % Autore: Alessandro Airaghi, a.airaghi@tiscalinet.it
  % http://web.tiscalinet.it/airaghi

  define segnala_spam ()
  {
  variable indirizzo="";
  variable articolo=article_as_string ();
  variable newsgroup=extract_article_header("Newsgroups");
  variable cmd, fp;
  variable file="/tmp/spam.txt";

  % sostituisci il carattere "," con un ritorno a capo "\n"
  % per utilizzare la funzione 'strtrans' occorre S-Lang >= 1.3.8
  newsgroup = strtrans(newsgroup, ",", "\n");

  % assegna alla variabile {indirizzo} il valore dell' header
  % X-Complaints-To
  indirizzo=extract_article_header("X-Complaints-To");

  % esci se non esiste l' header X-Complaints-To
  if (indirizzo == "")
  {
   message (sprintf ("%s", "Non esiste l' header X-Complaints-To"));
   return;
  }

  % apri il file temporaneo per la scrittura
  fp = fopen (file, "w");

  % scrivi nel file
  fputs ("\nSPAM in newsgroup(s):\n\n", fp);
  fputs (newsgroup, fp);
  fputs ("\n---------------------------------------------------\n", fp);
  fputs (articolo, fp);

  % chiudi il file
  () = fclose (fp);

  % invia un' e-mail con titolo "SPAM" al destinatario indicato
  % in {indirizzo}
  cmd = sprintf ("%s%s", "cat /tmp/spam.txt | mutt -s SPAM ",
  indirizzo, 2);

  () = system (sprintf ("%s", cmd));

  % stampa in SLRN un messaggio dell' avvenuto invio della mail
  message (sprintf ("=SPAM= segnalato al seguente indirizzo: %s",
  indirizzo));

  % rimuovi il file temporaneo
  () = system (sprintf ("%s%s", "rm -f ", file, 2));
  }

  definekey ("segnala_spam", "=", "article");
  ______________________________________________________________________





    MACRO N.7 - Premendo [Ctrl]+[f] appare una finestra con un elenco
     di persone alle quali possiamo inviare una copia dell' articolo che
     abbiamo appena terminato di leggere.  L'elenco dei destinatari si
     trova all'interno della macro stessa.

































































  ______________________________________________________________________
  % File ~/invia_copia.sl
  %
  % Autore: Alessandro Airaghi, a.airaghi@tiscalinet.it
  % http://web.tiscalinet.it/airaghi

  define invia_copia ()
  {
   variable indirizzo="";
   variable newsgroup=extract_article_header("Newsgroups");
   variable titolo=extract_article_header("Subject");
   variable rsp, cmd, line, messaggio;
   variable article_file, body_file, forward_file;
   variable article_fp, body_fp, forward_fp;

  % esci se non  ancora stato letto nessun articolo
  if (_is_article_visible () == 0)
    {
    message (sprintf ("%s", "Devi prima leggere un articolo !"));
    return;
    }

  % sostituisci il carattere "," con un ritorno a capo "\n"
  % per utilizzare la funzione 'strtrans' occorre S-Lang >= 1.3.8
  newsgroup = strtrans(newsgroup, ",", "\n");

  % elenco dei nomi dei file temporanei utilizzati dalla macro
  % si trovano tutti in /tmp
  %
  % article         : articolo originale, completo di tutti gli header
  % article-body    : solo il corpo dell' articolo
  % article-forward : file da inviare in forward
  article_file="/tmp/article";
  body_file = article_file + "-body";
  forward_file = article_file + "-forward";

  % crea il file article
  save_current_article(article_file);

  % apri in lettura il file article
  article_fp = fopen (article_file, "r");

  % apri in scrittura il file article-body
  body_fp = fopen (body_file, "w");

  % salta gli header del file article
  while (-1 != fgets (&line, article_fp))
       if (line == "\n")
         break;

  % crea il file article-body
  while (-1 != fgets (&line, article_fp))
       () = fputs (line, body_fp);
  () = fclose (body_fp);

  () = fclose (article_fp);

  % crea il file article-forward
  body_fp = fopen (body_file, "r");
  forward_fp = fopen (forward_file, "w");

  fputs ("\nArticolo apparso in:\n", forward_fp);
  fputs (newsgroup, forward_fp);
  fputs ("\n\ndal titolo:\n", forward_fp);
  fputs (titolo, forward_fp);

  fputs ("\n\nCredo possa interessarti !\n", forward_fp);
  fputs ("-----------------------------------------------------\n\n",
  forward_fp);

  while (-1 != fgets (&line, body_fp))
       () = fputs (line, forward_fp);

  () = fclose (forward_fp);
  () = fclose (body_fp);

  % finestra per la selezione del destinatario
  rsp = get_select_box_response
        ("Invia una copia a:",    % titolo della finestra
         "Mario Rossi",           % destinatario numero 0
         "utente locale [alex]",  % destinatario numero 1
         2);                      % totale numero destinatari = 2

  switch (rsp)
   {case 0: indirizzo="mr@tiscalinet.it"; }
   {case 1: indirizzo="alex"; }

  % invio dell' e-mail
  messaggio = sprintf ("%s", forward_file);

  cmd = sprintf ("%s%s%s%s", "cat ", messaggio,
  " | mutt -s Leggi_questo ", indirizzo, 4);

  () = system (sprintf ("%s", cmd));

  message (sprintf ("Inviata una copia del messaggio a: %s",
  indirizzo));

  % cancella i file temporanei
  () = system (sprintf ("%s%s", "rm -f ", article_file, 2));
  () = system (sprintf ("%s%s", "rm -f ", body_file, 2));
  () = system (sprintf ("%s%s", "rm -f ", forward_file, 2));
  }

  definekey ("invia_copia", "^f", "article");
  ______________________________________________________________________





    MACRO N.8 - Come la macro precedente, con la differenza che l'
     elenco dei destinatari viene automaticamente prelevato dal file
     ~/.mutt_aliases
     Anche in questo caso dovete premere [Ctrl]+[f]

















  ______________________________________________________________________
  % File ~/invia_copia2.sl
  %
  % Autore: Alessandro Airaghi, a.airaghi@tiscalinet.it
  % http://web.tiscalinet.it/airaghi
  %
  % Autore: Vanni Brutto, zanac@linuxfan.com
  % http://www.zanac.net

  % affinch la macro funzioni correttamente, il file ~/.mutt_aliases
  % DEVE avere la seguente sintassi:
  %
  % alias <nick> <indirizzo e-mail> (Nome Cognome)
  %
  % esempi:
  %
  % alias io a.airaghi@tiscalinet.it (Alessandro Airaghi)
  % alias Zanac zanac@linuxfan.com (Vanni Brutto)

  variable indirizzo="";

  define invia_copia2 ()
  {
   variable articolo=article_as_string ();
   variable newsgroup=extract_article_header("Newsgroups");
   variable titolo=extract_article_header("Subject");
   variable cmd, line, messaggio;
   variable article_file, body_file, forward_file, rubrica_file,
            funzione_file;
   variable article_fp, body_fp, forward_fp, rubrica_fp,
            funzione_fp;

  % esci se non  ancora stato letto nessun articolo
  if (_is_article_visible () == 0)
    {
    message (sprintf ("%s", "Devi prima leggere un articolo !"));
    return;
    }

  % sostituisci il carattere "," con un ritorno a capo "\n"
  % per utilizzare la funzione 'strtrans' occorre slang >= 1.3.8
  newsgroup = strtrans(newsgroup, ",", "\n");

  % elenco dei file temporanei utilizzati dalla macro
  % si trovano tutti in /tmp
  %
  % article_file    : articolo originale, completo di tutti gli header
  % body_file       : solo il corpo dell'articolo
  % forward_file    : file da inviare in forward
  % rubrica_file    : contiene gli indirizzi e-mail ed i nomi dei
  %                   destinatari estratti dal file ~/.mutt_aliases
  %                   Il file contiene delle linee del tipo:
  %
  %                   "a.airaghi@tiscalinet.it (Alessandro Airaghi)",
  %                   "zanac@linuxfan.com (Vanni Brutto)",
  %
  % funzione_file   : contiene la funzione 'get_address_list'.
  %                   Questo file DEVE essere creato: quanti e quali alias
  %                   siano presenti nel file ~/.mutt_aliases non sono
  %                   noti a priori

  article_file = "/tmp/article";
  body_file = article_file + "-body";
  forward_file = article_file + "-forward";
  rubrica_file = "/tmp/rubrica.txt";
  funzione_file = "/tmp/get_address_list.sl";
  % crea il file rubrica_file
  %
  % si tenga presente che i alcuni caratteri vanno "protetti" da
  % un backslash (\):
  %   " diventa \"
  %   ' diventa \'
  %   \ diventa \\

  %% estrai dal file ~/.mutt_aliases i seguenti due campi:
  %% <indirizzo e-mail> (Nome Cognome)
  cmd = "cat ~/.mutt_aliases | cut -d \\  -f 3- > /tmp/rubrica1.txt";
  () = system (sprintf ("%s", cmd));

  %% aggiungi " ad inizio riga
  cmd = "sed \'s/^/\"/\' /tmp/rubrica1.txt > /tmp/rubrica2.txt";
  () = system (sprintf ("%s", cmd));

  %% aggiungi " a fine riga
  cmd = "sed \'s/$/\",/\' /tmp/rubrica2.txt > ";
  () = system (sprintf ("%s%s", cmd, rubrica_file));

  % crea il file funzione_file che conterr la funzione 'get_address_list'
  funzione_fp = fopen (funzione_file, "w");
  fputs ("define get_address_list ()\n",funzione_fp);
  fputs ("{\n", funzione_fp);
  fputs ("variable n;\n", funzione_fp);
  fputs ("n = _stkdepth ();\n", funzione_fp);
  fputs ("select_list_box (\"Invia una copia a: \",\n", funzione_fp);

  rubrica_fp = fopen (rubrica_file, "r");

  % inserisci gli alias di Mutt nel file funzione_file
  while (-1 != fgets (&line, rubrica_fp))
       () = fputs (line, funzione_fp);
  () = fclose (rubrica_fp);

  fputs ("_stkdepth () - n - 1,\n", funzione_fp);
  fputs ("0);\n", funzione_fp);
  fputs ("}\n", funzione_fp);
  %% la chiamata alla funzione 'get_address_list' deve avvenire all'interno
  %% del file funzione_file
  fputs ("indirizzo = get_address_list;", funzione_fp);
  () = fclose (funzione_fp);

  % crea il file article_file
  article_fp = fopen (article_file, "w");
  fputs (articolo, article_fp);
  () = fclose (article_fp);

  % apri in lettura il file article_file per estrarre il corpo del
  % messaggio
  article_fp = fopen (article_file, "r");

  % apri in scrittura il file article_body
  body_fp = fopen (body_file, "w");

  % salta gli header
  while (-1 != fgets (&line, article_fp))
       if (line == "\n")
         break;

  % crea il file article_body
  while (-1 != fgets (&line, article_fp))
       () = fputs (line, body_fp);
  () = fclose (body_fp);
  () = fclose (article_fp);
  % crea il file article_forward
  body_fp = fopen (body_file, "r");
  forward_fp = fopen (forward_file, "w");
  fputs ("\nArticolo apparso in:\n", forward_fp);
  fputs (newsgroup, forward_fp);
  fputs ("\n\ndal titolo:\n", forward_fp);
  fputs (titolo, forward_fp);
  fputs ("\n\nCredo possa interessarti !\n", forward_fp);
  fputs ("---------------------------------------------\n\n", forward_fp);

  while (-1 != fgets (&line, body_fp))
       () = fputs (line, forward_fp);

  () = fclose (forward_fp);
  () = fclose (body_fp);

  % esegui la funzione 'get_address_list' contenuta nel file funzione_file
  evalfile(funzione_file);

  % la funzione 'get_address_list' restituisce una stringa cos
  % fatta:
  %
  % <indirizzo e-mail> <nome e cognome tra parentesi tonde>
  %
  % sostituisci allora il carattere " " con un ritorno a capo "\n"
  % affinch Mutt venga chiamato in maniera corretta
  %
  % per utilizzare la funzione 'strtrans' occorre slang >= 1.3.8
  indirizzo = strtrans(indirizzo, " ", "\n");

  % invia l' e-mail
  messaggio = sprintf ("%s", forward_file);

  cmd = sprintf ("%s%s%s%s", "cat ", messaggio,
  " | mutt -s Leggi_questo ", indirizzo, 4);
  () = system (sprintf ("%s", cmd));

  message (sprintf ("Inviata una copia del messaggio a: %s",
  indirizzo));

  % cancella i file temporanei
  () = system (sprintf ("%s%s", "rm -f ", article_file, 2));
  () = system (sprintf ("%s%s", "rm -f ", body_file, 2));
  () = system (sprintf ("%s%s", "rm -f ", forward_file, 2));
  () = system (sprintf ("%s%s", "rm -f ", rubrica_file, 2));
  () = system (sprintf ("%s%s", "rm -f ", funzione_file, 2));
  () = system (sprintf ("%s", "rm -f /tmp/rubrica1.txt"));
  () = system (sprintf ("%s", "rm -f /tmp/rubrica2.txt"));
  }

  definekey ("invia_copia2", "^f", "article");
  ______________________________________________________________________





  NOTA: affinch la macro funzioni correttamente, il file
  ~/.mutt_aliases DEVE avere la seguente sintassi:



       alias <nick> <indirizzo e-mail> (Nome Cognome)



  esempi:



       alias io a.airaghi@tiscalinet.it (Alessandro Airaghi)
       alias Zanac zanac@linuxfan.com (Vanni Brutto)







  6.  Glossario


  L' informatica possiede un gergo ricchissimo di vocaboli, la maggior
  parte dei quali sono in lingua inglese. Per la stesura di questo
  documento ho preferito tradurre tali termini il meno possibile. Questo
   un elenco in ordine alfabetico di tutti i termini in lingua inglese,
  e non, che sono propri del mondo dei newsgroup.

  ARTICOLO PADRE e FIGLIO. Supponiamo che venga inviato al newsgroup un
  primo articolo, che chiameremo A. Successivamente, ad A verr data
  risposta tramite l' articolo B. A prende il nome di articolo padre (di
  B) e B quello di articolo figlio (di A). Se anche a B verr data
  risposta tramite l' articolo C, B costituir l' articolo padre (di C)
  e C sar l' articolo figlio (di B). E cos via...  Utilizzando lo
  stesso schema adoperato da SLRN per visualizzare i thread:


       A
       `-->B
           `-->C




  CROSS POSTING. Invio contemporaneo di un articolo a pi newsgroup.

  FAQ. Frequently Asked Question, in italiano: domande poste di
  frequente.

  FOLLOWUP MESSAGE. Messaggio di risposta pubblico. Viene inviato al
  newsgroup. Dal verbo inglese "to follow up" (seguire, far seguito a).
  Si veda anche: REPLY MESSAGE.

  HEADER. Intestazioni. Sono le linee che appaiono in cima a tutti gli
  articoli e che riportano informazioni riguardanti il nome del
  newsgroup a cui l' articolo  stato inviato, la data di invio, ecc...

  LURKER. Si indica con tale termine chi, pur leggendo quotidianamente
  tutti gli articoli di uno o pi newsgroup, non vi prende attivamente
  parte inviando contributi personali. Deriva dal verbo inglese "to
  lurk" (restare nascosti). In italiano tale verbo  diventato "lurkare"
  (sic).

  NEWS. Articolo, messaggio.

  NEWSGROUP. Gruppo di articoli. Si indica con tale termine l' insieme
  di tutti gli articoli che vertono su un determinato tema.  Esempio: in
  it.comp.os.linux.sys partecipano tutti coloro che sono interessati a
  discussioni in lingua italiana riguardanti il sistema operativo Linux.

  NEWS SERVER. E' costituito dal computer e dal software necessario per
  la gestione di tutti i newsgroup. Un news server (per esempio:
  news.tiscalinet.it) normalmente ospita migliaia di newsgroup, in varie
  lingue e dai pi disparati temi (cucina, informatica, astronomia,
  matematica, politica, viaggi, ecc...).

  OFF TOPIC. Fuori tema. Lo sono tutti gli articoli che trattano
  argomenti non propri del newsgroup al quale sono stati inviati.

  POSTARE. Orrendo termine, a mio avviso. E' la maldestra
  italianizzazione del verbo inglese "to post" (impostare, inviare per
  posta). Personalmente, preferisco utilizzare l' italianissimo verbo
  "inviare".

  REPLY MESSAGE. Messaggio di risposta privato. Viene inviato, tramite
  posta elettronica, direttamente all' autore dell' articolo al quale si
  vuole rispondere. Dal verbo inglese "to reply" (rispondere,
  replicare).

  SIGNATURE. Firma. Sono linee (personalizzabili) aggiunte in automatico
  da SLRN alla fine di un articolo. Possono contenere frasi spiritose,
  saluti o tutto ci che la vostra fantasia vi suggerisce. E' buona
  norma non superare le quattro linee.

  THREAD. Letteralmente, filo. Quando inviate un articolo ad un
  newsgroup pu capitare che una o pi persone vi rispondano nel
  newsgroup stesso. Il vostro articolo iniziale, pi tutti gli altri che
  si sono ad esso aggiunti, costituiscono quello che si chiama thread.

  Vi capiter , nella lettura degli articoli presenti in un newsgroup,
  di imbattervi in misteriose "sigle". Ecco un elenco dei principali
  acronimi utilizzati da molti frequentatori dei newsgroup:

  AFAIK: As Far As I Know = per quanto io sappia
  BTW: By The Way = incidentalmente, tra parentesi
  FUD: Fear, Uncertainty, and Disinformation = timore, incertezza e
  disinformazione
  IMNSHO: In My Not So Humble Opinion = a mio non cos modesto avviso
  IMHO: In My Humble Opinion = a mio modesto avviso
  IMVHO: In My Very Humble Opinion = a mio modestissimo avviso
  ROTFL: Rolling On The Floor Laughing = rotolando sul pavimento dal
  ridere
  RTFM: Read The Fucked Manual = leggiti il fottuto manuale

  Per una lista pi dettagliata (in inglese):
   <http://homepages.ihug.co.nz/~tajwileb/dictionary.html>



  7.  Autore dei programmi


  L' autore dei programmi SLRN e SLRNPULL :
  John E. Davis, davis@space.mit.edu
  URL:  <http://space.mit.edu/~davis>

  L' ultima versione del programma SLRN  disponibile, tramite anonymous
  ftp, presso:

   <ftp://space.mit.edu/pub/davis/slrn/>

  oppure, presso i seguenti mirror:

   <ftp://ftp.uni-stuttgart.de:/pub/unix/misc/slang/>
   <ftp://ftp.fu-berlin.de/pub/unix/news/slrn/>
   <ftp://ftp.ntua.gr/pub/lang/slang/>


  8.  Come stampare il presente documento


  I migliori risultati si ottengono stampando la versione PostScript.
  Scaricate da internet la versione SGML dell' HOWTO:

   <http://web.tiscalinet.it/airaghi/news2.2.sgml.gz>

  Assicuratevi che sul vostro sistema Linux sia installato il pacchetto
  sgml-tools:

  $ rpm -q sgml-tools

  Se l' output di questo comando  "package sgml-tools is not installed"
  allora inserite il CD della distribuzione RedHat 6.2 e date i seguenti
  comandi:

  # mount /mnt/cdrom
  # cd /mnt/cdrom/RedHat/RPMS
  # rpm -ivh sgml-tools-1.0.9-2.i386.rpm

  Per ottenere la versione PostScript date i seguenti comandi:

  $ gunzip news2.2.sgml.gz
  $ sgml2latex -l it -c latin -o ps news2.2.sgml

  otterrete cos il file news2.2.ps







































