diff options
| author | Jay Belanger | 2006-07-20 20:23:06 +0000 |
|---|---|---|
| committer | Jay Belanger | 2006-07-20 20:23:06 +0000 |
| commit | 0b504d64af088df57225b308b34b96b24b1fb6c1 (patch) | |
| tree | fb4defd70cfe4354eef9057a35471a4f693dd6f0 | |
| parent | 8190210bf94fb940b74c80f6128fa5e9d4e865ed (diff) | |
| download | emacs-0b504d64af088df57225b308b34b96b24b1fb6c1.tar.gz emacs-0b504d64af088df57225b308b34b96b24b1fb6c1.zip | |
(calcAlg-edit, calcAlg-enter): Remove reference to calc-previous-alg-entry.
(calcAlg-previous): Use previous-history-element instead of
calc-previous-alg-entry.
(calc-do-alg-entry): Add history to reading from minibuffer.
Change keybinding for calcAlg-plus-minus, add keybindings for
previous-history-element and next-history-element.
(calc-alg-entry-history, calc-quick-calc-history): New variables.
(calc-do-quick-calc): Use calc-quick-calc-history.
Remove reference to calc-previous-alg-entry.
(calc-alg-entry): Use calc-alg-entry-history.
| -rw-r--r-- | lisp/calc/calc-aent.el | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/lisp/calc/calc-aent.el b/lisp/calc/calc-aent.el index fadfabce663..fe5bf4cf9e0 100644 --- a/lisp/calc/calc-aent.el +++ b/lisp/calc/calc-aent.el | |||
| @@ -32,7 +32,11 @@ | |||
| 32 | (require 'calc) | 32 | (require 'calc) |
| 33 | (require 'calc-macs) | 33 | (require 'calc-macs) |
| 34 | 34 | ||
| 35 | (defvar calc-quick-calc-history nil | ||
| 36 | "The history list for quick-calc.") | ||
| 37 | |||
| 35 | (defun calc-do-quick-calc () | 38 | (defun calc-do-quick-calc () |
| 39 | (require 'calc-ext) | ||
| 36 | (calc-check-defines) | 40 | (calc-check-defines) |
| 37 | (if (eq major-mode 'calc-mode) | 41 | (if (eq major-mode 'calc-mode) |
| 38 | (calc-algebraic-entry t) | 42 | (calc-algebraic-entry t) |
| @@ -45,23 +49,12 @@ | |||
| 45 | (enable-recursive-minibuffers t) | 49 | (enable-recursive-minibuffers t) |
| 46 | (calc-language (if (memq calc-language '(nil big)) | 50 | (calc-language (if (memq calc-language '(nil big)) |
| 47 | 'flat calc-language)) | 51 | 'flat calc-language)) |
| 48 | (entry (calc-do-alg-entry "" "Quick calc: " t)) | 52 | (entry (calc-do-alg-entry "" "Quick calc: " t 'calc-quick-calc-history)) |
| 49 | (alg-exp (mapcar (function | 53 | (alg-exp (mapcar 'math-evaluate-expr entry))) |
| 50 | (lambda (x) | ||
| 51 | (if (and (not (featurep 'calc-ext)) | ||
| 52 | calc-previous-alg-entry | ||
| 53 | (string-match | ||
| 54 | "\\`[-0-9._+*/^() ]+\\'" | ||
| 55 | calc-previous-alg-entry)) | ||
| 56 | (calc-normalize x) | ||
| 57 | (require 'calc-ext) | ||
| 58 | (math-evaluate-expr x)))) | ||
| 59 | entry))) | ||
| 60 | (when (and (= (length alg-exp) 1) | 54 | (when (and (= (length alg-exp) 1) |
| 61 | (eq (car-safe (car alg-exp)) 'calcFunc-assign) | 55 | (eq (car-safe (car alg-exp)) 'calcFunc-assign) |
| 62 | (= (length (car alg-exp)) 3) | 56 | (= (length (car alg-exp)) 3) |
| 63 | (eq (car-safe (nth 1 (car alg-exp))) 'var)) | 57 | (eq (car-safe (nth 1 (car alg-exp))) 'var)) |
| 64 | (require 'calc-ext) | ||
| 65 | (set (nth 2 (nth 1 (car alg-exp))) (nth 2 (car alg-exp))) | 58 | (set (nth 2 (nth 1 (car alg-exp))) (nth 2 (car alg-exp))) |
| 66 | (calc-refresh-evaltos (nth 2 (nth 1 (car alg-exp)))) | 59 | (calc-refresh-evaltos (nth 2 (nth 1 (car alg-exp)))) |
| 67 | (setq alg-exp (list (nth 2 (car alg-exp))))) | 60 | (setq alg-exp (list (nth 2 (car alg-exp))))) |
| @@ -264,13 +257,16 @@ T means abort and give an error message.") | |||
| 264 | (math-expr-opers (if prefix math-standard-opers math-expr-opers))) | 257 | (math-expr-opers (if prefix math-standard-opers math-expr-opers))) |
| 265 | (calc-alg-entry (and auto (char-to-string last-command-char)))))) | 258 | (calc-alg-entry (and auto (char-to-string last-command-char)))))) |
| 266 | 259 | ||
| 260 | (defvar calc-alg-entry-history nil | ||
| 261 | "History for algebraic entry.") | ||
| 262 | |||
| 267 | (defun calc-alg-entry (&optional initial prompt) | 263 | (defun calc-alg-entry (&optional initial prompt) |
| 268 | (let* ((sel-mode nil) | 264 | (let* ((sel-mode nil) |
| 269 | (calc-dollar-values (mapcar 'calc-get-stack-element | 265 | (calc-dollar-values (mapcar 'calc-get-stack-element |
| 270 | (nthcdr calc-stack-top calc-stack))) | 266 | (nthcdr calc-stack-top calc-stack))) |
| 271 | (calc-dollar-used 0) | 267 | (calc-dollar-used 0) |
| 272 | (calc-plain-entry t) | 268 | (calc-plain-entry t) |
| 273 | (alg-exp (calc-do-alg-entry initial prompt t))) | 269 | (alg-exp (calc-do-alg-entry initial prompt t 'calc-alg-entry-history))) |
| 274 | (if (stringp alg-exp) | 270 | (if (stringp alg-exp) |
| 275 | (progn | 271 | (progn |
| 276 | (require 'calc-ext) | 272 | (require 'calc-ext) |
| @@ -301,7 +297,7 @@ T means abort and give an error message.") | |||
| 301 | 297 | ||
| 302 | (defvar calc-alg-exp) | 298 | (defvar calc-alg-exp) |
| 303 | 299 | ||
| 304 | (defun calc-do-alg-entry (&optional initial prompt no-normalize) | 300 | (defun calc-do-alg-entry (&optional initial prompt no-normalize history) |
| 305 | (let* ((calc-buffer (current-buffer)) | 301 | (let* ((calc-buffer (current-buffer)) |
| 306 | (blink-paren-function 'calcAlg-blink-matching-open) | 302 | (blink-paren-function 'calcAlg-blink-matching-open) |
| 307 | (calc-alg-exp 'error)) | 303 | (calc-alg-exp 'error)) |
| @@ -319,15 +315,17 @@ T means abort and give an error message.") | |||
| 319 | (define-key calc-alg-ent-map "\e" nil) | 315 | (define-key calc-alg-ent-map "\e" nil) |
| 320 | (if (eq calc-algebraic-mode 'total) | 316 | (if (eq calc-algebraic-mode 'total) |
| 321 | (define-key calc-alg-ent-map "\e" calc-alg-ent-esc-map) | 317 | (define-key calc-alg-ent-map "\e" calc-alg-ent-esc-map) |
| 322 | (define-key calc-alg-ent-map "\ep" 'calcAlg-plus-minus) | 318 | (define-key calc-alg-ent-map "\e+" 'calcAlg-plus-minus) |
| 323 | (define-key calc-alg-ent-map "\em" 'calcAlg-mod) | 319 | (define-key calc-alg-ent-map "\em" 'calcAlg-mod) |
| 324 | (define-key calc-alg-ent-map "\e=" 'calcAlg-equals) | 320 | (define-key calc-alg-ent-map "\e=" 'calcAlg-equals) |
| 325 | (define-key calc-alg-ent-map "\e\r" 'calcAlg-equals) | 321 | (define-key calc-alg-ent-map "\e\r" 'calcAlg-equals) |
| 322 | (define-key calc-alg-ent-map "\ep" 'previous-history-element) | ||
| 323 | (define-key calc-alg-ent-map "\en" 'next-history-element) | ||
| 326 | (define-key calc-alg-ent-map "\e%" 'self-insert-command)) | 324 | (define-key calc-alg-ent-map "\e%" 'self-insert-command)) |
| 327 | (setq calc-aborted-prefix nil) | 325 | (setq calc-aborted-prefix nil) |
| 328 | (let ((buf (read-from-minibuffer (or prompt "Algebraic: ") | 326 | (let ((buf (read-from-minibuffer (or prompt "Algebraic: ") |
| 329 | (or initial "") | 327 | (or initial "") |
| 330 | calc-alg-ent-map nil))) | 328 | calc-alg-ent-map nil history))) |
| 331 | (when (eq calc-alg-exp 'error) | 329 | (when (eq calc-alg-exp 'error) |
| 332 | (when (eq (car-safe (setq calc-alg-exp (math-read-exprs buf))) 'error) | 330 | (when (eq (car-safe (setq calc-alg-exp (math-read-exprs buf))) 'error) |
| 333 | (setq calc-alg-exp nil))) | 331 | (setq calc-alg-exp nil))) |
| @@ -355,9 +353,7 @@ T means abort and give an error message.") | |||
| 355 | (defun calcAlg-previous () | 353 | (defun calcAlg-previous () |
| 356 | (interactive) | 354 | (interactive) |
| 357 | (if (calc-minibuffer-contains "\\'") | 355 | (if (calc-minibuffer-contains "\\'") |
| 358 | (if calc-previous-alg-entry | 356 | (previous-history-element 1) |
| 359 | (insert calc-previous-alg-entry) | ||
| 360 | (beep)) | ||
| 361 | (insert "'"))) | 357 | (insert "'"))) |
| 362 | 358 | ||
| 363 | (defun calcAlg-equals () | 359 | (defun calcAlg-equals () |
| @@ -384,7 +380,6 @@ T means abort and give an error message.") | |||
| 384 | "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'")) | 380 | "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'")) |
| 385 | (insert "`") | 381 | (insert "`") |
| 386 | (setq calc-alg-exp (minibuffer-contents)) | 382 | (setq calc-alg-exp (minibuffer-contents)) |
| 387 | (and (> (length calc-alg-exp) 0) (setq calc-previous-alg-entry calc-alg-exp)) | ||
| 388 | (exit-minibuffer))) | 383 | (exit-minibuffer))) |
| 389 | 384 | ||
| 390 | (defvar calc-buffer) | 385 | (defvar calc-buffer) |
| @@ -407,7 +402,6 @@ T means abort and give an error message.") | |||
| 407 | (setq calc-alg-exp (if (calc-minibuffer-contains "\\` *\\[ *\\'") | 402 | (setq calc-alg-exp (if (calc-minibuffer-contains "\\` *\\[ *\\'") |
| 408 | '((incomplete vec)) | 403 | '((incomplete vec)) |
| 409 | exp)) | 404 | exp)) |
| 410 | (and (> (length str) 0) (setq calc-previous-alg-entry str)) | ||
| 411 | (exit-minibuffer)))) | 405 | (exit-minibuffer)))) |
| 412 | 406 | ||
| 413 | (defun calcAlg-blink-matching-open () | 407 | (defun calcAlg-blink-matching-open () |