Newsgroup: it.comp.software.newsreader
Titolo: [SLRN] Filtro i messaggi

 terminale, per questi tasti speciali.
  Beh: e quali sarebbero, questi mal^H^H^Hbenedetti codici?
  Terminale: SO Debian, Monitor Standard, Tastiera Amerikana Standard.
  Ringraziamenti anticipati.
-- 
Cio` che ho scritto, ho scritto.

   Beh: e quali sarebbero, questi mal^H^H^Hbenedetti codici?
Alan?
-- 
.signature: not found

 Alan?
:D
...veramente aspetterei *Zefram*
Io trovai in ritardo quelli per Windows (che poi ho scoperto 
funzionanti), sono nel file *pc-keys.txt* in ../D:\slrn\doc
%  Home           ^@G
%  PgUp           ^@I
%  End            ^@O
%  PgDn           ^@Q
Dal manuale dice che si puň fare con qualunque tasto sapendo il codice 
ottale:
,----- [ *setkey* ]
| Alternatively, you can specify special keys by entering the key 
| sequence they generate directly. To do this, the following shortcuts 
| may be useful:
| 
| \e    escape
| \r    return
| \\    backslash
| \NNN  the key sending keycode (octal) NNN
|
`-----
Con Google trovai vari esempi su diversi OS (cercavo F5 e F8); per i 
tuoi protresti tentare con questi:
Home  "\033[7~"
End   "\033[8~"
ma sto sparando alle nuvole...
Ciao.
-- 
 /   _ _ | Xnews e la documentazione in italiano
