changeset 67120:d3b833785ae6

(longlines-wrap-line): Reorder wrapping to "insert new character, then delete" in order to preserve markers.
author David Kastrup <dak@gnu.org>
date Fri, 25 Nov 2005 11:06:30 +0000
parents c4aae786a4e4
children f354001864bf
files lisp/ChangeLog lisp/longlines.el
diffstat 2 files changed, 15 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Nov 25 07:57:21 2005 +0000
+++ b/lisp/ChangeLog	Fri Nov 25 11:06:30 2005 +0000
@@ -1,3 +1,8 @@
+2005-11-25  David Kastrup  <dak@gnu.org>
+
+	* longlines.el (longlines-wrap-line): Reorder wrapping to "insert
+	new character, then delete" in order to preserve markers.
+
 2005-11-25  David Ponce  <david@dponce.com>
 
 	* recentf.el (recentf-arrange-by-rule): Handle a special
--- a/lisp/longlines.el	Fri Nov 25 07:57:21 2005 +0000
+++ b/lisp/longlines.el	Fri Nov 25 11:06:30 2005 +0000
@@ -246,17 +246,21 @@
              nil)
     (if (longlines-merge-lines-p)
         (progn (end-of-line)
-               (delete-char 1)
      ;; After certain commands (e.g. kill-line), there may be two
      ;; successive soft newlines in the buffer.  In this case, we
      ;; replace these two newlines by a single space.  Unfortunately,
      ;; this breaks the conservation of (spaces + newlines), so we
      ;; have to fiddle with longlines-wrap-point.
-               (if (or (bolp) (eolp))
-                   (if (> longlines-wrap-point (point))
-                       (setq longlines-wrap-point
-                             (1- longlines-wrap-point)))
-                 (insert-char ?  1))
+	       (if (or (prog1 (bolp) (forward-char 1)) (eolp))
+		   (progn
+		     (delete-char -1)
+		     (if (> longlines-wrap-point (point))
+			 (setq longlines-wrap-point
+			       (1- longlines-wrap-point))))
+		 (insert-before-markers-and-inherit ?\ )
+		 (backward-char 1)
+		 (delete-char -1)
+		 (forward-char 1))
                nil)
       (forward-line 1)
       t)))