Mercurial > emacs
changeset 3730:473c03886fc2
(picture-replace-match): New function.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 14 Jun 1993 18:53:40 +0000 |
parents | b9d69ed987e7 |
children | ca1e006fff42 |
files | lisp/textmodes/picture.el |
diffstat | 1 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/textmodes/picture.el Mon Jun 14 15:35:55 1993 +0000 +++ b/lisp/textmodes/picture.el Mon Jun 14 18:53:40 1993 +0000 @@ -263,6 +263,28 @@ (forward-line -1) (insert contents)))) +;; Like replace-match, but overwrites. +(defun picture-replace-match (newtext fixedcase literal) + (let (ocolumn change pos) + (goto-char (setq pos (match-end 0))) + (setq ocolumn (current-column)) + ;; Make the replacement and undo it, to see how it changes the length. + (let ((buffer-undo-list nil) + list1) + (replace-match newtext fixedcase literal) + (setq change (- (current-column) ocolumn)) + (setq list1 buffer-undo-list) + (while list1 + (setq list1 (primitive-undo 1 list1)))) + (goto-char pos) + (if (> change 0) + (delete-region (point) + (progn + (move-to-column-force (+ change (current-column))) + (point)))) + (replace-match newtext fixedcase literal) + (if (< change 0) + (insert-char ?\ (- change))))) ;; Picture Tabs