(calc-edit-top): New variable.
(calc-edit-mode): Set calc-edit-top to be the beginning of the edited object. Change header properties. (calc-edit-finish, calc-edit-finish-stack-object) (calc-edit-show-buffer): Use calc-edit-top to find the beginning of the edited object.
This commit is contained in:
parent
72e53dcd41
commit
f57a096206
1 changed files with 7 additions and 9 deletions
|
|
@ -430,6 +430,7 @@
|
|||
(defvar calc-edit-handler)
|
||||
(defvar calc-restore-trail)
|
||||
(defvar calc-allow-ret)
|
||||
(defvar calc-edit-top)
|
||||
|
||||
(defun calc-edit-mode (&optional handler allow-ret title)
|
||||
"Calculator editing mode. Press RET, LFD, or C-c C-c to finish.
|
||||
|
|
@ -470,7 +471,9 @@ To cancel the edit, simply kill the *Calc Edit* buffer."
|
|||
"Press `C-c C-c'"
|
||||
(if allow-ret "" " or RET")
|
||||
" to finish, `C-x k RET' to cancel.\n\n")
|
||||
'font-lock-face 'italic))))
|
||||
'font-lock-face 'italic 'read-only t 'rear-nonsticky t 'front-sticky t))
|
||||
(make-local-variable 'calc-edit-top)
|
||||
(setq calc-edit-top (point))))
|
||||
(put 'calc-edit-mode 'mode-class 'special)
|
||||
|
||||
(defun calc-show-edit-buffer ()
|
||||
|
|
@ -487,8 +490,7 @@ To cancel the edit, simply kill the *Calc Edit* buffer."
|
|||
(if win
|
||||
(delete-window win))))
|
||||
(set-buffer-modified-p nil)
|
||||
(goto-char (point-min))
|
||||
(forward-line 2)))
|
||||
(goto-char calc-edit-top)))
|
||||
|
||||
(defun calc-edit-return ()
|
||||
(interactive)
|
||||
|
|
@ -522,11 +524,7 @@ To cancel the edit, simply kill the *Calc Edit* buffer."
|
|||
(set-buffer original)
|
||||
(not (eq major-mode 'calc-mode))))
|
||||
(error "Original calculator buffer has been corrupted")))
|
||||
(goto-char (point-min))
|
||||
(when (looking-at "Calc Edit\\|Editing ")
|
||||
(forward-line 1))
|
||||
(if (looking-at "^ *$")
|
||||
(forward-line 1))
|
||||
(goto-char calc-edit-top)
|
||||
(if (buffer-modified-p)
|
||||
(eval calc-edit-handler))
|
||||
(if one-window
|
||||
|
|
@ -551,7 +549,7 @@ To cancel the edit, simply kill the *Calc Edit* buffer."
|
|||
|
||||
(defun calc-finish-stack-edit (num)
|
||||
(let ((buf (current-buffer))
|
||||
(str (buffer-substring (point) (point-max)))
|
||||
(str (buffer-substring calc-edit-top (point-max)))
|
||||
(start (point))
|
||||
pos)
|
||||
(if (and (integerp num) (> num 1))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue