;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+;; Katsumi Yamaoka <yamaoka@jpl.org>
;; Keywords: news
;; This file is part of GNU Emacs.
;; See whether all the stored info needs to be flushed.
(when (or force
(not (equal emacs-version
- (cdr (assq 'version gnus-format-specs)))))
+ (cdr (assq 'version gnus-format-specs))))
+ (not (equal gnus-version
+ (cdr (assq 'gnus-version gnus-format-specs)))))
+ (message "%s" "Force update format specs.")
(setq gnus-format-specs nil))
;; Go through all the formats and see whether they need updating.
(set (intern (format "gnus-%s-line-format-spec" type)) val)))))
(unless (assq 'version gnus-format-specs)
- (push (cons 'version emacs-version) gnus-format-specs)))
+ (push (cons 'version emacs-version) gnus-format-specs))
+ (unless (assq 'gnus-version gnus-format-specs)
+ (push (cons 'gnus-version gnus-version) gnus-format-specs)))
(defvar gnus-mouse-face-0 'highlight)
(defvar gnus-mouse-face-1 'highlight)
(point) (progn ,@form (point))
'(gnus-face t face ,(symbol-value (intern (format "gnus-face-%d" type))))))
+;;; Avoid byte-compile warning.
+(defun gnus-tilde-pad-form (el pad-width)
+ "Dummy function except for XEmacs-mule. It will be redefined
+by `gnus-xmas-redefine'."
+ (let ((val (if (symbolp el) (eval el) el)))
+ (` (, val))))
+
(defun gnus-balloon-face-function (form type)
- `(gnus-put-text-property
+ `(gnus-put-text-property
(point) (progn ,@form (point))
'balloon-help
,(intern (format "gnus-balloon-face-%d" type))))
(if (or (= delim ?\()
(= delim ?\{)
(= delim ?\<))
- (replace-match (concat "\"("
+ (replace-match (concat "\"("
(cond ((= delim ?\() "mouse")
((= delim ?\{) "face")
(t "balloon"))
;; 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 ((xemacs-mule-p (and gnus-xemacs (featurep 'mule)))
+ 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)
(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))))
(symbol-value (intern (format "gnus-%s-line-format" type)))
(symbol-value (intern (format "gnus-%s-line-format-alist" type)))
insertable)))
-
+
(provide 'gnus-spec)