X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a1506d2977a8c2eb982ad0b59416009cdfaa6f51..2bd255dd8f047650e4c4441061b25532d6290289:/lisp/calc/calc-stuff.el diff --git a/lisp/calc/calc-stuff.el b/lisp/calc/calc-stuff.el index 33f8d964e6..591bd89c3b 100644 --- a/lisp/calc/calc-stuff.el +++ b/lisp/calc/calc-stuff.el @@ -1,40 +1,34 @@ ;;; calc-stuff.el --- miscellaneous functions for Calc -;; Copyright (C) 1990, 1991, 1992, 1993, 2001 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2012 Free Software Foundation, Inc. ;; Author: David Gillespie -;; Maintainers: D. Goel -;; Colin Walters +;; 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: ;;; Code: ;; This file is autoloaded from calc-ext.el. -(require 'calc-ext) +(require 'calc-ext) (require 'calc-macs) -(defun calc-Need-calc-stuff () nil) - - (defun calc-num-prefix (n) "Use the number at the top of stack as the numeric prefix for the next command. With a prefix, push that prefix as a number onto the stack." @@ -160,11 +154,19 @@ With a prefix, push that prefix as a number onto the stack." (setq calc-which-why calc-why)) (message "No explanations available")))) - -(defun calc-version () - (interactive) - (message "Calc %s" calc-version)) - +;; The following caches are declared in other files, but are +;; reset here. +(defvar math-lud-cache) ; calc-mtx.el +(defvar math-log2-cache) ; calc-bin.el +(defvar math-radix-digits-cache) ; calc-bin.el +(defvar math-radix-float-cache-tag) ; calc-bin.el +(defvar math-random-cache) ; calc-comb.el +(defvar math-max-digits-cache) ; calc-bin.el +(defvar math-integral-cache) ; calcalg2.el +(defvar math-units-table) ; calc-units.el +(defvar math-decls-cache-tag) ; calc-arith.el +(defvar math-format-date-cache) ; calc-forms.el +(defvar math-holidays-cache-tag) ; calc-forms.el (defun calc-flush-caches (&optional inhibit-msg) (interactive "P") @@ -175,16 +177,13 @@ With a prefix, push that prefix as a number onto the stack." math-radix-float-cache-tag nil math-random-cache nil math-max-digits-cache nil - math-checked-rewrites nil math-integral-cache nil math-units-table nil math-decls-cache-tag nil math-eval-rules-cache-tag t - math-graph-var-cache nil - math-graph-data-cache nil math-format-date-cache nil math-holidays-cache-tag t) - (mapcar (function (lambda (x) (set x -100))) math-cache-list) + (mapc (function (lambda (x) (set x -100))) math-cache-list) (unless inhibit-msg (message "All internal calculator caches have been reset")))) @@ -210,9 +209,9 @@ With a prefix, push that prefix as a number onto the stack." (interactive "P") (calc-clean (- (if num (prefix-numeric-value num) - (if (and (>= last-command-char ?0) - (<= last-command-char ?9)) - (- last-command-char ?0) + (if (and (>= last-command-event ?0) + (<= last-command-event ?9)) + (- last-command-event ?0) (error "Number required")))))) @@ -270,17 +269,22 @@ With a prefix, push that prefix as a number onto the stack." (math-map-over-constants (function (lambda (x) (calcFunc-frac x tol))) a)) -(defun math-map-over-constants (func expr) +;; The variable math-moc-func is local to math-map-over-constants, +;; but is used by math-map-over-constants-rec, which is called by +;; math-map-over-constants. +(defvar math-moc-func) + +(defun math-map-over-constants (math-moc-func expr) (math-map-over-constants-rec expr)) (defun math-map-over-constants-rec (expr) (cond ((or (Math-primp expr) (memq (car expr) '(intv sdev))) (or (and (Math-objectp expr) - (funcall func expr)) + (funcall math-moc-func expr)) expr)) ((and (memq (car expr) '(^ calcFunc-subscr)) - (eq func 'math-float) + (eq math-moc-func 'math-float) (= (length expr) 3) (Math-integerp (nth 2 expr))) (list (car expr) @@ -288,4 +292,6 @@ With a prefix, push that prefix as a number onto the stack." (nth 2 expr))) (t (cons (car expr) (mapcar 'math-map-over-constants-rec (cdr expr)))))) +(provide 'calc-stuff) + ;;; calc-stuff.el ends here