Indent to keep width under 80 columns.
[gnus] / lisp / gnus-ems.el
index 594b592..b4a2fe9 100644 (file)
@@ -1,17 +1,17 @@
 ;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
 
 ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+;;   2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
 ;; Keywords: news
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -19,9 +19,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 
 (eval-and-compile
   (autoload 'gnus-xmas-define "gnus-xmas")
-  (autoload 'gnus-xmas-redefine "gnus-xmas")
-  (autoload 'gnus-get-buffer-create "gnus")
-  (autoload 'nnheader-find-etc-directory "nnheader"))
+  (autoload 'gnus-xmas-redefine "gnus-xmas"))
 
+(autoload 'gnus-get-buffer-create "gnus")
+(autoload 'nnheader-find-etc-directory "nnheader")
 (autoload 'smiley-region "smiley")
 
 (defun gnus-kill-all-overlays ()
                    (car sbars)
                    (/ (or (car fringes) 0) fcw))
            yoffset (cadr (window-edges))
-           top (max 0 (- (* (max (if (and tool-bar-mode
+           top (max 0 (- (* (max (if (and (boundp 'tool-bar-mode)
+                                          tool-bar-mode
                                           (not (featurep 'gtk))
                                           (eq (frame-first-window)
                                               (selected-window)))
     (when face
       (setq props (plist-put props :foreground (face-foreground face)))
       (setq props (plist-put props :background (face-background face))))
-    (apply 'create-image file type data-p props)))
+    (ignore-errors
+      (apply 'create-image file type data-p props))))
 
 (defun gnus-put-image (glyph &optional string category)
   (let ((point (point)))
-    (insert-image glyph (or string " "))
+    (insert-image glyph (or string "*"))
     (put-text-property point (point) 'gnus-image-category category)
     (unless string
       (put-text-property (1- (point)) (point)
          (setq start end
                end nil))))))
 
+(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-internal process plist))
+
+    (defun gnus-process-plist (process)
+      "Return the plist of 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)'."
+      (gnus-set-process-plist process
+                             (plist-put (gnus-process-plist process)
+                                        propname value)))))
+
 (provide 'gnus-ems)
 
-;; arch-tag: e7360b45-14b5-4171-aa39-69a44aed3cdb
 ;;; gnus-ems.el ends here