( (/( (/ | 
http://web.lacasadialice.it/alanford/

 Dov'e che sbaglio? Uffa... :~(((
il secondo e il terzo funzionano. gli altri no, il problema č il crtl; io
ho provato "<Esc><Home>" e va.
mettili in fondo al file e verifica di avere terminfo in regola.
-- 
.signature: not found

ho provato "<Esc><Home>" e va.
  Ci sono un pajo di problemi:
1) Ho provato a utilizzare i codici per PgUp e PgDn: il fatto e` che 
setkey article  article_page_up         "\e[5~"
setkey article  article_page_up         "^U"
setkey article  article_page_up         "\eV"
setkey article  header_page_up          "\e[5~"
setkey article  header_page_up          "^U"
setkey article  header_page_up          "\eV"
  sono  mutualmente esclusivi,  nel  senso  che "o"  li  setti per  la
visualizzazione articolo "o" li setti per la visualizzazione header. E
l'ultimo settaggio e` quello che vale... :(((
2) Pigiare il tasto <Esc> e poi  <Home> non ha molto senso... a questo
   punto tanto vale utilizzare il default: Shift+< e Shift+>


 (art_filt, ) = strreplace(art_filt, "\x92", "'", strlen(art_filt));
                                              ^^^
  (ho solo abbreviato il nome  della variabile per farcelo stare tutto
su di una riga)
  Ecco:  mi  dava  un   errore  di  "Type-Casting"...  sono  diventato
letteralmente "pazzo",  fino a  quando non  ho scoperto  che bisognava
metterci "\'" e *NON*!!! "'"...
  Evabbe`... nulla di  male. Cosi` ho anche scoperto  che S-Lang *NON*
significa - come invece credevo  prima - "S(lrn)-Lang(uage)", ma tutta
un'altra cosa... Nella  documentazione di slrn non  riuscivo a trovare
nulla, e credevo fosse un linguaggio "proprietario" di slrn...
  Alla fine ho fatto tutto l'ambaradan, e poi ho pensato che - forse -
era meglio  lasciare invariato il  testo all'apertura, ma  definire un
tasto per "filtrarlo  alla bisogna"... in questo modo  almeno ti rendi
conto di chi posta cosa e - soprattutto - "come"...
  Questo e` lo script.
  Diciamo  che sono  molto,  ma proprio  "molto"  soddisfatto del  suo
funzionamento? E diciamolo... Ovviamente grazie a te... ;;;)
  E  man  mano che  trovero`  nuovi  caratteri,  ci vuole  niente  per
aggiungerli (anzi: se qualcuno ha gia` qualche idea... eh?)
______________________________________________________________________
=== Inizio Script ====================================================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
% FilterChars.sl
%
% Filtra un messaggio uniformando i caratteri non riconosciuti da slrn
%
%   La funzione e` assegnata al tasto <Ctrl+f>
%
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
define FiltraArticolo ()
{
  variable art1;
 
%_____________________________________________________________________
% Lettura articolo 'grezzo"
%   E`  necessario utilizzare  il "raw"  perche' altrimenti  slrn puo`
%   "filtrare" l'articolo a modo suo.
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  art1 = raw_article_as_string();
%_____________________________________________________________________
% Primo passaggio:
%   Sostituisce i  caratteri inviati dalle "specifiche"  (???) Windows
%   utilizzate dal controllo automatico di Word e di OutLook
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ( art1, ) = strreplace( art1, "\x85", "...", strlen( art1 ) );
% N.B.: Che razza di carattere e` lo \x86? L'ho trovato in un post, ma
% non riesco a capire a cosa possa corrispondere...
  ( art1, ) = strreplace( art1, "\x91", "`"  , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\x92", "\'" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\x93", "\"" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\x94", "\"" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\x96", "-"  , strlen( art1 ) );
%_____________________________________________________________________
% Secondo passaggio:
%   Sostituisce i caratteri inviati dalle "specifiche" (???) MIME
%   (praticamente: quando un post ha un header del tipo:
%     Content-Type: multipart/alternative;
%   )
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ( art1, ) = strreplace( art1, "=\x0A", "\n", strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=20"  , " " , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=C8"  , "È" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=E0"  , "à" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=E8"  , "è" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=E9"  , "é" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=EC"  , "ì" , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=F2"  , "ò" , strlen( art1 ) );
% La "ó" mi sa che non la usa nessuno... cmq, che codice ha?
  ( art1, ) = strreplace( art1, "=F9"  , "ù" , strlen( art1 ) );
%_____________________________________________________________________
% Terzo passaggio:
%   Sostituisce i caratteri inviati con lo "standard" (???) UTF-8
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  ( art1, ) = strreplace( art1, "\xE2\x80\x99", "\'",  strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xE2\x80\x9C", "\"",  strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xE2\x80\x9D", "\"",  strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xE2\x80\xA6", "...", strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xC3\xA8",     "è",   strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xC3\xA9",     "é",   strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xC3\xAC",     "ì",   strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xC3\xB2",     "ò",   strlen( art1 ) );
% sempre la "ó"... uffa... che codice ha?
  ( art1, ) = strreplace( art1, "\xC3\xB9",     "ù",   strlen( art1 ) );
  ( art1, ) = strreplace( art1, "\xC3",         "à",   strlen( art1 ) );
%_____________________________________________________________________
% Notare che  la "à" ho dovuto  metterla per ultima perche'  non ha un
% codice a due byte... ma chi cazzo ha fatto questa codifica?
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%_____________________________________________________________________
% Quarto passaggio:
%   Sostituzione di  assurdita` varie  che ho trovato  scandagliando i
%   varï post...
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
%Forte Agent 1.9/32.560 (??? ma che razza di codifica e` ???)
  ( art1, ) = strreplace( art1, "=C3=B2", "ché", strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=C3=A0", "à"  , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=C3=A8", "è"  , strlen( art1 ) );
  ( art1, ) = strreplace( art1, "=C3=B9", "ù"  , strlen( art1 ) );
%_____________________________________________________________________
% Rimpiazza l'articolo filtrato
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  replace_article( art1 );
}
%_____________________________________________________________________
% Definisce il tasto per filtrare l'articolo.
%   Ctrl+f non  mi risulta essere un  tasto gia` assegnato, e  mi pare
%   decisamente il piu` logico...
%~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
definekey ( "FiltraArticolo", "^f", "article" );
______________________________________________________________________
=== Fine Script ======================================================
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  Bene. Rinnovo i ringraziamenti.
