2001-01-21 00:00:00 ShengHuo ZHU <zsh@cs.rochester.edu>
[gnus] / lisp / gnus-ems.el
index 06bdfa2..62c2695 100644 (file)
@@ -1,5 +1,5 @@
 ;;; gnus-ems.el --- functions for making Gnus work under different Emacsen
-;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000
+;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001
 ;;        Free Software Foundation, Inc.
 
 ;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
@@ -26,7 +26,9 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(eval-when-compile
+  (require 'cl)
+  (require 'ring))
 
 ;;; Function aliases later to be redefined for XEmacs usage.
 
 
 (if (featurep 'xemacs)
     (autoload 'gnus-smiley-display "smiley")
-  (autoload 'gnus-smiley-display "smiley-ems") ; override XEmacs version
-)
+  (autoload 'gnus-smiley-display "smiley-ems")) ; override XEmacs version
+
+(defun gnus-kill-all-overlays ()
+  "Delete all overlays in the current buffer."
+  (let* ((overlayss (overlay-lists))
+        (buffer-read-only nil)
+        (overlays (delq nil (nconc (car overlayss) (cdr overlayss)))))
+    (while overlays
+      (delete-overlay (pop overlays)))))
 
 ;;; Mule functions.
 
@@ -86,6 +95,7 @@
 (defvar gnus-tmp-name)
 (defvar gnus-tmp-closing-bracket)
 (defvar gnus-tmp-subject-or-nil)
+(defvar gnus-check-before-posting)
 
 (defun gnus-ems-redefine ()
   (cond
   "Length of the ring used for `gnus-article-xface-ring-internal'.")
 
 (defvar gnus-article-compface-xbm
-  (eq 0 (string-match "#define" (shell-command-to-string "uncompface -X")))
+  (condition-case ()
+      (eq 0 (string-match "#define"
+                         (shell-command-to-string "uncompface -X")))
+    (error nil))
   "Non-nil means the compface program supports the -X option.
 That produces XBM output.")
 
-(defun gnus-article-display-xface (beg end)
-  "Display an XFace header from between BEG and END in the current article.
+(defun gnus-article-display-xface (beg end &optional buffer)
+  "Display an XFace header from between BEG and END in BUFFER.
 Requires support for images in your Emacs and the external programs
 `uncompface', and `icontopbm'.  On a GNU/Linux system these
 might be in packages with names like `compface' or `faces-xface' and
@@ -221,7 +234,10 @@ for XEmacs."
            (make-ring gnus-article-xface-ring-size)))
     (save-excursion
       (let* ((cur (current-buffer))
-            (data (buffer-substring beg end))
+            (data (if buffer
+                      (with-current-buffer buffer
+                        (buffer-substring beg end))
+                    (buffer-substring beg end)))
             (image (cdr-safe (assoc data (ring-elements
                                           gnus-article-xface-ring-internal))))
             default-enable-multibyte-characters)
@@ -266,8 +282,4 @@ for XEmacs."
 
 (provide 'gnus-ems)
 
-;; Local Variables:
-;; byte-compile-warnings: '(redefine callargs)
-;; End:
-
 ;;; gnus-ems.el ends here