X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/0ee81a0ce066375eac701c06cdfbdebefe594fdc..ee7683ebb70c308e596103e379ef6b91d001eebc:/lisp/calc/calc.el diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el index 7ea371dd16..23f955afe7 100644 --- a/lisp/calc/calc.el +++ b/lisp/calc/calc.el @@ -1,7 +1,6 @@ ;;; calc.el --- the GNU Emacs calculator -;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1990-1993, 2001-2011 Free Software Foundation, Inc. ;; Author: David Gillespie ;; Maintainer: Jay Belanger @@ -125,7 +124,7 @@ ;; target integral is not complete (and the time limit has not run out) ;; choose an incomplete integral from the cache and, for every integral ;; appearing in its RHS's, add those integrals to the cache using the -;; same substitition, parts, etc. rules. The cache should be organized +;; same substitution, parts, etc. rules. The cache should be organized ;; as a priority queue, choosing the "simplest" incomplete integral at ;; each step, or choosing randomly among equally simple integrals. ;; Simplicity equals small size, and few steps removed from the original @@ -425,6 +424,45 @@ in normal mode." :group 'calc :type 'integer) +(defcustom calc-highlight-selections-with-faces + nil + "If non-nil, use a separate face to indicate selected sub-formulas. +If `calc-show-selections' is non-nil, then selected sub-formulas are shown +by displaying the rest of the formula in `calc-nonselected-face'. +If `calc-show-selections' is nil, then selected sub-formulas are shown +by displaying the sub-formula in `calc-selected-face'." + :group 'calc + :type 'boolean) + +(defcustom calc-lu-field-reference + "20 uPa" + "The default reference level for logarithmic units (field)." + :group 'calc + :type '(string)) + +(defcustom calc-lu-power-reference + "mW" + "The default reference level for logarithmic units (power)." + :group 'calc + :type '(string)) + +(defcustom calc-note-threshold "1" + "The number of cents that a frequency should be near a note +to be identified as that note." + :type 'string + :group 'calc) + +(defface calc-nonselected-face + '((t :inherit shadow + :slant italic)) + "Face used to show the non-selected portion of a formula." + :group 'calc) + +(defface calc-selected-face + '((t :weight bold)) + "Face used to show the selected portion of a formula." + :group 'calc) + (defvar calc-bug-address "jay.p.belanger@gmail.com" "Address of the maintainer of Calc, for use by `report-calc-bug'.") @@ -965,7 +1003,7 @@ Used by `calc-user-invocation'.") (defvar calc-quick-prev-results nil "Previous results from Quick Calc.") (defvar calc-said-hello nil - "Non-nil if the welcomd message has been displayed.") + "Non-nil if the welcome message has been displayed.") (defvar calc-executing-macro nil "Non-nil if a keyboard macro is executing from the \"K\" key.") (defvar calc-any-selections nil @@ -1040,12 +1078,13 @@ Used by `calc-user-invocation'.") (define-key map "\C-j" 'calc-over) (define-key map "\C-y" 'calc-yank) (define-key map [mouse-2] 'calc-yank) + (define-key map [remap undo] 'calc-undo) (mapc (lambda (x) (define-key map (char-to-string x) 'undefined)) "lOW") (mapc (lambda (x) (define-key map (char-to-string x) 'calc-missing-key)) (concat "ABCDEFGHIJKLMNOPQRSTUVXZabcdfghjkmoprstuvwxyz" - ":\\|!()[]<>{},;=~`\C-k\C-w\C-_")) + ":\\|!()[]<>{},;=~`\C-k\C-w")) (define-key map "\M-w" 'calc-missing-key) (define-key map "\M-k" 'calc-missing-key) (define-key map "\M-\C-w" 'calc-missing-key) @@ -1196,7 +1235,8 @@ Used by `calc-user-invocation'.") (glob (current-global-map)) (loc (current-local-map))) (or (input-pending-p) (message "%s" prompt)) - (let ((key (calc-read-key t))) + (let ((key (calc-read-key t)) + (input-method-function nil)) (calc-unread-command (cdr key)) (unwind-protect (progn @@ -1254,19 +1294,20 @@ the trail buffer." (if (not info-list) (progn (setq calc-buffer-list (delete cb calc-buffer-list)) - (with-current-buffer calc-trail-buffer - (if (eq cb calc-main-buffer) - ;; If there are other Calc stacks, make another one - ;; the calc-main-buffer ... - (if calc-buffer-list - (setq calc-main-buffer (car calc-buffer-list)) - ;; ... otherwise kill the trail and its windows. - (let ((wl (get-buffer-window-list calc-trail-buffer))) - (while wl - (delete-window (car wl)) - (setq wl (cdr wl)))) - (kill-buffer calc-trail-buffer) - (setq calc-trail-buffer nil)))) + (if (buffer-live-p calc-trail-buffer) + (with-current-buffer calc-trail-buffer + (if (eq cb calc-main-buffer) + ;; If there are other Calc stacks, make another one + ;; the calc-main-buffer ... + (if calc-buffer-list + (setq calc-main-buffer (car calc-buffer-list)) + ;; ... otherwise kill the trail and its windows. + (let ((wl (get-buffer-window-list calc-trail-buffer))) + (while wl + (delete-window (car wl)) + (setq wl (cdr wl)))) + (kill-buffer calc-trail-buffer))))) + (setq calc-trail-buffer nil) t)))) (defun calc-mode () @@ -1385,8 +1426,7 @@ commands given here will actually operate on the *Calculator* stack." (set (make-local-variable 'calc-main-buffer) buf)) (when (= (buffer-size) 0) (let ((buffer-read-only nil)) - (insert (propertize (concat "Emacs Calculator Trail\n") - 'font-lock-face 'italic)))) + (insert (propertize "Emacs Calculator Trail\n" 'face 'italic)))) (run-mode-hooks 'calc-trail-mode-hook)) (defun calc-create-buffer () @@ -1976,7 +2016,7 @@ See calc-keypad for details." (erase-buffer) (when calc-show-banner (insert (propertize "--- Emacs Calculator Mode ---\n" - 'font-lock-face 'italic))) + 'face 'italic))) (while thing (goto-char (point-min)) (when calc-show-banner @@ -3818,5 +3858,4 @@ See Info node `(calc)Defining Functions'." ;; coding: utf-8 ;; End: -;; arch-tag: 0c3b170c-4ce6-4eaf-8d9b-5834d1fe938f ;;; calc.el ends here