From 014690de705b6be7c55aa0b9ea85694c4fa1fd73 Mon Sep 17 00:00:00 2001 From: Jay Belanger Date: Sat, 16 Nov 2013 22:22:24 -0600 Subject: [PATCH] * calc/calc.el (calc-context-sensitive-enter): New variable. (calc-enter): Use `calc-context-sensitive-enter'. * doc/misc/calc.texi (Customizing Calc): Mention the new variable `calc-context-sensitive-enter'. --- doc/misc/ChangeLog | 5 +++++ doc/misc/calc.texi | 8 ++++++++ lisp/ChangeLog | 5 +++++ lisp/calc/calc.el | 14 ++++++++++++-- 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 + + * calc.texi (Customizing Calc): Mention new variable + `calc-context-sensitive-enter'. + 2013-11-12 Aaron Ecay * 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 + + * calc/calc.el (calc-context-sensitive-enter): New variable. + (calc-enter): Use `calc-context-sensitive-enter'. + 2013-11-16 Teodor Zlatanov * 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") -- 2.39.2