summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/calc/calc.el14
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")