summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/misc/ChangeLog5
-rw-r--r--doc/misc/calc.texi8
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/calc/calc.el14
4 files changed, 30 insertions, 2 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog
index 976922a3978..ca4169316c5 100644
--- a/doc/misc/ChangeLog
+++ b/doc/misc/ChangeLog
@@ -1,3 +1,8 @@
+2013-11-17 Jay Belanger <jay.p.belanger@gmail.com>
+
+ * calc.texi (Customizing Calc): Mention new variable
+ `calc-context-sensitive-enter'.
+
2013-11-12 Aaron Ecay <aaronecay@gmail.com>
* org.texi (Exporting code blocks): Document the 'inline-only
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 04160eafad0..0154c82750a 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -35696,6 +35696,14 @@ have different dimensions. The default value of @code{calc-ensure-consistent-uni
is @code{nil}.
@end defvar
+@defvar calc-context-sensitive-enter
+The command @code{calc-enter} will typically duplicate the top of the
+stack. If @code{calc-context-sensitive-enter} is non-@code{nil},
+then the @code{calc-enter} will copy the element at the cursor to the
+top of the stack. The default value of
+@code{calc-context-sensitive-enter} is @code{nil}.
+@end defvar
+
@defvar calc-undo-length
The variable @code{calc-undo-length} determines the number of undo
steps that Calc will keep track of when @code{calc-quit} is called.
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")