Newsgroup: it.comp.os.linux.software
Titolo: Signature casuale

Salve a tutti,
ho trovato  un programmino che  permette di generare  signature casuali:
era proprio quello che cercavo da tempo :)
Però  dato  che  sono  un  maniaco  perfezionista  vorrei  risolvere  un
problemino: se ci  fate caso in fondo al mio  messaggio sono rimaste 5/6
righe vuote  (il numero non  è costante)  che contengono solo  spazi: la
cosa mi da  abbastanza fastidio: avevo pensato di  usare la sostituzione
di stringhe di vim con qualcosa del tipo:
:%s/^\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ //g
però in questo modo le stringhe vengono sostituite da un ritorno a capo.
Voi come risolvereste  questo piccolo inconveniente? Mal  che vada vedrò
di farmi un  programmino idiota che elimina le ultime  righe vuote di un
file... ma  data la potenza  di Unix sono sicuro  che si può  fare anche
mettendo in pipe qualche comando di cui ignoro l'esistenza! ;)))
-- 
Vanni Brutto                                      .--.
| email 
asy...@nofesso.tiscalinet.it
 |           |o_o |
| irc nick VanniB   |   ICQ 18526701 |           |:_/ |
--- rimuovi nofesso per rispondere ---          //   \ \
--------------------------------------         (|     | )
Sono sicuro che quei 50.000 lire della        /'\_   _/`\
mia  prima  multa avranno  contribuito        \___)=(___/
alla  felicità  dei  deputati  che  li   
avranno sperperati in donne e godurie.   
 
 
 
 
 

 mettendo in pipe qualche comando di cui ignoro l'esistenza! ;)))
Brao' ;-) E' esattamente cio' che faccio io. Data una lista di files con
le varie firme (Sign, FIRMA, Firma1 e altre piu' .signature, ovviamente)
ho una named pipe nella home 
prw-r-----   1 thorin   users           0 Mar  1 19:04 randsign
ed un banale script chiamato RAND (con molta fantasia) che va cosi':
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=> CLIP HERE < =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
while [ ! ] ; do 
	cat `cat ~/SIGNLIST | randline` >~/randsign
	sleep 1
done
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=> CLIP HERE < =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
ove ovviamente SIGNLIST e' un file che contiene uno per riga i nomi dei
files delle firme. Basta fare 'cat randsign' e magicamente ;-) ho una
firma random.. potenza di UNIX, appunto. Che ci provino a farlo con
WinBug !
-- 
Pierluigi De Rosa (
tho...@durin.khazad-dum.net
).
<<      LINUX: the choice of a GNU generation     >>
<<   For my real address... ask the Balrog.       >>
* Sostenete la Lega per la Soppressione dei Troll *

 [snip su firma random]
tin prevede gia' la possibilita' di scegliere firme random.
Per es. io dico al mio tin di pescare la parte fissa della mia sign da
un file e la parte random da una directory.
ciao
Buttha
-- 
* Per rispondere in email rimuovere una i dall'indirizzo
* 
http://members.xoom.it/buttha/
* Perche' non provvedono?

 un file e la parte random da una directory.
Forse intendi questo:
# Signature path (random sigs)/file to be used when posting/replying
# default_sigfile=file       appends file as signature
# default_sigfile=!command   executes external command to generate a signature
# default_sigfile=--none     don't append a signature
default_sigfile=~/firma.txt
ma comunque io faccio cio' per le mail.. non mi sogno su Usenet di
usare una firma che sia piu' lunga di 4 righe come quelle che ho.


 usare una firma che sia piu' lunga di 4 righe come quelle che ho.
questo cerco di farlo anch'io, ma sforo spesso.
ciao
Buttha
-- 
* Per rispondere in email rimuovere una i dall'indirizzo
* 
http://members.xoom.it/buttha/
* Premete qui con forza ----> X

 questo cerco di farlo anch'io, ma sforo spesso.
Male :)


ho una named pipe nella home 
[CUT]
buon'idea pure questa! :))) Grazie per  le dritte!
p.s. ora  devo solo  decidermi quali signature  usare: queste  che avevo
     scritto tempo fa mi sembrano poche adatte al ng ;))
-- 
Vanni Brutto                                      .--.
| email 
asy...@nofesso.tiscalinet.it
 |           |o_o |
| irc nick VanniB   |   ICQ 18526701 |           |:_/ |
--- rimuovi nofesso per rispondere ---          //   \ \
--------------------------------------         (|     | )
...che  l'acqua  sia  la  bevanda dei        /'\_   _/`\
peccatori  lo  dimostra ampiamente  il        \___)=(___/
diluvio universale.

 righe vuote  (il numero non  è costante)  che contengono solo  spazi: la
Se il programma in questione è signify (ovvero lo stesso che uso io con
soddisfazione) e mi mandi il tuo .signify posso vedere di aiutarti.
--
Mauro Mazzieri
First they ignore you. Then they laugh at you. Than they fight you.
Than you win.
		-- Gandhi

Senno`
	cat ${HOME}/.SigFix; /usr/bin/fortune -s it;
Purtroppo la SuSE c'ha un fortune che non supporta il -s :-(
bye!
-- 
Emanuele Cesena                  
http://www.penguinpowered.com/~ecesena
ece...@penguinpowered.com
 - Attenzione antispam: ROT13 per rispondermi 
Se ti siedi ad un tavolo da poker e non vedi un pollo da spennare, alzati.
Sei tu il pollo.

 mettendo in pipe qualche comando di cui ignoro l'esistenza! ;)))
forse ti basta : grep -v ^[\ ]*$
PS Molto comodo il tuo vim-ispell...io aspetto gli altri script.. :-)
-- 
To write me type : mail `echo ga...@hejqtbwj.yki | caesar 4`

