diff options
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 5 | ||||
-rw-r--r-- | lisp/calc/calc.el | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2b4f941048c..faa2243ca3b 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2013-11-17 Jay Belanger <jay.p.belanger@gmail.com> + + * calc/calc.el (calc-context-sensitive-enter): New variable. + (calc-enter): Use `calc-context-sensitive-enter'. + 2013-11-16 Teodor Zlatanov <tzz@lifelogs.com> * progmodes/cfengine.el: Version bump. diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 2795a177a41..72d456957c7 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -146,6 +146,7 @@ (declare-function calc-set-language "calc-lang" (lang &optional option no-refresh)) (declare-function calc-edit-finish "calc-yank" (&optional keep)) (declare-function calc-edit-cancel "calc-yank" ()) +(declare-function calc-locate-cursor-element "calc-yank" (pt)) (declare-function calc-do-quick-calc "calc-aent" ()) (declare-function calc-do-calc-eval "calc-aent" (str separator args)) (declare-function calc-do-keypad "calc-keypd" (&optional full-display interactive)) @@ -426,6 +427,13 @@ when converting units." :version "24.3" :type 'boolean) +(defcustom calc-context-sensitive-enter + nil + "If non-nil, the stack element under the cursor will be copied by `calc-enter'." + :group 'calc + :version "24.4" + :type 'boolean) + (defcustom calc-undo-length 100 "The number of undo steps that will be preserved when Calc is quit." @@ -2257,8 +2265,10 @@ the United States." ((= n 0) (calc-push-list (calc-top-list (calc-stack-size)))) (t - (calc-push-list (calc-top-list n)))))) - + (if (not calc-context-sensitive-enter) + (calc-push-list (calc-top-list n)) + (let ((num (max 1 (calc-locate-cursor-element (point))))) + (calc-push-list (calc-top-list n num)))))))) (defun calc-pop (n) (interactive "P") |