(line-move-1): If we did not move as far as desired, ensure that
[bpt/emacs.git] / lisp / longlines.el
index 57b5742..d160b80 100644 (file)
@@ -1,6 +1,6 @@
 ;;; longlines.el --- automatically wrap long lines
 
-;; Copyright (C) 2000, 2001, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Authors:    Kai Grossjohann <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 ;;             Alex Schroeder <alex@gnu.org>
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software: you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -21,9 +21,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -136,7 +134,8 @@ are indicated with a symbol."
         (let ((buffer-undo-list t)
               (inhibit-read-only t)
              (after-change-functions nil)
-              (mod (buffer-modified-p)))
+              (mod (buffer-modified-p))
+             buffer-file-name buffer-file-truename)
           ;; Turning off undo is OK since (spaces + newlines) is
           ;; conserved, except for a corner case in
           ;; longlines-wrap-lines that we'll never encounter from here
@@ -176,7 +175,8 @@ are indicated with a symbol."
         (longlines-unshow-hard-newlines))
     (let ((buffer-undo-list t)
          (after-change-functions nil)
-          (inhibit-read-only t))
+          (inhibit-read-only t)
+         buffer-file-name buffer-file-truename)
       (if longlines-decoded
          (save-restriction
            (widen)
@@ -220,7 +220,8 @@ With optional argument ARG, make the hard newlines invisible again."
         (mod (buffer-modified-p))
         (buffer-undo-list t)
         (inhibit-read-only t)
-        (inhibit-modification-hooks t))
+        (inhibit-modification-hooks t)
+        buffer-file-name buffer-file-truename)
     (while pos
       (put-text-property pos (1+ pos) 'display
                         (copy-sequence longlines-show-effect))
@@ -235,7 +236,8 @@ With optional argument ARG, make the hard newlines invisible again."
        (mod (buffer-modified-p))
        (buffer-undo-list t)
        (inhibit-read-only t)
-       (inhibit-modification-hooks t))
+       (inhibit-modification-hooks t)
+       buffer-file-name buffer-file-truename)
     (while pos
       (remove-text-properties pos (1+ pos) '(display))
       (setq pos (text-property-not-all (1+ pos) (point-max) 'hard nil)))
@@ -478,6 +480,17 @@ This is called by `window-configuration-change-hook'."
  (list 'longlines "Automatically wrap long lines." nil nil
        'longlines-encode-region t nil))
 
+;; Unloading
+
+(defun longlines-unload-function ()
+  "Unload the longlines library."
+  (save-current-buffer
+    (dolist (buffer (buffer-list))
+      (set-buffer buffer)
+      (longlines-mode-off)))
+  ;; continue standard unloading
+  nil)
+
 (provide 'longlines)
 
 ;; arch-tag: 3489d225-5506-47b9-8659-d8807b77c624