summaryrefslogtreecommitdiff
path: root/lisp/dabbrev.el
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2003-01-06 01:19:59 +0000
committerRichard M. Stallman <rms@gnu.org>2003-01-06 01:19:59 +0000
commit19c17c4ec58a7326e6394c00e526e614519e71aa (patch)
tree284ab8b390fc1975ec6dd8f0f360462eb4df7605 /lisp/dabbrev.el
parentd77bbdc98d25c66a078e21d9bf785b59e9eabc2b (diff)
downloademacs-19c17c4ec58a7326e6394c00e526e614519e71aa.tar.gz
(dabbrev--substitute-expansion):
Convert all whitespace to single spaces, except when it's carried over from the existing text.
Diffstat (limited to 'lisp/dabbrev.el')
-rw-r--r--lisp/dabbrev.el10
1 files changed, 7 insertions, 3 deletions
diff --git a/lisp/dabbrev.el b/lisp/dabbrev.el
index 9dba5d61ebe..fd8b596d530 100644
--- a/lisp/dabbrev.el
+++ b/lisp/dabbrev.el
@@ -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