From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/86346 Path: news.gmane.org!not-for-mail From: =?utf-8?Q?Peter_M=C3=BCnster?= Newsgroups: gmane.emacs.gnus.general Subject: Re: Maybe encrypt message ? Date: Thu, 26 Nov 2015 11:11:01 +0100 Message-ID: <874mg96pfu.fsf@roche-blanche.net> References: <87h9kb9jx4.fsf@roche-blanche.net> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Trace: ger.gmane.org 1448532778 9061 80.91.229.3 (26 Nov 2015 10:12:58 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 26 Nov 2015 10:12:58 +0000 (UTC) To: ding@gnus.org Original-X-From: ding-owner+M34578@lists.math.uh.edu Thu Nov 26 11:12:44 2015 Return-path: Envelope-to: ding-account@gmane.org Original-Received: from lists1.math.uh.edu ([129.7.128.208]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1a1tXd-0007Gl-Ng for ding-account@gmane.org; Thu, 26 Nov 2015 11:12:41 +0100 Original-Received: from localhost ([127.0.0.1] helo=lists.math.uh.edu) by lists1.math.uh.edu with smtp (Exim 4.85) (envelope-from ) id 1a1tWh-0003VU-Uk; Thu, 26 Nov 2015 04:11:44 -0600 Original-Received: from mx2.math.uh.edu ([129.7.128.33]) by lists1.math.uh.edu with esmtps (TLSv1.2:AES128-GCM-SHA256:128) (Exim 4.85) (envelope-from ) id 1a1tWd-0003V5-QM for ding@lists.math.uh.edu; Thu, 26 Nov 2015 04:11:40 -0600 Original-Received: from quimby.gnus.org ([80.91.231.51]) by mx2.math.uh.edu with esmtps (TLSv1.2:DHE-RSA-AES128-SHA:128) (Exim 4.85) (envelope-from ) id 1a1tWb-0008TN-OI for ding@lists.math.uh.edu; Thu, 26 Nov 2015 04:11:39 -0600 Original-Received: from plane.gmane.org ([80.91.229.3]) by quimby.gnus.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1a1tWZ-0004TI-Pc for ding@gnus.org; Thu, 26 Nov 2015 11:11:35 +0100 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1a1tWR-0005QM-ML for ding@gnus.org; Thu, 26 Nov 2015 11:11:27 +0100 Original-Received: from arennes-651-1-314-51.w2-12.abo.wanadoo.fr ([2.12.73.51]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 26 Nov 2015 11:11:27 +0100 Original-Received: from pmlists by arennes-651-1-314-51.w2-12.abo.wanadoo.fr with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Thu, 26 Nov 2015 11:11:27 +0100 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 169 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: arennes-651-1-314-51.w2-12.abo.wanadoo.fr User-Agent: Gnus/5.130014 (Ma Gnus v0.14) Emacs/25.1.50 (gnu/linux) Cancel-Lock: sha1:L7zKjsekjWab/DcKCDjUKkU6Vbs= X-Spam-Score: -3.7 (---) List-ID: Precedence: bulk Xref: news.gmane.org gmane.emacs.gnus.general:86346 Archived-At: On Thu, Nov 26 2015, Xavier Maillard wrote: > Thank you. Would you please share the logic of your "pm/role" ? Here is the relevant code of my gnus.el: --8<---------------cut here---------------start------------->8--- ;;;;;;;;;;;;;;;;;; Variables ;;;;;;;;;;;;;;;;;; (defvar pm/language "fr" "Language of current buffer.") (make-variable-buffer-local 'pm/language) (defvar pm/role-history nil "History list for roles.") (defvar pm/role "private") (make-variable-buffer-local 'pm/role) (defvar pm/sig-level 0) (make-variable-buffer-local 'pm/sig-level) ;;;;;;;;;;;;;;;;;; Functions ;;;;;;;;;;;;;;;;;; (defun pm/alter-message-map () (local-set-key [f6] 'pm/cycle-sigs)) (defun pm/addr->role (address) (cl-loop for item in pm/roles when (string-equal (plist-get item :address) address) return (plist-get item :id))) (defun pm/role->addr (role) (cl-loop for item in pm/roles when (string-equal (plist-get item :id) role) return (plist-get item :address))) (defun pm/update-role () "Check current buffer and update pm/role accordingly." (let* ((address (mail-strip-quoted-names (message-fetch-field "From"))) (role (pm/addr->role address))) (when role (setq pm/role role)))) (defun pm/phone () (cl-case (intern pm/language) ('fr "Tél.: 02 ...") (t "Tel.: +33/0 2..."))) (defun pm/address (prefix) (let ((address (cl-case (intern pm/role) ('private '("street" "town")) ('a '("a" "street" "town")) ('b '("b" "street" "town")) ('c '("c" "street" "town"))))) (setq address (append address (cl-case (intern pm/language) ('en '("France")) ('de '("Frankreich"))))) (cl-loop for l in address concat prefix concat l concat "\n"))) (defun pm/make-signature () "Check role, lang and level." (cl-case pm/sig-level (0 nil) (1 " Peter") (2 " Peter Münster") (3 (concat " Peter Münster\n " (pm/phone))) (4 (concat " Peter Münster\n" (pm/address " ") " " (pm/phone))) (t (setq pm/sig-level 0) (pm/make-signature)))) (defun pm/cycle-sigs () (interactive) (save-excursion (when (message-goto-signature) (forward-line -1) (delete-region (1- (point)) (point-max))) (incf pm/sig-level) (message-insert-signature))) (defun pm/ask-role () (let ((new-role (completing-read (format "Role [%s]: " pm/role) (mapcar (lambda (x) (plist-get x :id)) pm/roles) nil t nil 'pm/role-history pm/role))) (when (not (string-equal pm/role new-role)) (setq pm/role new-role) (message-replace-header "From" (message-make-from nil (pm/role->addr pm/role)))))) (defun pm/update-lang () "Check current buffer and update pm/language accordingly." (require 'auto-dictionary) (setq pm/language (adict--evaluate-buffer-find-lang nil))) (defun pm/message-setup () (cond (gnus-article-reply (pm/update-role) (pm/update-lang) (incf pm/sig-level) (save-excursion (message-insert-signature))) ((save-excursion (message-goto-signature)) (pm/update-role) (pm/update-lang)) (t (pm/ask-role) (let ((message-signature-insert-empty-line t)) (incf pm/sig-level) (save-excursion (message-insert-signature)))))) ;;;;;;;;;;;;;;;;;; Settings ;;;;;;;;;;;;;;;;;; (setq message-signature 'pm/make-signature message-signature-insert-empty-line nil message-subscribed-address-functions '(gnus-find-subscribed-addresses) pm/lists '((:name "context.list" :list-identifier "\\[NTG-context\\]" :address "ntg-context@ntg.nl") (:name "..." :list-identifier "..." :address "...") ... ) pm/roles '((:id "private" :address "private-address") (:id "list" :address "pmlists@free.fr") (:id "a" :address "a") (:id "b" :address "b") (:id "c" :address "c")) pm/other-addresses '("x" "y" "z") pm/list-address (pm/role->addr "list") user-mail-address (plist-get (car pm/roles) :address) gnus-parameters `(("^[^.]*$" (gcc-self . t) (display . [not expire])) ,@(cl-loop for item in pm/lists collect `(,(pm/str->regexp (plist-get item :name)) (subscribed . t) (gcc-self . none) (display . default) (to-list . ,(plist-get item :address)) (pm/role "list") (pm/language "en") (posting-style (address ,pm/list-address) (eval (setq pm/role "list" pm/language "en")) (To ,(plist-get item :address))) (gnus-list-identifiers ,(plist-get item :list-identifier)))) ("nntp+.*" (pm/role "list") (pm/language "en") (posting-style (address ,pm/list-address) (eval (setq pm/role "list" pm/language "en"))))) pm/addresses (append (list user-mail-address pm/list-address) (cdr (cl-loop for i in pm/roles collect (plist-get i :address))) pm/other-addresses) message-alternative-emails (regexp-opt (cdr pm/addresses)) message-dont-reply-to-names (regexp-opt pm/addresses)) (add-hook 'gnus-article-mode-hook 'pm/alter-article-map) (add-hook 'gnus-group-mode-hook 'pm/alter-group-map) (add-hook 'gnus-message-setup-hook 'pm/message-setup) (add-hook 'gnus-startup-hook 'pm/startup-addons) (add-hook 'gnus-summary-mode-hook 'pm/alter-summary-map) (add-hook 'message-mode-hook 'pm/alter-message-map) (add-hook 'message-send-hook 'pm/message-send) --8<---------------cut here---------------end--------------->8--- -- Peter