[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] /srv/bzr/emacs/trunk r101308: gnus-ems.el: Make process-pl
From: |
Katsumi Yamaoka |
Subject: |
[Emacs-diffs] /srv/bzr/emacs/trunk r101308: gnus-ems.el: Make process-plist functions work. |
Date: |
Fri, 03 Sep 2010 01:00:10 +0000 |
User-agent: |
Bazaar (2.0.3) |
------------------------------------------------------------
revno: 101308
committer: Katsumi Yamaoka <address@hidden>
branch nick: trunk
timestamp: Fri 2010-09-03 01:00:10 +0000
message:
gnus-ems.el: Make process-plist functions work.
modified:
lisp/gnus/ChangeLog
lisp/gnus/gnus-ems.el
=== modified file 'lisp/gnus/ChangeLog'
--- a/lisp/gnus/ChangeLog 2010-09-03 00:55:58 +0000
+++ b/lisp/gnus/ChangeLog 2010-09-03 01:00:10 +0000
@@ -1,3 +1,9 @@
+2010-09-03 Katsumi Yamaoka <address@hidden>
+
+ * gnus-ems.el (gnus-set-process-plist, gnus-process-plist): Change name
+ of symbol that holds plist data.
+ (gnus-process-plist): Remove plist of process after getting it.
+
2010-09-02 Lars Magne Ingebrigtsen <address@hidden>
* message.el (message-generate-hashcash): Change default to
=== modified file 'lisp/gnus/gnus-ems.el'
--- a/lisp/gnus/gnus-ems.el 2010-09-02 00:55:51 +0000
+++ b/lisp/gnus/gnus-ems.el 2010-09-03 01:00:10 +0000
@@ -314,24 +314,31 @@
(defalias 'gnus-process-put 'process-put))
(defun gnus-set-process-plist (process plist)
"Replace the plist of PROCESS with PLIST. Returns PLIST."
- (put 'gnus-process-plist process plist))
+ (put 'gnus-process-plist-internal process plist))
+
(defun gnus-process-plist (process)
"Return the plist of PROCESS."
- ;; Remove those of dead processes from `gnus-process-plist'
- ;; to prevent it from growing.
- (let ((plist (symbol-plist 'gnus-process-plist))
- proc)
- (while (setq proc (car plist))
- (if (and (processp proc)
- (memq (process-status proc) '(open run)))
- (setq plist (cddr plist))
- (setcar plist (caddr plist))
- (setcdr plist (or (cdddr plist) '(nil))))))
- (get 'gnus-process-plist process))
+ ;; This form works but can't prevent the plist data from
+ ;; growing infinitely.
+ ;;(get 'gnus-process-plist-internal process)
+ (let* ((plist (symbol-plist 'gnus-process-plist-internal))
+ (tem (memq process plist)))
+ (prog1
+ (cadr tem)
+ ;; Remove it from the plist data.
+ (when tem
+ (if (eq plist tem)
+ (progn
+ (setcar plist (caddr plist))
+ (setcdr plist (or (cdddr plist) '(nil))))
+ (setcdr (nthcdr (- (length plist) (length tem) 1) plist)
+ (cddr tem)))))))
+
(defun gnus-process-get (process propname)
"Return the value of PROCESS' PROPNAME property.
This is the last value stored with `(gnus-process-put PROCESS PROPNAME
VALUE)'."
(plist-get (gnus-process-plist process) propname))
+
(defun gnus-process-put (process propname value)
"Change PROCESS' PROPNAME property to VALUE.
It can be retrieved with `(gnus-process-get PROCESS PROPNAME)'."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] /srv/bzr/emacs/trunk r101308: gnus-ems.el: Make process-plist functions work.,
Katsumi Yamaoka <=