Add compatibility functions gnus-process-get and gnus-process-put for Emacs 21 and...
authorKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 1 Sep 2010 04:19:47 +0000 (04:19 +0000)
committerKatsumi Yamaoka <yamaoka@jpl.org>
Wed, 1 Sep 2010 04:19:47 +0000 (04:19 +0000)
lisp/ChangeLog
lisp/gnus-ems.el

index 5871f36..0fdd89d 100644 (file)
@@ -1,3 +1,8 @@
+2010-09-01  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+       * gnus-ems.el (gnus-process-get, gnus-process-put): New compatibility
+       functions.
+
 2010-08-31  Julien Danjou  <julien@danjou.info>  (tiny change)
 
        * nnimap.el (nnimap-request-newgroups): Use nnimap-request-list-method
index 32b126a..06b1803 100644 (file)
          (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)