PS Molto comodo il tuo vim-ispell...io aspetto gli altri script.. :-)
Wow! Siete riusciti a farlo funzionare?  Era meglio se non me lo dicevi,
altrimenti mi fai venire voglia di postare anche gli altri script che ho
fatto per usare ispell con vim ;))
-- 
Vanni Brutto                                      .--.
| email 
za...@nofesso.linuxfan.com
   |           |o_o |
| irc nick VanniB   |   ICQ 18526701 |           |:_/ |
--- rimuovi nofesso per rispondere ---          //   \ \
--------------------------------------         (|     | )
Windows-howto:  try   to  resolve  the        /'\_   _/`\
problem  by  restarting your  computer        \___)=(___/
several time.                         

fatto per usare ispell con vim ;))
E che aspetti?
--
 (o-  | c:\> win2000patch001.exe
 //\  | This Microsoft(c) patch fix all bugs present. All rigth reserved.
 V_/_ | Insert Linux boot disk to continue ... loading kernel ...
http://pinguin.linuxbox.com
 r.salmaso(at)
flashnet.it

ed un banale script chiamato RAND (con molta fantasia) che va cosi':
Inalternativa al prog di thorin, che usa un eseguibile (che a me da un
seg. fault) si puo' risolvere il tutto con queste poche righe di perl:
----------------------------------------------------------------------
#!/usr/bin/perl -w
srand;
## SOURCE THE SIGLIST #####################################
open (SIG,"SIGNLIST") or die "Can't open SIGNLIST: $!\n";
$i=0;
while (defined($line = <SIG>)) {
	chomp($line);
	$signs[$i]=$line;
	$i++;
}
close (SIG);
## RANDOMIZE NAMED PIPE ###################################
while ($i) {
	$l=$signs[rand(@signs)];
	system "cat $l>randsign";
	sleep 1;
}
----------------------------------------------------------------------
:-)
--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
   .~.                                   netadmin@.
No.SpAm.sedes.net
   /V\    General Failure error:
  // \\   M$ Windows Found on this system!
 /(   )\  Remove it? (Y/y) 
  ^`~'^
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Linux the GNU generation -=-=-=-=-

 seg. fault) si puo' risolvere il tutto con queste poche righe di perl:
O senno' questo e' il sorgente di randline.c (che fa parte del
pacchetto iplogd di Leo)
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=> CLIP HERE < =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
#include <time.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#define LINESIZE 	0x200
#define	NUMBUFFERS	2
int main()
{
	char	*bufptr,**buffer;
	long 	lines=0;
	int	i;
	srandom((int)time(NULL)+(int)getpid());
	if ((buffer = calloc(NUMBUFFERS, sizeof(char *))) == NULL)
	{
		fprintf(stderr,"randline: out of memory\n");
		return -1;
	}
	for (i=0; i<NUMBUFFERS; i++)
		if ((buffer[i] = malloc(LINESIZE)) == NULL)
		{
			fprintf(stderr,"randline: out of memory\n");
			return -1;
		} else	*buffer[i]='\x00';
	for (bufptr = buffer[i=0]; !feof(stdin); lines++)
	{
		*bufptr='#';
		fgets(bufptr, LINESIZE, stdin);
		if (*bufptr == '#') continue;
		if (random()%(lines+1)==0)
			bufptr = buffer[++i % NUMBUFFERS];
	}
	fputs(buffer[(i+NUMBUFFERS-1)%NUMBUFFERS],stdout);
	for (i=0; i<NUMBUFFERS; i++)
		if ((buffer[i])!=NULL)
			free(buffer[i]);
	free(buffer);
	return 0;
}
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=> CLIP HERE < =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
cosi' potete compilarlo


E che aspetti?
Ok, lo  spedisco ma solo perché  me l'avete chiesto (leggasi:  è uno
script che fa quasi pena!).
lo script vero è proprio è il seguente:
#vimspell2.sh
#!/bin/sh
ispell -d italian -x $1
per richiarmarlo aggiungete nel file .vimrc la seguente riga:
noremap <F9> :w<CR>:! ~/.resources/vimspell2.sh %<CR>:e! %<CR>
Fatto questo  premendo F9  in modalità  comando ispell  vi suggerirà
come  sostituire  le parole  errate.  Nota:  si potrebbe  sostituire
le   chiamata  allo   script  vimspell2.sh   inserendo  direttamente
l'esecuzione del comando ispell, però  imho è più carino separare la
cosa.
Ora resterebbe  da fare uno script  con il quale si  richiama ispell
passandogli la parola  dove è posizionato il cursore...  per ora non
saprei come farlo, se qualcuno ha qualche idea lo invito a postarla:
pensavo di usare qualcosa del tipo:
map <F10> :! 'echo' "<cword>" | ispell -d italian -x /dev/stdin'<cr>
ma ovviamente non funziona... :-(
-- 
Vanni Brutto                                      .--.
| email 
za...@nofesso.linuxfan.com
   |           |o_o |
| irc nick VanniB   |   ICQ 18526701 |           |:_/ |
--- rimuovi nofesso per rispondere ---          //   \ \
--------------------------------------         (|     | )
Penso   che  Salomone   dovesse  avere        /'\_   _/`\
l'uccello  rapace,   come  direbbe  un        \___)=(___/
naturalista,    infatti   sposò    700
principesse straniere e 300 concubine.
(I° Re Cap XXI)                       

 ma ovviamente non funziona... :-(
Mi sa che devi usare un file temporaneo.
Per  il problema  del file  modificato o  meno puoi  usare la  variabile
"modified" che ti dice lo stato del buffer.
Buon lavoro :-)
-- 
To write me type : mail `echo hb...@ifkrucxk.zlj | caesar 3`