*** empty log message ***
[gnus] / lisp / gnus-xmas.el
index 17eeee7..d989f6a 100644 (file)
@@ -56,7 +56,7 @@ automatically."
     (september "#bf9900" "#ffcc00"))
   "Color alist used for the Gnus logo.")
 
-(defcustom gnus-xmas-logo-color-style 'flame
+(defcustom gnus-xmas-logo-color-style 'moss
   "Color styles used for the Gnus logo."
   :type '(choice (const flame) (const pine) (const moss)
                 (const irish) (const sky) (const tin)
@@ -213,7 +213,8 @@ displayed, no centering will be performed."
     ;; We nix out any glyphs over 126 below ctl-arrow.
     (let ((i (if (integerp ctl-arrow) ctl-arrow 160)))
       (while (>= (setq i (1- i)) 127)
-       (aset table i [??])))
+       (unless (aref table i)
+         (aset table i [??]))))
     ;; Can't use `set-specifier' because of a bug in 19.14 and earlier
     (add-spec-to-specifier current-display-table table (current-buffer) nil)))
 
@@ -370,26 +371,6 @@ call it with the value of the `gnus-data' text property."
               (event-to-character event))
          event)))
 
-(defun gnus-xmas-group-remove-excess-properties ()
-  (let ((end (point))
-       (beg (progn (forward-line -1) (point))))
-    (remove-text-properties (1+ beg) end '(gnus-group nil))
-    (remove-text-properties
-     beg end
-     '(gnus-topic nil gnus-topic-level nil gnus-topic-visible nil))
-    (goto-char end)
-    (map-extents
-     (lambda (e ma)
-       (set-extent-property e 'start-closed t))
-     (current-buffer) beg end)))
-
-(defun gnus-xmas-topic-remove-excess-properties ()
-  (let ((end (point))
-       (beg (progn (forward-line -1) (point))))
-    (remove-text-properties beg end '(gnus-group nil gnus-unread nil))
-    (remove-text-properties (1+ beg) end '(gnus-topic nil))
-    (goto-char end)))
-
 (defun gnus-xmas-seconds-since-epoch (date)
   "Return a floating point number that says how many seconds have lapsed between Jan 1 12:00:00 1970 and DATE."
   (let* ((tdate (mapcar (lambda (ti) (and ti (string-to-int ti)))
@@ -429,12 +410,15 @@ call it with the value of the `gnus-data' text property."
     (fset 'gnus-characterp 'characterp)))
 
   (fset 'gnus-make-overlay 'make-extent)
+  (fset 'gnus-delete-overlay 'delete-extent)
   (fset 'gnus-overlay-put 'set-extent-property)
   (fset 'gnus-move-overlay 'gnus-xmas-move-overlay)
   (fset 'gnus-overlay-end 'extent-end-position)
   (fset 'gnus-extent-detached-p 'extent-detached-p)
   (fset 'gnus-add-text-properties 'gnus-xmas-add-text-properties)
   (fset 'gnus-put-text-property 'gnus-xmas-put-text-property)
