From 524705ae2da95c571fedb83b3a1c3a80e1335a72 Mon Sep 17 00:00:00 2001 From: Miles Bader Date: Thu, 14 Jun 2007 10:02:55 +0000 Subject: [PATCH] Merge from gnus--rel--5.10 Patches applied: * emacs--devo--0 (patch 725, 740-741, 749, 768, 777, 786, 788-789, 792) - Merge from gnus--rel--5.10 - Update from CVS - Merge from emacs--rel--22, gnus--rel--5.10 * gnus--rel--5.10 (patch 217-229) - Update from CVS - Merge from emacs--devo--0, emacs--rel--22 Revision: emacs@sv.gnu.org/emacs--rel--22--patch-44 --- lisp/gnus/ChangeLog | 44 ++++++++++++-- lisp/gnus/gnus-art.el | 15 ++--- lisp/gnus/gnus-ems.el | 123 +++++++++++++++++++++++++++++----------- lisp/gnus/gnus-start.el | 3 +- lisp/gnus/mm-decode.el | 25 ++++---- man/gnus.texi | 16 +++--- 6 files changed, 158 insertions(+), 68 deletions(-) diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index e5b314bf20a..f93bc55eb6e 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog @@ -1,21 +1,50 @@ +2007-06-08 Katsumi Yamaoka + + * gnus-ems.el (gnus-x-splash): Make it work. + + * gnus-start.el (gnus-1): Relax restrictions that prevent gnus-x-splash + from being used. + + * lpath.el: Bind line-spacing and tool-bar-mode for XEmacs. + + * gnus-art.el (gnus-article-summary-command-nosave): Correct the order + of the arguments passed to pop-to-buffer. + (gnus-article-read-summary-keys): Ditto. + 2007-06-07 Juanma Barranquero - * gnus-art.el (gnus-split-methods): - * mail-source.el (mail-source-delete-old-incoming-confirm): - Fix typo in docstring. + * gnus-art.el (gnus-split-methods): Fix typo in docstring. 2007-06-06 Juanma Barranquero * gnus-diary.el (gnus-diary-time-format, gnus-summary-sort-by-schedule): * gnus-sum.el (gnus-summary-highlight): + * mail-source.el (mail-source-delete-old-incoming-confirm): * nndiary.el (nndiary-reminders): Fix typos in docstrings. +2007-06-04 Katsumi Yamaoka + + * gnus-art.el (gnus-mime-view-part-externally) + (gnus-mime-view-part-internally): Fix predicate function passed to + completing-read. + + * mm-decode.el (mm-image-fit-p): Return t if argument is not an image; + return t if image size is just the same as window size. + 2007-05-28 Katsumi Yamaoka * message.el (message-pop-to-buffer): Add switch-function argument. (message-mail): Pass switch-function argument to it. - (message-narrow-to-headers-or-head): Ignore mail-header-separator in - the body. + +2007-05-24 Katsumi Yamaoka + + * message.el (message-narrow-to-headers-or-head): Ignore + mail-header-separator in the body. + +2007-05-10 Reiner Steib + + * gnus-art.el (gnus-article-mode): Fix comment about displaying + non-break space. 2007-05-09 Didier Verna @@ -35,6 +64,11 @@ (mm-inline-text-html-render-with-w3m-standalone) (mm-inline-render-with-function): Use mail-parse-charset by default. +2007-04-18 Levin Du (tiny change) + + * calendar/parse-time.el (parse-time-string-chars): Check if CHAR + is less than the length of parse-time-syntax. + 2007-04-10 Katsumi Yamaoka * gnus-msg.el (gnus-inews-yank-articles): Use diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 83e4ec71b79..90af0740318 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el @@ -3925,7 +3925,8 @@ commands: (make-local-variable 'gnus-article-image-alist) (make-local-variable 'gnus-article-charset) (make-local-variable 'gnus-article-ignored-charsets) - ;; Prevent recent Emacsen from displaying non-break space as "\ ". + ;; Prevent Emacs 22 from displaying non-break space with `nobreak-space' + ;; face. (set (make-local-variable 'nobreak-char-display) nil) (setq cursor-in-non-selected-windows nil) (gnus-set-default-directory) @@ -4673,7 +4674,7 @@ specified charset." (mm-enable-external t)) (if (not (stringp method)) (gnus-mime-view-part-as-type - nil (lambda (type) (stringp (mailcap-mime-info type)))) + nil (lambda (types) (stringp (mailcap-mime-info (car types))))) (when handle (if (mm-handle-undisplayer handle) (mm-remove-part handle) @@ -4694,7 +4695,7 @@ If no internal viewer is available, use an external viewer." (inhibit-read-only t)) (if (not (mm-inlinable-p handle)) (gnus-mime-view-part-as-type - nil (lambda (type) (mm-inlinable-p handle type))) + nil (lambda (types) (mm-inlinable-p handle (car types)))) (when handle (if (mm-handle-undisplayer handle) (mm-remove-part handle) @@ -5606,7 +5607,7 @@ not have a face in `gnus-article-boring-faces'." "Execute the last keystroke in the summary buffer." (interactive) (let (func) - (pop-to-buffer gnus-article-current-summary 'norecord) + (pop-to-buffer gnus-article-current-summary nil 'norecord) (setq func (lookup-key (current-local-map) (this-command-keys))) (call-interactively func))) @@ -5645,7 +5646,7 @@ not have a face in `gnus-article-boring-faces'." (member keys nosave-in-article)) (let (func) (save-window-excursion - (pop-to-buffer gnus-article-current-summary 'norecord) + (pop-to-buffer gnus-article-current-summary nil 'norecord) ;; We disable the pick minor mode commands. (let (gnus-pick-mode) (setq func (lookup-key (current-local-map) keys)))) @@ -5657,14 +5658,14 @@ not have a face in `gnus-article-boring-faces'." (call-interactively func) (setq new-sum-point (point))) (when (member keys nosave-but-article) - (pop-to-buffer gnus-article-buffer 'norecord))) + (pop-to-buffer gnus-article-buffer nil 'norecord))) ;; These commands should restore window configuration. (let ((obuf (current-buffer)) (owin (current-window-configuration)) (opoint (point)) win func in-buffer selected new-sum-start new-sum-hscroll) (cond (not-restore-window - (pop-to-buffer gnus-article-current-summary 'norecord)) + (pop-to-buffer gnus-article-current-summary nil 'norecord)) ((setq win (get-buffer-window gnus-article-current-summary)) (select-window win)) (t diff --git a/lisp/gnus/gnus-ems.el b/lisp/gnus/gnus-ems.el index 60e66adc98b..4400b81f041 100644 --- a/lisp/gnus/gnus-ems.el +++ b/lisp/gnus/gnus-ems.el @@ -172,40 +172,95 @@ (defun gnus-x-splash () "Show a splash screen using a pixmap in the current buffer." - (let ((dir (nnheader-find-etc-directory "gnus")) - pixmap file height beg i) - (save-excursion - (switch-to-buffer (gnus-get-buffer-create gnus-group-buffer)) - (let ((buffer-read-only nil) - width height) - (erase-buffer) - (when (and dir - (file-exists-p (setq file - (expand-file-name "x-splash" dir)))) - (let ((coding-system-for-read 'raw-text) - default-enable-multibyte-characters) - (with-temp-buffer - (insert-file-contents file) - (goto-char (point-min)) - (ignore-errors - (setq pixmap (read (current-buffer))))))) - (when pixmap - (make-face 'gnus-splash) - (setq height (/ (car pixmap) (frame-char-height)) - width (/ (cadr pixmap) (frame-char-width))) - (set-face-foreground 'gnus-splash "Brown") - (set-face-stipple 'gnus-splash pixmap) - (insert-char ?\n (* (/ (window-height) 2 height) height)) - (setq i height) - (while (> i 0) - (insert-char ?\ (* (/ (window-width) 2 width) width)) - (setq beg (point)) - (insert-char ?\ width) - (set-text-properties beg (point) '(face gnus-splash)) - (insert ?\n) - (decf i)) - (goto-char (point-min)) - (sit-for 0)))))) + (interactive) + (unless window-system + (error "`gnus-x-splash' requires running on the window system")) + (switch-to-buffer (gnus-get-buffer-create (if (or (gnus-alive-p) + (interactive-p)) + "*gnus-x-splash*" + gnus-group-buffer))) + (let ((inhibit-read-only nil) + (file (nnheader-find-etc-directory "images/gnus/x-splash" t)) + pixmap fcw fch width height fringes sbars left yoffset top ls) + (erase-buffer) + (when (and file + (ignore-errors + (let ((coding-system-for-read 'raw-text) + default-enable-multibyte-characters) + (with-temp-buffer + (insert-file-contents file) + (goto-char (point-min)) + (setq pixmap (read (current-buffer))))))) + (setq fcw (float (frame-char-width)) + fch (float (frame-char-height)) + width (/ (car pixmap) fcw) + height (/ (cadr pixmap) fch) + fringes (if (fboundp 'window-fringes) + (eval '(window-fringes)) + '(10 11 nil)) + sbars (frame-parameter nil 'vertical-scroll-bars)) + (cond ((eq sbars 'right) + (setq sbars + (cons 0 (/ (or (frame-parameter nil 'scroll-bar-width) 14) + fcw)))) + (sbars + (setq sbars + (cons (/ (or (frame-parameter nil 'scroll-bar-width) 14) + fcw) + 0)))) + (setq left (- (* (round (/ (1- (/ (+ (window-width) + (car sbars) (cdr sbars) + (/ (+ (or (car fringes) 0) + (or (cadr fringes) 0)) + fcw)) + width)) + 2)) + width) + (car sbars) + (/ (or (car fringes) 0) fcw)) + yoffset (cadr (window-edges)) + top (max 0 (- (* (max (if (and tool-bar-mode + (not (featurep 'gtk)) + (eq (frame-first-window) + (selected-window))) + 1 0) + (round (/ (1- (/ (+ (1- (window-height)) + (* 2 yoffset)) + height)) + 2))) + height) + yoffset)) + ls (/ (or line-spacing 0) fch) + height (max 0 (- height ls))) + (cond ((>= (- top ls) 1) + (insert + (propertize + " " + 'display `(space :width 0 :ascent 100)) + "\n" + (propertize + " " + 'display `(space :width 0 :height ,(- top ls 1) :ascent 100)) + "\n")) + ((> (- top ls) 0) + (insert + (propertize + " " + 'display `(space :width 0 :height ,(- top ls) :ascent 100)) + "\n"))) + (if (and (> width 0) (> left 0)) + (insert (propertize + " " + 'display `(space :width ,left :height ,height :ascent 0))) + (setq width (+ width left))) + (when (> width 0) + (insert (propertize + " " + 'display `(space :width ,width :height ,height :ascent 0) + 'face `(gnus-splash :stipple ,pixmap)))) + (goto-char (if (<= (- top ls) 0) (1- (point)) (point-min))) + (redraw-frame (selected-frame)) + (sit-for 0)))) ;;; Image functions. diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index 9fbab8b340b..d906cec6c6a 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el @@ -758,8 +758,7 @@ prompt the user for the name of an NNTP server to use." (cond ((featurep 'xemacs) (gnus-xmas-splash)) - ((and window-system - (= (frame-height) (1+ (window-height)))) + (window-system (gnus-x-splash)))) (let ((level (and (numberp arg) (> arg 0) arg)) diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el index 6d52d8b2f16..028855ab341 100644 --- a/lisp/gnus/mm-decode.el +++ b/lisp/gnus/mm-decode.el @@ -1371,18 +1371,19 @@ be determined." (defun mm-image-fit-p (handle) "Say whether the image in HANDLE will fit the current window." (let ((image (mm-get-image handle))) - (if (fboundp 'glyph-width) - ;; XEmacs' glyphs can actually tell us about their width, so - ;; lets be nice and smart about them. - (or mm-inline-large-images - (and (< (glyph-width image) (window-pixel-width)) - (< (glyph-height image) (window-pixel-height)))) - (let* ((size (image-size image)) - (w (car size)) - (h (cdr size))) - (or mm-inline-large-images - (and (< h (1- (window-height))) ; Don't include mode line. - (< w (window-width)))))))) + (or (not image) + (if (fboundp 'glyph-width) + ;; XEmacs' glyphs can actually tell us about their width, so + ;; lets be nice and smart about them. + (or mm-inline-large-images + (and (<= (glyph-width image) (window-pixel-width)) + (<= (glyph-height image) (window-pixel-height)))) + (let* ((size (image-size image)) + (w (car size)) + (h (cdr size))) + (or mm-inline-large-images + (and (<= h (1- (window-height))) ; Don't include mode line. + (<= w (window-width))))))))) (defun mm-valid-image-format-p (format) "Say whether FORMAT can be displayed natively by Emacs." diff --git a/man/gnus.texi b/man/gnus.texi index a3026251cb1..85167d53432 100644 --- a/man/gnus.texi +++ b/man/gnus.texi @@ -4084,8 +4084,8 @@ happens. You just have to be careful if you do stuff like that. @item v @kindex v (Group) @cindex keys, reserved for users (Group) -The key @kbd{v} is reserved for users. You can bind it key to some -function or better use it as a prefix key. For example: +The key @kbd{v} is reserved for users. You can bind it to some +command or better use it as a prefix key. For example: @lisp (define-key gnus-group-mode-map (kbd "v j d") @@ -4498,8 +4498,8 @@ available in Emacs. @kindex v (Summary) @cindex keys, reserved for users (Summary) -The key @kbd{v} is reserved for users. You can bind it key to some -function or better use it as a prefix key. For example: +The key @kbd{v} is reserved for users. You can bind it to some +command or better use it as a prefix key. For example: @lisp (define-key gnus-summary-mode-map (kbd "v -") "LrS") ;; lower subthread @end lisp @@ -11422,8 +11422,8 @@ buffer. @kindex v (Article) @cindex keys, reserved for users (Article) -The key @kbd{v} is reserved for users. You can bind it key to some -function or better use it as a prefix key. +The key @kbd{v} is reserved for users. You can bind it to some +command or better use it as a prefix key. A few additional keystrokes are available: @@ -12460,8 +12460,8 @@ Also @pxref{Formatting Variables}. @item v @kindex v (Server) @cindex keys, reserved for users (Server) -The key @kbd{v} is reserved for users. You can bind it key to some -function or better use it as a prefix key. +The key @kbd{v} is reserved for users. You can bind it to some +command or better use it as a prefix key. @item a @kindex a (Server) -- 2.39.2