diff lisp/gnus/gnus-ems.el @ 110082:0bc890984083

Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and XEmacs.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Wed, 01 Sep 2010 04:22:17 +0000
parents 38805092633e
children fc3e98cf87b7
line wrap: on
line diff
--- a/lisp/gnus/gnus-ems.el	Wed Sep 01 00:18:24 2010 +0000
+++ b/lisp/gnus/gnus-ems.el	Wed Sep 01 04:22:17 2010 +0000
@@ -305,26 +305,39 @@
 	  (setq start end
 		end nil))))))
 
-(if (fboundp 'set-process-plist)
-    (progn
-      (defalias 'gnus-set-process-plist 'set-process-plist)
-      (defalias 'gnus-process-plist 'process-plist))
-  (defun gnus-set-process-plist (process plist)
-    "Replace the plist of PROCESS with PLIST.  Returns PLIST."
-    (put 'gnus-process-plist 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)))
+(eval-and-compile
+  (if (fboundp 'set-process-plist)
+      (progn
+	(defalias 'gnus-set-process-plist 'set-process-plist)
+	(defalias 'gnus-process-plist 'process-plist)
+	(defalias 'gnus-process-get 'process-get)
+	(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))
+    (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))
+    (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)'."
+      (gnus-set-process-plist process
+			      (plist-put (process-plist process)
+					 propname value)))))
 
 (provide 'gnus-ems)