Changeset 4131 for trunk/lisp/calc/calc-aent.el
- Timestamp:
- 2006年07月29日 07時48分34秒 (2 years ago)
- Files:
-
- trunk/lisp/calc/calc-aent.el (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/lisp/calc/calc-aent.el
r4037 r4131 33 33 (require 'calc-macs) 34 34 35 (defvar calc-quick-calc-history nil 36 "The history list for quick-calc.") 37 35 38 (defun calc-do-quick-calc () 39 (require 'calc-ext) 36 40 (calc-check-defines) 37 41 (if (eq major-mode 'calc-mode) … … 46 50 (calc-language (if (memq calc-language '(nil big)) 47 51 'flat calc-language)) 48 (entry (calc-do-alg-entry "" "Quick calc: " t)) 49 (alg-exp (mapcar (function 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))) 52 (entry (calc-do-alg-entry "" "Quick calc: " t 'calc-quick-calc-history)) 53 (alg-exp (mapcar 'math-evaluate-expr entry))) 60 54 (when (and (= (length alg-exp) 1) 61 55 (eq (car-safe (car alg-exp)) 'calcFunc-assign) 62 56 (= (length (car alg-exp)) 3) 63 57 (eq (car-safe (nth 1 (car alg-exp))) 'var)) 64 (require 'calc-ext)65 58 (set (nth 2 (nth 1 (car alg-exp))) (nth 2 (car alg-exp))) 66 59 (calc-refresh-evaltos (nth 2 (nth 1 (car alg-exp)))) … … 265 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 263 (defun calc-alg-entry (&optional initial prompt) 268 264 (let* ((sel-mode nil) … … 271 267 (calc-dollar-used 0) 272 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 270 (if (stringp alg-exp) 275 271 (progn … … 302 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 301 (let* ((calc-buffer (current-buffer)) 306 302 (blink-paren-function 'calcAlg-blink-matching-open) … … 320 316 (if (eq calc-algebraic-mode 'total) 321 317 (define-key calc-alg-ent-map "\e" calc-alg-ent-esc-map) 322 (define-key calc-alg-ent-map "\e p" 'calcAlg-plus-minus)318 (define-key calc-alg-ent-map "\e+" 'calcAlg-plus-minus) 323 319 (define-key calc-alg-ent-map "\em" 'calcAlg-mod) 324 320 (define-key calc-alg-ent-map "\e=" 'calcAlg-equals) 325 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 324 (define-key calc-alg-ent-map "\e%" 'self-insert-command)) 327 325 (setq calc-aborted-prefix nil) 328 326 (let ((buf (read-from-minibuffer (or prompt "Algebraic: ") 329 327 (or initial "") 330 calc-alg-ent-map nil )))328 calc-alg-ent-map nil history))) 331 329 (when (eq calc-alg-exp 'error) 332 330 (when (eq (car-safe (setq calc-alg-exp (math-read-exprs buf))) 'error) … … 356 354 (interactive) 357 355 (if (calc-minibuffer-contains "\\'") 358 (if calc-previous-alg-entry 359 (insert calc-previous-alg-entry) 360 (beep)) 356 (previous-history-element 1) 361 357 (insert "'"))) 362 358 … … 385 381 (insert "`") 386 382 (setq calc-alg-exp (minibuffer-contents)) 387 (and (> (length calc-alg-exp) 0) (setq calc-previous-alg-entry calc-alg-exp))388 383 (exit-minibuffer))) 389 384 … … 408 403 '((incomplete vec)) 409 404 exp)) 410 (and (> (length str) 0) (setq calc-previous-alg-entry str))411 405 (exit-minibuffer)))) 412 406