+  (fset 'gnus-deactivate-mark 'ignore)
+  (fset 'gnus-window-edges 'window-pixel-edges)
 
   (require 'text-props)
   (if (and (<= emacs-major-version 19)
@@ -462,7 +446,7 @@ call it with the value of the `gnus-data' text property."
   (defun gnus-byte-code (func)
     "Return a form that can be `eval'ed based on FUNC."
     (let ((fval (symbol-function func)))
-      (if (compiled-function-p fval)
+      (if (byte-code-function-p fval)
          (list 'funcall fval)
        (cons 'progn (cdr (cdr fval))))))
 
@@ -511,7 +495,8 @@ call it with the value of the `gnus-data' text property."
   (add-hook 'gnus-summary-mode-hook 'gnus-xmas-setup-summary-toolbar)
 
   (add-hook 'gnus-summary-mode-hook
-           'gnus-xmas-switch-horizontal-scrollbar-off))
+           'gnus-xmas-switch-horizontal-scrollbar-off)
+  (add-hook 'gnus-tree-mode-hook 'gnus-xmas-switch-horizontal-scrollbar-off))
 
 
 ;;; XEmacs logo and toolbar.
@@ -528,16 +513,16 @@ call it with the value of the `gnus-data' text property."
     (let* ((logo-xpm (expand-file-name "gnus.xpm" gnus-xmas-glyph-directory))
           (logo-xbm (expand-file-name "gnus.xbm" gnus-xmas-glyph-directory))
           (glyph (make-glyph
-                  `(,@(if (featurep 'xpm)
-                          (list
-                           (vector 'xpm
-                            ':file logo-xpm
-                            ':color-symbols
-                            `(("thing" . ,(car gnus-xmas-logo-colors))
-                              ("shadow" . ,(cadr gnus-xmas-logo-colors))
-                              ("background" . ,(face-background 'default))))))
-                      ,(vector 'xbm :file logo-xbm)
-                      ,(vector 'nothing)))))
+                  (cond ((featurep 'xpm)
+                         `[xpm
+                           :file ,logo-xpm
+                           :color-symbols
+                           (("thing" . ,(car gnus-xmas-logo-colors))
+                            ("shadow" . ,(cadr gnus-xmas-logo-colors))
+                            ("background" . ,(face-background 'default)))])
+                        ((featurep 'xbm)
+                         `[xbm :file ,logo-xbm])
+                        (t [nothing])))))
       (insert " ")
       (set-extent-begin-glyph (make-extent (point) (point)) glyph)
       (goto-char (point-min))
@@ -644,7 +629,7 @@ If it is non-nil, it must be a toolbar.  The five legal values are
     [gnus-summary-save-article
      gnus-summary-save-article t "Save article"]
     [gnus-uu-post-news
-     gnus-uu-post-news t "Post an uuencoded article"]
+     gnus-uu-post-news t "Post a uuencoded article"]
     [gnus-summary-cancel-article
      gnus-summary-cancel-article t "Cancel article"]
     [gnus-summary-catchup
@@ -735,9 +720,9 @@ XEmacs compatibility workaround."
                      (gnus-xmas-call-region "icontopbm")
                      (gnus-xmas-call-region "ppmtoxpm")
                      (make-glyph
-                      (vector 'xpm :data (buffer-string)))))
-                 (t
-                  (make-glyph [nothing]))))))
+                      (vector 'xpm :data (buffer-string))))))
+                (t
+                 (make-glyph [nothing])))))
       (set-glyph-face xface-glyph 'gnus-x-face)
       (goto-char (point-min))
       (re-search-forward "^From:" nil t)
@@ -770,19 +755,19 @@ XEmacs compatibility workaround."
   (progn
     (setq gnus-xmas-glyph-directory (message-xmas-find-glyph-directory "gnus"))
     (let* ((file-xpm (expand-file-name "gnus-pointer.xpm"
-                                   gnus-xmas-glyph-directory))
+                                      gnus-xmas-glyph-directory))
           (file-xbm (expand-file-name "gnus-pointer.xbm"
-                                   gnus-xmas-glyph-directory))
+                                      gnus-xmas-glyph-directory))
           (glyph (make-glyph
                   ;; Gag gag gag.
-                  `(
-                    ,@(if (featurep 'xpm)
-                          ;; Let's try a nifty XPM
-                          (list (vector 'xpm ':file file-xpm)))
-                      ;; Then a not-so-nifty XBM
-                      ,(vector 'xbm ':file file-xbm)
-                      ;; Then the simple string
-                      ,(vector 'string ':data "Gnus:")))))
+                  (cond ((featurep 'xpm)
+                         ;; Let's try a nifty XPM
+                         `[xpm :file ,file-xpm])
+                        ((featurep 'xbm)
+                         ;; Then a not-so-nifty XBM
+                         [xbm :file ,file-xbm])
+                        ;; Then the simple string
+                        (t [string :data "Gnus:"])))))
       (set-glyph-face glyph 'modeline-buffer-id)
       glyph)))