;;; messagexmas.el --- XEmacs extensions to message
-;; Copyright (C) 1996,97,98,99 Free Software Foundation, Inc.
+
+;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2003, 2004
+;; Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: mail, news
;;; Code:
+(eval-when-compile (require 'cl))
(require 'nnheader)
(defvar message-xmas-dont-activate-region t
"Exchange point and mark, but allow for XEmacs' optional argument."
(exchange-point-and-mark message-xmas-dont-activate-region))
-(fset 'message-exchange-point-and-mark 'message-xmas-exchange-point-and-mark)
-
(defun message-xmas-maybe-fontify ()
(when (featurep 'font-lock)
(font-lock-set-defaults)))
"Create a rot table with offset N."
(let ((i -1)
(table (make-string 256 0))
- (a (mm-char-int ?a))
- (A (mm-char-int ?A)))
+ (a (char-int ?a))
+ (A (char-int ?A)))
(while (< (incf i) 256)
(aset table i i))
(concat
(substring table a (+ a n))
(substring table (+ a 26) 255))))
-(when (>= emacs-major-version 20)
- (fset 'message-make-caesar-translation-table
- 'message-xmas-make-caesar-translation-table))
+(defun message-xmas-make-date (&optional now)
+ "Make a valid data header.
+If NOW, use that time instead."
+ (let ((zone (car (current-time-zone)))
+ sign)
+ (if (>= zone 0)
+ (setq sign "+")
+ (setq sign "-"
+ zone (- zone)))
+ (format "%s %s%02d%02d"
+ (format-time-string "%a, %d %b %Y %T" now)
+ sign
+ (/ zone 3600)
+ (/ (% zone 3600) 60))))
(add-hook 'message-mode-hook 'message-xmas-maybe-fontify)
+(defun message-xmas-redefine ()
+ "Redefine message functions for XEmacs."
+ (defalias 'message-exchange-point-and-mark
+ 'message-xmas-exchange-point-and-mark)
+ (defalias 'message-mark-active-p
+ 'region-exists-p)
+ (defalias 'message-make-caesar-translation-table
+ 'message-xmas-make-caesar-translation-table)
+ (defalias 'message-make-overlay 'make-extent)
+ (defalias 'message-delete-overlay 'delete-extent)
+ (defalias 'message-overlay-put 'set-extent-property)
+ (defalias 'message-make-date 'message-xmas-make-date))
+
+(message-xmas-redefine)
+
(provide 'messagexmas)
;;; messagexmas.el ends here