Show
Ignore:
Timestamp:
2006年07月29日 07時48分34秒 (2 years ago)
Author:
miyoshi
Message:

Sync up with Emacs CVS HEAD.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/calc/calc-aent.el

    r4037 r4131  
    3333(require 'calc-macs) 
    3434 
     35(defvar calc-quick-calc-history nil 
     36  "The history list for quick-calc.") 
     37 
    3538(defun calc-do-quick-calc () 
     39  (require 'calc-ext) 
    3640  (calc-check-defines) 
    3741  (if (eq major-mode 'calc-mode) 
     
    4650               (calc-language (if (memq calc-language '(nil big)) 
    4751                                  '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))) 
    6054          (when (and (= (length alg-exp) 1) 
    6155                     (eq (car-safe (car alg-exp)) 'calcFunc-assign) 
    6256                     (= (length (car alg-exp)) 3) 
    6357                     (eq (car-safe (nth 1 (car alg-exp))) 'var)) 
    64             (require 'calc-ext) 
    6558            (set (nth 2 (nth 1 (car alg-exp))) (nth 2 (car alg-exp))) 
    6659            (calc-refresh-evaltos (nth 2 (nth 1 (car alg-exp)))) 
     
    265258     (calc-alg-entry (and auto (char-to-string last-command-char)))))) 
    266259 
     260(defvar calc-alg-entry-history nil 
     261  "History for algebraic entry.") 
     262 
    267263(defun calc-alg-entry (&optional initial prompt) 
    268264  (let* ((sel-mode nil) 
     
    271267         (calc-dollar-used 0) 
    272268         (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))) 
    274270    (if (stringp alg-exp) 
    275271        (progn 
     
    302298(defvar calc-alg-exp) 
    303299 
    304 (defun calc-do-alg-entry (&optional initial prompt no-normalize
     300(defun calc-do-alg-entry (&optional initial prompt no-normalize history
    305301  (let* ((calc-buffer (current-buffer)) 
    306302         (blink-paren-function 'calcAlg-blink-matching-open) 
     
    320316    (if (eq calc-algebraic-mode 'total) 
    321317        (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) 
    323319      (define-key calc-alg-ent-map "\em" 'calcAlg-mod) 
    324320      (define-key calc-alg-ent-map "\e=" 'calcAlg-equals) 
    325321      (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) 
    326324      (define-key calc-alg-ent-map "\e%" 'self-insert-command)) 
    327325    (setq calc-aborted-prefix nil) 
    328326    (let ((buf (read-from-minibuffer (or prompt "Algebraic: ") 
    329327                                     (or initial "") 
    330                                      calc-alg-ent-map nil))) 
     328                                     calc-alg-ent-map nil history))) 
    331329      (when (eq calc-alg-exp 'error) 
    332330        (when (eq (car-safe (setq calc-alg-exp (math-read-exprs buf))) 'error) 
     
    356354  (interactive) 
    357355  (if (calc-minibuffer-contains "\\'") 
    358       (if calc-previous-alg-entry 
    359           (insert calc-previous-alg-entry) 
    360         (beep)) 
     356      (previous-history-element 1) 
    361357    (insert "'"))) 
    362358 
     
    385381      (insert "`") 
    386382    (setq calc-alg-exp (minibuffer-contents)) 
    387     (and (> (length calc-alg-exp) 0) (setq calc-previous-alg-entry calc-alg-exp)) 
    388383    (exit-minibuffer))) 
    389384 
     
    408403                        '((incomplete vec)) 
    409404                      exp)) 
    410       (and (> (length str) 0) (setq calc-previous-alg-entry str)) 
    411405      (exit-minibuffer)))) 
    412406