Mercurial > emacs
changeset 33631:86ab384be9d7
New version from author.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Mon, 20 Nov 2000 12:38:11 +0000 |
parents | 8c62879971b9 |
children | d9f6fa9e0caf |
files | lisp/calculator.el |
diffstat | 1 files changed, 30 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/calculator.el Mon Nov 20 11:58:20 2000 +0000 +++ b/lisp/calculator.el Mon Nov 20 12:38:11 2000 +0000 @@ -4,7 +4,7 @@ ;; Author: Eli Barzilay <eli@www.barzilay.org> ;; Keywords: tools, convenience -;; Time-stamp: <2000-11-07 15:04:06 eli> +;; Time-stamp: <2000-11-19 20:59:59 eli> ;; This file is part of GNU Emacs. @@ -23,7 +23,7 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, ;; MA 02111-1307, USA. -;;;============================================================================ +;;;===================================================================== ;;; Commentary: ;; ;; A calculator for Emacs. @@ -47,7 +47,7 @@ (defmacro defgroup (&rest forms) nil) (defmacro defcustom (s v d &rest r) (list 'defvar s v d)))) -;;;============================================================================ +;;;===================================================================== ;;; Customization: (defgroup calculator nil @@ -209,10 +209,10 @@ :type '(repeat (list string symbol sexp integer integer)) :group 'calculator) -;;;============================================================================ +;;;===================================================================== ;;; Code: -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Variables (defvar calculator-initial-operators @@ -346,7 +346,7 @@ (defvar calculator-restart-other-mode nil "Used to hack restarting with the electric mode changed.") -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Key bindings (defvar calculator-mode-map nil @@ -389,7 +389,8 @@ (calculator-clear-saved [?\C-c] [(control delete)]) (calculator-save-and-quit [(control return)] [(control kp-enter)]) - (calculator-paste [insert] [(shift insert)] [mouse-2]) + (calculator-paste [insert] [(shift insert)] + [mouse-2]) (calculator-clear [delete] [?\C-?] [?\C-d]) (calculator-help [?h] [??] [f1] [help]) (calculator-copy [(control insert)]) @@ -540,7 +541,7 @@ ["Quit" calculator-quit])))) (setq calculator-mode-map map))) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Startup and mode stuff (defun calculator-mode () @@ -716,7 +717,7 @@ (if (and calculator-restart-other-mode calculator-electric-mode) (calculator))) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Operatos (defun calculator-op-arity (op) @@ -759,7 +760,7 @@ (setq calculator-operators (append (nreverse added-ops) calculator-operators)))) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Display stuff (defun calculator-reset () @@ -1065,7 +1066,7 @@ (goto-char (1+ (length calculator-prompt))) (goto-char (1- (point))))) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Stack computations (defun calculator-reduce-stack (prec) @@ -1195,7 +1196,7 @@ (or (fboundp 'key-press-event-p) (defun key-press-event-p (&rest _) nil))) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Input interaction (defun calculator-last-input (&optional keys) @@ -1356,7 +1357,7 @@ (calculator-digit) (calculator-op))) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Input/output modes (not display) (defun calculator-dec/deg-mode () @@ -1408,7 +1409,7 @@ calculator-char-radix)))) (calculator-update-display t)) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Saved values list (defun calculator-save-on-list () @@ -1451,7 +1452,7 @@ (interactive) (calculator-saved-move -1)) -;;;---------------------------------------------------------------------------- +;;;--------------------------------------------------------------------- ;;; Misc functions (defun calculator-open-paren () @@ -1544,15 +1545,15 @@ (interactive) (calculator-put-value (let ((str (current-kill 0))) - (if calculator-paste-decimals - (progn - (string-match "\\([0-9]+\\)\\(\\.[0-9]+\\)?\\(e[0-9]+\\)?" str) - (if (or (match-string 1 str) - (match-string 2 str) - (match-string 3 str)) - (setq str (concat (match-string 1 str) - (or (match-string 2 str) ".0") - (match-string 3 str)))))) + (and calculator-paste-decimals + (string-match "\\([0-9]+\\)\\(\\.[0-9]+\\)?\\(e[0-9]+\\)?" + str) + (or (match-string 1 str) + (match-string 2 str) + (match-string 3 str)) + (setq str (concat (match-string 1 str) + (or (match-string 2 str) ".0") + (match-string 3 str)))) (condition-case nil (car (read-from-string str)) (error nil))))) @@ -1588,7 +1589,11 @@ (require 'ehelp) (if calculator-electric-mode (use-global-map calculator-saved-global-map)) - (electric-describe-mode) + (if (or (not calculator-electric-mode) + ;; XEmacs has a problem with electric-describe-mode + (string-match "XEmacs" (emacs-version))) + (describe-mode) + (electric-describe-mode)) (if calculator-electric-mode (use-global-map g-map)) (select-window win) ; these are for XEmacs (also below)