comparison lisp/gnus/gnus-ems.el @ 110157:969b41083104

gnus-ems.el: Make process-plist functions work.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Fri, 03 Sep 2010 01:00:10 +0000
parents 8d09094063d0
children 4f369250ec80
comparison
equal deleted inserted replaced
110156:a2439ed30c52 110157:969b41083104
312 (defalias 'gnus-process-plist 'process-plist) 312 (defalias 'gnus-process-plist 'process-plist)
313 (defalias 'gnus-process-get 'process-get) 313 (defalias 'gnus-process-get 'process-get)
314 (defalias 'gnus-process-put 'process-put)) 314 (defalias 'gnus-process-put 'process-put))
315 (defun gnus-set-process-plist (process plist) 315 (defun gnus-set-process-plist (process plist)
316 "Replace the plist of PROCESS with PLIST. Returns PLIST." 316 "Replace the plist of PROCESS with PLIST. Returns PLIST."
317 (put 'gnus-process-plist process plist)) 317 (put 'gnus-process-plist-internal process plist))
318
318 (defun gnus-process-plist (process) 319 (defun gnus-process-plist (process)
319 "Return the plist of PROCESS." 320 "Return the plist of PROCESS."
320 ;; Remove those of dead processes from `gnus-process-plist' 321 ;; This form works but can't prevent the plist data from
321 ;; to prevent it from growing. 322 ;; growing infinitely.
322 (let ((plist (symbol-plist 'gnus-process-plist)) 323 ;;(get 'gnus-process-plist-internal process)
323 proc) 324 (let* ((plist (symbol-plist 'gnus-process-plist-internal))
324 (while (setq proc (car plist)) 325 (tem (memq process plist)))
325 (if (and (processp proc) 326 (prog1
326 (memq (process-status proc) '(open run))) 327 (cadr tem)
327 (setq plist (cddr plist)) 328 ;; Remove it from the plist data.
328 (setcar plist (caddr plist)) 329 (when tem
329 (setcdr plist (or (cdddr plist) '(nil)))))) 330 (if (eq plist tem)
330 (get 'gnus-process-plist process)) 331 (progn
332 (setcar plist (caddr plist))
333 (setcdr plist (or (cdddr plist) '(nil))))
334 (setcdr (nthcdr (- (length plist) (length tem) 1) plist)
335 (cddr tem)))))))
336
331 (defun gnus-process-get (process propname) 337 (defun gnus-process-get (process propname)
332 "Return the value of PROCESS' PROPNAME property. 338 "Return the value of PROCESS' PROPNAME property.
333 This is the last value stored with `(gnus-process-put PROCESS PROPNAME VALUE)'." 339 This is the last value stored with `(gnus-process-put PROCESS PROPNAME VALUE)'."
334 (plist-get (gnus-process-plist process) propname)) 340 (plist-get (gnus-process-plist process) propname))
341
335 (defun gnus-process-put (process propname value) 342 (defun gnus-process-put (process propname value)
336 "Change PROCESS' PROPNAME property to VALUE. 343 "Change PROCESS' PROPNAME property to VALUE.
337 It can be retrieved with `(gnus-process-get PROCESS PROPNAME)'." 344 It can be retrieved with `(gnus-process-get PROCESS PROPNAME)'."
338 (gnus-set-process-plist process 345 (gnus-set-process-plist process
339 (plist-put (gnus-process-plist process) 346 (plist-put (gnus-process-plist process)