;;; 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>
;;; Code:
-(eval-when-compile (require 'cl))
+(eval-when-compile
+ (require 'cl)
+ (require 'ring))
;;; Function aliases later to be redefined for XEmacs usage.
-(eval-and-compile
- (defvar gnus-xemacs (featurep 'xemacs)
- "Non-nil if running under XEmacs."))
-
(defvar gnus-mouse-2 [mouse-2])
(defvar gnus-down-mouse-3 [down-mouse-3])
(defvar gnus-down-mouse-2 [down-mouse-2])
(defvar gnus-widget-button-keymap nil)
(defvar gnus-mode-line-modified
- (if (or gnus-xemacs
+ (if (or (featurep 'xemacs)
(< emacs-major-version 20))
'("--**-" . "-----")
'("**" "--")))
(autoload 'gnus-xmas-redefine "gnus-xmas")
(autoload 'appt-select-lowest-window "appt"))
-(autoload 'gnus-smiley-display "smiley-ems") ; override XEmacs version
+(if (featurep 'xemacs)
+ (autoload 'gnus-smiley-display "smiley")
+ (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.
valstr)))
(eval-and-compile
- (if gnus-xemacs
+ (if (featurep 'xemacs)
(gnus-xmas-define)
(defvar gnus-mouse-face-prop 'mouse-face
"Property used for highlighting mouse regions.")))
(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
- (gnus-xemacs
+ ((featurep 'xemacs)
(gnus-xmas-redefine))
((featurep 'mule)
pixmap file height beg i)
(save-excursion
(switch-to-buffer (gnus-get-buffer-create gnus-group-buffer))
- (let ((buffer-read-only nil))
+ (let ((buffer-read-only nil)
+ width height)
(erase-buffer)
(when (and dir
(file-exists-p (setq file
"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
(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)
(provide 'gnus-ems)
-;; Local Variables:
-;; byte-compile-warnings: '(redefine callargs)
-;; End:
-
;;; gnus-ems.el ends here