Merge changes from emacs-23 branch.
[bpt/emacs.git] / lisp / calc / calc-help.el
index 49d1fd9..47c9513 100644 (file)
@@ -1,17 +1,17 @@
 ;;; calc-help.el --- help display functions for Calc,
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
-;;   2005, 2006, 2007  Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004, 2005,
+;;   2006, 2007, 2008, 2009, 2010  Free Software Foundation, Inc.
 
 ;; Author: David Gillespie <daveg@synaptics.com>
 ;; Maintainer: Jay Belanger <jay.p.belanger@gmail.com>
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; 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, or (at your option)
-;; any later version.
+;; 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; without even the implied warranty of
@@ -19,9 +19,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
@@ -112,8 +110,7 @@ C-w  Describe how there is no warranty for Calc."
 (defun calc-describe-bindings ()
   (interactive)
   (describe-bindings)
-  (save-excursion
-    (set-buffer "*Help*")
+  (with-current-buffer "*Help*"
     (let ((inhibit-read-only t))
       (goto-char (point-min))
       (when (search-forward "Major Mode Bindings:" nil t)
@@ -131,7 +128,7 @@ C-w  Describe how there is no warranty for Calc."
               (dig2 (char-after (match-beginning 3))))
           (delete-region (match-end 1) (match-end 0))
           (goto-char (match-beginning 1))
-          (delete-backward-char 1)
+          (delete-char -1)
           (delete-char 5)
           (insert (format "%c .. %c" (min dig1 dig2) (max dig1 dig2)))))
       (goto-char (point-min)))))
@@ -177,9 +174,10 @@ C-w  Describe how there is no warranty for Calc."
          (setq desc (concat "M-" (substring desc 4))))
       (while (string-match "^M-# \\(ESC \\|C-\\)" desc)
        (setq desc (concat "M-# " (substring desc (match-end 0)))))
+      (if (string-match "\\(DEL\\|\\LFD\\|RET\\|SPC\\|TAB\\)" desc)
+          (setq desc (replace-match "<\\&>" nil nil desc)))
       (if briefly
-         (let ((msg (save-excursion
-                      (set-buffer (get-buffer-create "*Calc Summary*"))
+         (let ((msg (with-current-buffer (get-buffer-create "*Calc Summary*")
                       (if (= (buffer-size) 0)
                           (progn
                             (message "Reading Calc summary from manual...")
@@ -283,7 +281,7 @@ C-w  Describe how there is no warranty for Calc."
                                (beginning-of-line)
                                (princ (buffer-substring pt (point))))
                              (setq notes (cdr notes)))
-                           (print-help-return-message)))
+                           (help-print-return-message)))
                      (calc-unread-command (cdr key)))))
              (if (or (null defn) (integerp defn))
                  (message "%s is undefined" desc)
@@ -368,20 +366,20 @@ C-w  Describe how there is no warranty for Calc."
     (let (Info-history)
       (Info-goto-node (buffer-substring (match-beginning 1) (match-end 1))))
     (or (let ((case-fold-search nil))
-         (or (search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\<The[ \n]`%s'"
-                                     (or target thing)
-                                     (or target thing)
-                                     (or target thing)) nil t)
+         (or (re-search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\<The[ \n]`%s'"
+                                         (or target thing)
+                                         (or target thing)
+                                         (or target thing)) nil t)
              (and not-quoted
                   (let ((case-fold-search t))
                     (search-forward (or target thing) nil t)))
              (search-forward (format "`%s'" (or target thing)) nil t)
              (search-forward (or target thing) nil t)))
        (let ((case-fold-search t))
-         (or (search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\<The[ \n]`%s'"
-                                     (or target thing)
-                                     (or target thing)
-                                     (or target thing)) nil t)
+         (or (re-search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\<The[ \n]`%s'"
+                                         (or target thing)
+                                         (or target thing)
+                                         (or target thing)) nil t)
              (search-forward (format "`%s'" (or target thing)) nil t)
              (search-forward (or target thing) nil t))))
     (beginning-of-line)
@@ -416,8 +414,7 @@ C-w  Describe how there is no warranty for Calc."
 (defun calc-full-help ()
   (interactive)
   (with-output-to-temp-buffer "*Help*"
-    (princ (format "GNU Emacs Calculator version %s.\n"
-                  calc-version))
+    (princ "GNU Emacs Calculator.\n")
     (princ "  By Dave Gillespie.\n")
     (princ (format "  %s\n\n" emacs-copyright))
     (princ "Type `h s' for a more detailed summary.\n")
@@ -449,6 +446,7 @@ C-w  Describe how there is no warranty for Calc."
            '(calc-inverse-prefix-help
              calc-hyperbolic-prefix-help
              calc-inv-hyp-prefix-help
+              calc-option-prefix-help
              calc-a-prefix-help
              calc-b-prefix-help
              calc-c-prefix-help
@@ -467,7 +465,7 @@ C-w  Describe how there is no warranty for Calc."
              calc-shift-Y-prefix-help
              calc-shift-Z-prefix-help
              calc-z-prefix-help)))
-    (print-help-return-message)))
+    (help-print-return-message)))
 
 (defun calc-h-prefix-help ()
   (interactive)
@@ -515,6 +513,11 @@ C-w  Describe how there is no warranty for Calc."
      "I H + a S (general invert func); v h (rtail)")
    "inverse-hyperbolic" nil))
 
+(defun calc-option-prefix-help ()
+  (interactive)
+  (calc-do-prefix-help
+   '("")
+   "option" nil))
 
 (defun calc-f-prefix-help ()
   (interactive)
@@ -541,8 +544,9 @@ C-w  Describe how there is no warranty for Calc."
 (defun calc-r-prefix-help ()
   (interactive)
   (calc-do-prefix-help
-   '("digits 0-9: recall, same as `s r 0-9'")
-   "recall" ?r))
+   '("digits 0-9: recall, same as `s r 0-9'"
+     "Save to register, Insert from register")
+   "recall/register" ?r))
 
 
 (defun calc-j-prefix-help ()
@@ -601,6 +605,7 @@ C-w  Describe how there is no warranty for Calc."
      "\" (strings); Truncate, [, ]; SPC (refresh), RET, @"
      "SHIFT + language: Normal, One-line, Big, Unformatted"
      "SHIFT + language: C, Pascal, Fortran; TeX, LaTeX, Eqn"
+     "SHIFT + language: Yacas, X=Maxima, A=Giac"
      "SHIFT + language: Mathematica, W=Maple")
    "display" ?d))