From e5ad37ee8d4044d0feeecd97aca2b254b835c1d1 Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Fri, 25 Nov 2005 11:06:30 +0000 Subject: [PATCH] (longlines-wrap-line): Reorder wrapping to "insert new character, then delete" in order to preserve markers. --- lisp/ChangeLog | 5 +++++ lisp/longlines.el | 16 ++++++++++------ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d2049ed3254..a295c279de0 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2005-11-25 David Kastrup + + * longlines.el (longlines-wrap-line): Reorder wrapping to "insert + new character, then delete" in order to preserve markers. + 2005-11-25 David Ponce * recentf.el (recentf-arrange-by-rule): Handle a special diff --git a/lisp/longlines.el b/lisp/longlines.el index 93f3daa4ee8..37dadcd43d1 100644 --- a/lisp/longlines.el +++ b/lisp/longlines.el @@ -246,17 +246,21 @@ not need to be wrapped, move point to the next line and return t." 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))) -- 2.39.2