;;; gnus-spec.el --- format spec functions for Gnus
;; Copyright (C) 1996,97,98 Free Software Foundation, Inc.
-;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
;; This file is part of GNU Emacs.
val)
(when (and (boundp buffer)
(setq val (symbol-value buffer))
- (get-buffer val)
- (buffer-name (get-buffer val)))
- (set-buffer (get-buffer val)))
+ (gnus-buffer-exists-p val))
+ (set-buffer val))
(setq new-format (symbol-value
(intern (format "gnus-%s-line-format" type)))))
(setq entry (cdr (assq type gnus-format-specs)))
(defvar gnus-face-4 'bold)
(defun gnus-face-face-function (form type)
- `(gnus-put-text-property
+ `(gnus-add-text-properties
(point) (progn ,@form (point))
- 'face ',(symbol-value (intern (format "gnus-face-%d" type)))))
+ '(gnus-face t face ,(symbol-value (intern (format "gnus-face-%d" type))))))
(defun gnus-tilde-max-form (el max-width)
"Return a form that limits EL to MAX-WIDTH."
(let ((number (if (match-beginning 1)
(match-string 1) "0"))
(delim (aref (match-string 2) 0)))
- (if (or (= delim ?\() (= delim ?\{))
+ (if (or (= delim ?\()
+ (= delim ?\{))
(replace-match (concat "\"(" (if (= delim ?\() "mouse" "face")
" " number " \""))
(replace-match "\")\""))))
;; This function parses the FORMAT string with the help of the
;; SPEC-ALIST and returns a list that can be eval'ed to return a
;; string.
- (let ((max-width 0)
+ (let (max-width
spec flist fstring elem result dontinsert user-defined
type value pad-width spec-beg cut-width ignore-value
- tilde-form tilde elem-type)
+ tilde-form tilde elem-type
+ (xemacs-mule-p (and gnus-xemacs (featurep 'mule))))
(save-excursion
(gnus-set-work-buffer)
(insert format)
(goto-char (point-min))
- (while (re-search-forward "%" nil t)
+ (while (search-forward "%" nil t)
(setq user-defined nil
spec-beg nil
pad-width nil
(setq elem '("*" ?s))))
(setq elem-type (cadr elem))
;; Insert the new format elements.
- (when pad-width
- (insert (number-to-string pad-width)))
+ (and pad-width (not xemacs-mule-p)
+ (insert (number-to-string pad-width)))
;; Create the form to be evaled.
- (if (or max-width cut-width ignore-value)
+ (if (or max-width cut-width ignore-value
+ (and pad-width xemacs-mule-p))
(progn
(insert ?s)
(let ((el (car elem)))
(setq el (gnus-tilde-cut-form el cut-width)))
(when max-width
(setq el (gnus-tilde-max-form el max-width)))
+ (and pad-width xemacs-mule-p
+ (setq el (gnus-tilde-pad-form el pad-width)))
(push el flist)))
(insert elem-type)
(push (car elem) flist))))
(push (cons 'version emacs-version) gnus-format-specs)
;; Mark the .newsrc.eld file as "dirty".
- (gnus-dribble-enter " ")
+ (gnus-dribble-touch)
(gnus-message 7 "Compiling user specs...done"))))
(defun gnus-set-format (type &optional insertable)