# HG changeset patch # User Jay Belanger # Date 1271472445 18000 # Node ID 9b67d5035af2595ed50c0b208ee17aeca507b782 # Parent 6effcd2bae9fc282fe9e793f9a5121921e81802c * calc-ext.el (calc-init-extensions): Add keybinding for 'calc-option'. Add `calc-option-prefix-help' to calc-help autoloads. (calc-inverse): Add "Option" to message, as appropriate. (calc-hyperbolic): Add "Option" to message, as appropriate. (calc-option, calc-is-option): New functions. * calc-help.el (calc-full-help): Add `calc-option-help'. (calc-option-prefix-help): New function. * calc-misc.el (calc-help): Add "Option" entry. * calc.el (calc-local-var-list): Add `calc-option-flag'. (calc-option-flag): New variable. (calc-do): Set `calc-option-flag to nil. (calc-set-mode-line): Add "Opt " as appropriate. diff -r 6effcd2bae9f -r 9b67d5035af2 lisp/ChangeLog --- a/lisp/ChangeLog Fri Apr 16 23:37:59 2010 +0300 +++ b/lisp/ChangeLog Fri Apr 16 21:47:25 2010 -0500 @@ -1,3 +1,21 @@ +2010-04-17 Jay Belanger + + * calc-ext.el (calc-init-extensions): Add keybinding for 'calc-option'. + Add `calc-option-prefix-help' to calc-help autoloads. + (calc-inverse): Add "Option" to message, as appropriate. + (calc-hyperbolic): Add "Option" to message, as appropriate. + (calc-option, calc-is-option): New functions. + + * calc-help.el (calc-full-help): Add `calc-option-help'. + (calc-option-prefix-help): New function. + + * calc-misc.el (calc-help): Add "Option" entry. + + * calc.el (calc-local-var-list): Add `calc-option-flag'. + (calc-option-flag): New variable. + (calc-do): Set `calc-option-flag to nil. + (calc-set-mode-line): Add "Opt " as appropriate. + 2010-04-16 Juri Linkov Move scrolling commands from simple.el to window.el diff -r 6effcd2bae9f -r 9b67d5035af2 lisp/calc/calc-ext.el --- a/lisp/calc/calc-ext.el Fri Apr 16 23:37:59 2010 +0300 +++ b/lisp/calc/calc-ext.el Fri Apr 16 21:47:25 2010 -0500 @@ -104,6 +104,7 @@ (define-key calc-mode-map "J" 'calc-conj) (define-key calc-mode-map "L" 'calc-ln) (define-key calc-mode-map "N" 'calc-eval-num) + (define-key calc-mode-map "O" 'calc-option) (define-key calc-mode-map "P" 'calc-pi) (define-key calc-mode-map "Q" 'calc-sqrt) (define-key calc-mode-map "R" 'calc-round) @@ -1045,7 +1046,7 @@ calc-d-prefix-help calc-describe-function calc-describe-key calc-describe-key-briefly calc-describe-variable calc-f-prefix-help calc-full-help calc-g-prefix-help calc-help-prefix -calc-hyperbolic-prefix-help calc-inv-hyp-prefix-help +calc-hyperbolic-prefix-help calc-inv-hyp-prefix-help calc-option-prefix-help calc-inverse-prefix-help calc-j-prefix-help calc-k-prefix-help calc-m-prefix-help calc-r-prefix-help calc-s-prefix-help calc-t-prefix-help calc-u-prefix-help calc-v-prefix-help) @@ -1408,9 +1409,18 @@ (with-current-buffer calc-main-buffer calc-hyperbolic-flag) calc-hyperbolic-flag)) - (msg (if hyp-flag - "Inverse Hyperbolic..." - "Inverse..."))) + (opt-flag (if (or + (eq major-mode 'calc-keypad-mode) + (eq major-mode 'calc-trail-mode)) + (with-current-buffer calc-main-buffer + calc-option-flag) + calc-option-flag)) + (msg + (cond + ((and opt-flag hyp-flag) "Option Inverse Hyperbolic...") + (hyp-flag "Inverse Hyperbolic...") + (opt-flag "Option Inverse...") + (t "Inverse...")))) (calc-fancy-prefix 'calc-inverse-flag msg n))) (defconst calc-fancy-prefix-map @@ -1489,9 +1499,18 @@ (with-current-buffer calc-main-buffer calc-inverse-flag) calc-inverse-flag)) - (msg (if inv-flag - "Inverse Hyperbolic..." - "Hyperbolic..."))) + (opt-flag (if (or + (eq major-mode 'calc-keypad-mode) + (eq major-mode 'calc-trail-mode)) + (with-current-buffer calc-main-buffer + calc-option-flag) + calc-option-flag)) + (msg + (cond + ((and opt-flag inv-flag) "Option Inverse Hyperbolic...") + (opt-flag "Option Hyperbolic...") + (inv-flag "Inverse Hyperbolic...") + (t "Hyperbolic...")))) (calc-fancy-prefix 'calc-hyperbolic-flag msg n))) (defun calc-hyperbolic-func () @@ -1504,6 +1523,31 @@ (defun calc-is-hyperbolic () calc-hyperbolic-flag) +(defun calc-option (&optional n) + (interactive "P") + (let* ((inv-flag (if (or + (eq major-mode 'calc-keypad-mode) + (eq major-mode 'calc-trail-mode)) + (with-current-buffer calc-main-buffer + calc-inverse-flag) + calc-inverse-flag)) + (hyp-flag (if (or + (eq major-mode 'calc-keypad-mode) + (eq major-mode 'calc-trail-mode)) + (with-current-buffer calc-main-buffer + calc-hyperbolic-flag) + calc-hyperbolic-flag)) + (msg + (cond + ((and hyp-flag inv-flag) "Option Inverse Hyperbolic...") + (hyp-flag "Option Hyperbolic...") + (inv-flag "Option Inverse...") + (t "Option...")))) + (calc-fancy-prefix 'calc-option-flag msg n))) + +(defun calc-is-option () + calc-option-flag) + (defun calc-keep-args (&optional n) (interactive "P") (calc-fancy-prefix 'calc-keep-args-flag "Keep args..." n)) diff -r 6effcd2bae9f -r 9b67d5035af2 lisp/calc/calc-help.el --- a/lisp/calc/calc-help.el Fri Apr 16 23:37:59 2010 +0300 +++ b/lisp/calc/calc-help.el Fri Apr 16 21:47:25 2010 -0500 @@ -446,6 +446,7 @@ '(calc-inverse-prefix-help calc-hyperbolic-prefix-help calc-inv-hyp-prefix-help + calc-option-prefix-help calc-a-prefix-help calc-b-prefix-help calc-c-prefix-help @@ -512,6 +513,11 @@ "I H + a S (general invert func); v h (rtail)") "inverse-hyperbolic" nil)) +(defun calc-option-prefix-help () + (interactive) + (calc-do-prefix-help + '("") + "option" nil)) (defun calc-f-prefix-help () (interactive) diff -r 6effcd2bae9f -r 9b67d5035af2 lisp/calc/calc-misc.el --- a/lisp/calc/calc-misc.el Fri Apr 16 23:37:59 2010 +0300 +++ b/lisp/calc/calc-misc.el Fri Apr 16 21:47:25 2010 -0500 @@ -35,6 +35,7 @@ (declare-function calc-inv-hyp-prefix-help "calc-help" ()) (declare-function calc-inverse-prefix-help "calc-help" ()) (declare-function calc-hyperbolic-prefix-help "calc-help" ()) +(declare-function calc-option-prefix-help "calc-help" ()) (declare-function calc-explain-why "calc-stuff" (why &optional more)) (declare-function calc-clear-command-flag "calc-ext" (f)) (declare-function calc-roll-down-with-selections "calc-sel" (n m)) @@ -219,7 +220,7 @@ (let ((msgs '("Press `h' for complete help; press `?' repeatedly for a summary" "Letter keys: Negate; Precision; Yank; Why; Xtended cmd; Quit" - "Letter keys: SHIFT + Undo, reDo; Keep-args; Inverse, Hyperbolic" + "Letter keys: SHIFT + Undo, reDo; Keep-args; Inverse, Hyperbolic, Option" "Letter keys: SHIFT + sQrt; Sin, Cos, Tan; Exp, Ln, logB" "Letter keys: SHIFT + Floor, Round; Abs, conJ, arG; Pi" "Letter keys: SHIFT + Num-eval; More-recn; eXec-kbd-macro" @@ -245,20 +246,22 @@ (calc-inv-hyp-prefix-help) (calc-inverse-prefix-help)) (calc-hyperbolic-prefix-help)) - (setq calc-help-phase - (if (eq this-command last-command) - (% (1+ calc-help-phase) (1+ (length msgs))) - 0)) - (let ((msg (nth calc-help-phase msgs))) - (message "%s" (if msg - (concat msg ":" - (make-string (- (apply 'max - (mapcar 'length - msgs)) - (length msg)) 32) - " [?=MORE]") - ""))))))) - + (if calc-option-flag + (calc-option-prefix-help) + (setq calc-help-phase + (if (eq this-command last-command) + (% (1+ calc-help-phase) (1+ (length msgs))) + 0)) + (let ((msg (nth calc-help-phase msgs))) + (message "%s" (if msg + (concat msg ":" + (make-string (- (apply 'max + (mapcar 'length + msgs)) + (length msg)) 32) + " [?=MORE]") + "")))))))) + diff -r 6effcd2bae9f -r 9b67d5035af2 lisp/calc/calc.el --- a/lisp/calc/calc.el Fri Apr 16 23:37:59 2010 +0300 +++ b/lisp/calc/calc.el Fri Apr 16 21:47:25 2010 -0500 @@ -797,6 +797,7 @@ calc-matrix-mode calc-inverse-flag calc-hyperbolic-flag + calc-option-flag calc-keep-args-flag calc-angle-mode calc-number-radix @@ -926,6 +927,8 @@ "If non-nil, next operation is Inverse.") (defvar calc-hyperbolic-flag nil "If non-nil, next operation is Hyperbolic.") +(defvar calc-option-flag nil + "If non-nil, next operation has Optional behavior.") (defvar calc-keep-args-flag nil "If non-nil, next operation should not remove its arguments from stack.") (defvar calc-function-open "(" @@ -1619,6 +1622,7 @@ (calc-select-buffer) (setq calc-inverse-flag nil calc-hyperbolic-flag nil + calc-option-flag nil calc-keep-args-flag nil))) (when (memq 'do-edit calc-command-flags) (switch-to-buffer (get-buffer-create "*Calc Edit*"))) @@ -1757,6 +1761,7 @@ (> (calc-stack-size) 0) (calc-top 1 'sel)) "Sel " "") (if calc-display-dirty "Dirty " "") + (if calc-option-flag "Opt " "") (if calc-inverse-flag "Inv " "") (if calc-hyperbolic-flag "Hyp " "") (if calc-keep-args-flag "Keep " "")