X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/04587c6eb4e74308ca969a6a73b03275ccf24dba..acaf905b1130aae80fa59d2c861ffd4c8eb75486:/lisp/calc/calc-store.el diff --git a/lisp/calc/calc-store.el b/lisp/calc/calc-store.el index fa61acb0f5..80d355ed5f 100644 --- a/lisp/calc/calc-store.el +++ b/lisp/calc/calc-store.el @@ -1,26 +1,24 @@ ;;; calc-store.el --- value storage functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2004 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie -;; Maintainer: Jay Belanger +;; Maintainer: Jay Belanger ;; This file is part of GNU Emacs. +;; GNU Emacs is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + ;; GNU Emacs is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY. No author or distributor -;; accepts responsibility to anyone for the consequences of using it -;; or for whether it serves any particular purpose or works at all, -;; unless he says so in writing. Refer to the GNU Emacs General Public -;; License for full details. - -;; Everyone is granted permission to copy, modify and redistribute -;; GNU Emacs, but only under the conditions described in the -;; GNU Emacs General Public License. A copy of this license is -;; supposed to have been given to you along with GNU Emacs so you -;; can know your rights and responsibilities. It should be in a -;; file named COPYING. Among other things, the copyright notice -;; and this notice must be preserved on all copies. +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -70,7 +68,7 @@ (if (not (cdr var)) "") (if (not (cdr var)) 1)))) (message (concat "Stored to variable \"%s\"" msg) - (calc-var-name var))) + (calc-var-name (car (car var))))) (setq var (cdr var)))))))) (defun calc-store-plus (&optional var) @@ -126,7 +124,7 @@ (cond ((and (memq var '(var-e var-i var-pi var-phi var-gamma)) (eq (car-safe old) 'special-const)) - (setq msg (format " (Note: Built-in definition of %s has been lost)" + (setq msg (format " (Note: Built-in definition of %s has been lost)" (calc-var-name var)))) ((and (memq var '(var-inf var-uinf var-nan)) (null old)) @@ -171,34 +169,39 @@ () (setq calc-var-name-map (copy-keymap minibuffer-local-completion-map)) (define-key calc-var-name-map " " 'self-insert-command) - (mapcar (function - (lambda (x) - (define-key calc-var-name-map (char-to-string x) - 'calcVar-digit))) - "0123456789") - (mapcar (function - (lambda (x) - (define-key calc-var-name-map (char-to-string x) - 'calcVar-oper))) - "+-*/^|")) + (mapc (function + (lambda (x) + (define-key calc-var-name-map (char-to-string x) + 'calcVar-digit))) + "0123456789") + (mapc (function + (lambda (x) + (define-key calc-var-name-map (char-to-string x) + 'calcVar-oper))) + "+-*/^|")) (defvar calc-store-opers) +(defvar calc-read-var-name-history nil + "History for reading variable names.") + (defun calc-read-var-name (prompt &optional calc-store-opers) (setq calc-given-value nil calc-aborted-prefix nil) - (let ((var (concat + (let ((var (concat "var-" (let ((minibuffer-completion-table - (mapcar (lambda (x) (substring x 4)) + (mapcar (lambda (x) (substring x 4)) (all-completions "var-" obarray))) - (minibuffer-completion-predicate + (minibuffer-completion-predicate (lambda (x) (boundp (intern (concat "var-" x))))) (minibuffer-completion-confirm t)) - (read-from-minibuffer prompt nil calc-var-name-map nil))))) + (read-from-minibuffer + prompt nil calc-var-name-map nil + 'calc-read-var-name-history))))) (setq calc-aborted-prefix "") (and (not (equal var "var-")) - (if (string-match "\\`\\([-a-zA-Z0-9]+\\) *:?=" var) + (if (string-match "\\`\\([-a-zA-Zα-ωΑ-Ω0-9]+\\) *:?=" var) (if (null calc-given-value-flag) (error "Assignment is not allowed in this command") (let ((svar (intern (substring var 0 (match-end 1))))) @@ -377,15 +380,15 @@ (defun calc-store-quick () (interactive) - (calc-store (intern (format "var-q%c" last-command-char)))) + (calc-store (intern (format "var-q%c" last-command-event)))) (defun calc-store-into-quick () (interactive) - (calc-store-into (intern (format "var-q%c" last-command-char)))) + (calc-store-into (intern (format "var-q%c" last-command-event)))) (defun calc-recall-quick () (interactive) - (calc-recall (intern (format "var-q%c" last-command-char)))) + (calc-recall (intern (format "var-q%c" last-command-event)))) (defun calc-copy-special-constant (&optional sconst var) (interactive) @@ -400,7 +403,7 @@ (unless (string= sconst "") (let ((value (cdr (assoc sconst sc)))) (or var (setq var (calc-read-var-name - (format "Copy special constant %s, to: " + (format "Copy special constant %s, to: " sconst)))) (if var (let ((msg (calc-store-value var value ""))) @@ -416,7 +419,7 @@ (or value (error "No such variable: \"%s\"" (calc-var-name var1))) (or var2 (setq var2 (calc-read-var-name - (format "Copy variable: %s, to: " + (format "Copy variable: %s, to: " (calc-var-name var1))))) (if var2 (let ((msg (calc-store-value var2 value ""))) @@ -429,7 +432,7 @@ (calc-wrapper (or var (setq var (calc-read-var-name (if calc-last-edited-variable - (format "Edit: (default %s) " + (format "Edit (default %s): " (calc-var-name calc-last-edited-variable)) "Edit: ")))) (or var (setq var calc-last-edited-variable)) @@ -586,7 +589,7 @@ (defun calc-permanent-variable (&optional var) (interactive) (calc-wrapper - (or var (setq var (calc-read-var-name "Save variable (default=all): "))) + (or var (setq var (calc-read-var-name "Save variable (default all): "))) (let (calc-pv-pos) (and var (or (and (boundp var) (symbol-value var)) (error "No such variable"))) @@ -633,8 +636,7 @@ (defun calc-insert-variables (buf) (interactive "bBuffer in which to save variable values: ") - (save-excursion - (set-buffer buf) + (with-current-buffer buf (mapatoms (function (lambda (x) (and (string-match "\\`var-" (symbol-name x)) @@ -674,5 +676,8 @@ (provide 'calc-store) -;;; arch-tag: 2fbfec82-a521-42ca-bcd8-4f254ae6313e +;; Local variables: +;; coding: utf-8 +;; End: + ;;; calc-store.el ends here