;; -*-Emacs-Lisp-*- ;; gnus.el - NBC - chuche@soda.teaser.fr ;; http://www.teaser.fr/~nchuche/gnus/ ;; ;; insertion d'une signature aléatoire. ;; ;; fortement inspiré du code de Jack Vinson ;; trouvé dans la FAQ gnus. ;; ;; mode d'emploi : ;; ;; 1 - Soit vous l'ajoutez directement à la fin de votre .gnus ;; soit vous le chargez depuis votre .gnus grace à une instruction du type : ;; (load "~/.elisp/gnus/sig.oldemacs.el") ;; 2 - Vous créez un répertoire .sig directement dans votre homedir ;; 3 - Vous créez les répertoires pour les différents groupes avec les ;; signatures que vous voulez et ajoutez ces paramêtres à la fonction nbc-sig-dir ;; 4 - et enfin, vous mettez les signatures que vous voulez dans les répertoires ;; adéquats dans des fichiers commençant comme la variable nbc-signature-base. ;; exemple, chez moi, mon répertoire .sig contient : ;; [nc@soda nc]$ cd ; tree .sig ;; .sig ;; |-- fmbd ;; | |-- sig1 ;; | `-- sig2 ;; |-- mail ;; | |-- sig1 ;; | `-- sig2 ;; |-- sig1 ;; |-- sig2 ;; `-- sig3 ;; ********************* ;; les paramêtres à modifier ;; ********************* ;; le répertoire ou sont placés vos signatures (defvar nbc-signature-dir "~/.sig/") ;; le début du nom des fichiers de signatures (defvar nbc-signature-base "sig") ;; la fonction mettant en correspondance une regexp et le répertoire ;; ou sont stockés les signatures des groupes vérifiant la regexp (defun nbc-sig-dir () (concat nbc-signature-dir (cond ;; les groupes vérifiant la regexp dino auront ;; une signature dans .sig/fmbd/ ((string-match "dinosaure" gnus-newsgroup-name) "fmbd") ;; les groupes vérifiant la regexp nnml auront ;; une signature dans .sig/mail ((string-match "^nnml:" gnus-newsgroup-name) "mail") ;; ne pas enlever, répertoire par défaut des signatures ;; les autres auront une signature dans .sig (t "")) "/")) ;; ********************* ;; le corps de sig.el que vous n'avez, normalement, pas à modifier ;; ********************* ;; la fonction qui est ajoutée a la fonction message-insert-signature (defadvice message-insert-signature (before random-mail-sig-ag act comp) "Change the value of message-signature-file each time `message-insert-signature' is called." (let ((files (file-name-all-completions nbc-signature-base (expand-file-name (nbc-sig-dir))))) (if files (let ((file (nth (random (length files)) files))) (setq message-signature-file (concat (nbc-sig-dir) file)) ))))