[gnus git] branch master updated: m0-5-83-g240d70a =1= gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-groups): Use defsetf

Katsumi Yamaoka <[email protected]>
Newsgroups gmane.emacs.gnus.cvs
Message-ID <[email protected]>
       via  240d70a44d7e3b45e668f639fca8837eb12ef567 (commit)
      from  690ecab203b06b79e3fd0c59cdce5188da57e7cb (commit)


- Log -----------------------------------------------------------------
commit 240d70a44d7e3b45e668f639fca8837eb12ef567
Author: Stefan Monnier <[email protected]>
Date:   Sat Aug 11 10:02:20 2012 +0000

    gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-groups): Use defsetf

diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b8abc61..bf380d0 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2012-08-10  Stefan Monnier  <[email protected]>
+
+	* gnus-agent.el (gnus-agent-cat-defaccessor, gnus-agent-cat-groups):
+	Use defsetf.
+
 2012-08-10  Daiki Ueno <[email protected]>
 
 	* auth-source.el: (auth-source-plstore-search)
diff --git a/lisp/gnus-agent.el b/lisp/gnus-agent.el
index 525008c..60d6102 100644
--- a/lisp/gnus-agent.el
+++ b/lisp/gnus-agent.el
@@ -354,23 +354,11 @@ manipulated as follows:
   (func LIST): Returns VALUE1
   (setf (func LIST) NEW_VALUE1): Replaces VALUE1 with NEW_VALUE1."
     `(progn (defmacro ,name (category)
-              (list (quote cdr) (list (quote assq)
-                                      (quote (quote ,prop-name)) category)))
-
-            (define-setf-method ,name (category)
-              (let* ((--category--temp-- (make-symbol "--category--"))
-                     (--value--temp-- (make-symbol "--value--")))
-                (list (list --category--temp--) ; temporary-variables
-                      (list category)		; value-forms
-                      (list --value--temp--)	; store-variables
-                      (let* ((category --category--temp--) ; store-form
-                             (value --value--temp--))
-                        (list (quote gnus-agent-cat-set-property)
-                              category
-                              (quote (quote ,prop-name))
-                              value))
-                      (list (quote ,name) --category--temp--) ; access-form
-                      )))))
+              (list 'cdr (list 'assq '',prop-name category)))
+
+            (defsetf ,name (category) (value)
+              (list 'gnus-agent-cat-set-property
+                    category '',prop-name value))))
   )
 
 (defmacro gnus-agent-cat-name (category)
@@ -398,22 +386,10 @@ manipulated as follows:
  gnus-agent-cat-enable-undownloaded-faces  agent-enable-undownloaded-faces)
 
 
-;; This form is equivalent to defsetf except that it calls make-symbol
-;; whereas defsetf calls gensym (Using gensym creates a run-time
-;; dependency on the CL library).
-
-(eval-and-compile
-  (define-setf-method gnus-agent-cat-groups (category)
-    (let* ((--category--temp-- (make-symbol "--category--"))
-	   (--groups--temp-- (make-symbol "--groups--")))
-      (list (list --category--temp--)
-	    (list category)
-	    (list --groups--temp--)
-	    (let* ((category --category--temp--)
-		   (groups --groups--temp--))
-	      (list (quote gnus-agent-set-cat-groups) category groups))
-	    (list (quote gnus-agent-cat-groups) --category--temp--))))
-  )
+;; This form may expand to code that uses CL functions at run-time,
+;; but that's OK since those functions will only ever be called from
+;; something like `setf', so only when CL is loaded anyway.
+(defsetf gnus-agent-cat-groups gnus-agent-set-cat-groups)
 
 (defun gnus-agent-set-cat-groups (category groups)
   (unless (eq groups 'ignore)

-----------------------------------------------------------------------
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we listed those
revisions in full, above.

Summary of changes:
 lisp/ChangeLog     |    7 ++++++-
 lisp/gnus-agent.el |   42 +++++++++---------------------------------
 2 files changed, 15 insertions(+), 34 deletions(-)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Gnus Project".

The branch, master has been updated


hooks/post-receive
-- 
Gnus Project
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.