]> git.eshelyaron.com Git - emacs.git/commitdiff
(dabbrev--substitute-expansion):
authorRichard M. Stallman <rms@gnu.org>
Mon, 6 Jan 2003 01:19:59 +0000 (01:19 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 6 Jan 2003 01:19:59 +0000 (01:19 +0000)
Convert all whitespace to single spaces,
except when it's carried over from the existing text.

lisp/dabbrev.el

index 9dba5d61ebed7385ecf95588d5fd0a40076c2952..fd8b596d5301ed58cc9ddbdbe66e86b1d86e6359 100644 (file)
@@ -926,10 +926,14 @@ to record whether we upcased the expansion, downcased it, or did neither."
                    (cond ((equal abbrev (upcase abbrev)) 'upcase)
                          ((equal abbrev (downcase abbrev)) 'downcase)))))
 
-    ;; Convert newlines to spaces.
+    ;; Convert whitespace to single spaces.
     (if dabbrev--eliminate-newlines
-       (while (string-match "\n" expansion)
-         (setq expansion (replace-match " " nil nil expansion))))
+       ;; Start searching at end of ABBREV so that any whitespace
+       ;; carried over from the existing text is not changed.
+       (let ((pos (length abbrev)))
+         (while (string-match "[\n \t]+" expansion pos)
+           (setq pos (1+ (match-beginning 0)))
+           (setq expansion (replace-match " " nil nil expansion)))))
 
     (if old
        (save-excursion