;; Copyright (C) 1985, 1986 Free Software Foundation, Inc.
;; Maintainer: FSF
+;; Keywords: abbrev
;; This file is part of GNU Emacs.
(setq last-dabbrevs-abbrev-location nil)
(if (not first)
(progn (undo-boundary)
- (delete-backward-char (length old))
- (insert abbrev)))
+ (search-backward old)
+ (if (eq major-mode 'picture-mode)
+ (picture-replace-match abbrev t 'literal)
+ (replace-match abbrev t 'literal))))
(error (if first
"No dynamic expansion for \"%s\" found."
"No further dynamic expansions for \"%s\" found.")
;; First put back the original abbreviation with its original
;; case pattern.
(save-excursion
- (replace-match abbrev t 'literal))
+ (if (eq major-mode 'picture-mode)
+ (picture-replace-match abbrev t 'literal)
+ (replace-match abbrev t 'literal)))
(search-forward abbrev)
(let ((do-case (and do-case
(string= (substring expansion 1)
;; case pattern.
(save-excursion
(replace-match abbrev t 'literal))
- (search-forward abbrev)
- (replace-match (if do-case (downcase expansion) expansion)
- (not do-case)
- 'literal))
+;;; This used to be necessary, but no longer,
+;;; because now point is preserved correctly above.
+;;; (search-forward abbrev)
+ (if (eq major-mode 'picture-mode)
+ (picture-replace-match (if do-case (downcase expansion) expansion)
+ (not do-case)
+ 'literal)
+ (replace-match (if do-case (downcase expansion) expansion)
+ (not do-case)
+ 'literal)))
;; Save state for re-expand.
(setq last-dabbrevs-abbreviation abbrev)
(setq last-dabbrevs-expansion expansion)
(setq result (downcase result))))))
result)))
-(provide 'dabbrevs)
+(provide 'dabbrev)
;;; dabbrev.el ends here