]> git.eshelyaron.com Git - emacs.git/commitdiff
Add hacks for citation in mail-mode and message-mode.
authorChong Yidong <cyd@stupidchicken.com>
Fri, 18 Nov 2005 19:40:35 +0000 (19:40 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 18 Nov 2005 19:40:35 +0000 (19:40 +0000)
lisp/ChangeLog
lisp/longlines.el

index 2ca0a6cb9d6287f073c9ac316670f645239c8976..d6bc96655191a7eff35bcb43b0cce5c5ef4d7c06 100644 (file)
@@ -1,3 +1,8 @@
+2005-11-18  Chong Yidong  <cyd@stupidchicken.com>
+
+       * longlines.el (longlines-mode): Add hacks for mail-mode and
+       message-mode.
+
 2005-11-18  Carsten Dominik  <dominik@science.uva.nl>
 
        * textmodes/org.el: (org-table-sort-lines): New command.
index 4ee85d646e5d40eaa53aa2e91b331a9db63d0695..ec912c5c880101807a0bf2e7d99178411d4807b1 100644 (file)
@@ -137,7 +137,21 @@ are indicated with a symbol."
           (add-hook 'after-change-functions
                     'longlines-after-change-function nil t)
           (add-hook 'post-command-hook
-                    'longlines-post-command-function nil t)))
+                    'longlines-post-command-function nil t))
+
+       ;; Hacks to make longlines play nice with various modes.
+       (cond ((eq major-mode 'mail-mode)
+              (or mail-citation-hook
+                  (add-hook 'mail-citation-hook 'mail-indent-citation nil t))
+              (add-hook 'mail-citation-hook 'longlines-decode-region nil t))
+             ((eq major-mode 'message-mode)
+              (make-local-variable 'message-indent-citation-function)
+              (if (not (listp message-indent-citation-function))
+                  (setq message-indent-citation-function
+                        (list message-indent-citation-function)))
+              (add-to-list 'message-indent-citation-function
+                           'longlines-decode-region t)))
+       )
     ;; Turn off longlines mode
     (setq buffer-file-format (delete 'longlines buffer-file-format))
     (if longlines-showing
@@ -298,8 +312,11 @@ Otherwise, return nil.  Text cannot be moved across hard newlines."
                    (1+ (current-column)))
                  space))))))
 
-(defun longlines-decode-region (beg end)
-  "Turn all newlines between BEG and END into hard newlines."
+(defun longlines-decode-region (&optional beg end)
+  "Turn all newlines between BEG and END into hard newlines.
+If BEG and END are nil, the point and mark are used."
+  (if (null beg) (setq beg (point)))
+  (if (null end) (setq end (mark t)))
   (save-excursion
     (goto-char (min beg end))
     (while (search-forward "\n" (max beg end) t)