;;; calc-help.el --- help display functions for Calc,
-;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2004, 2005
-;; Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002, 2003, 2004,
+;; 2005, 2006, 2007 Free Software Foundation, Inc.
;; Author: David Gillespie <daveg@synaptics.com>
-;; Maintainer: Jay Belanger <belanger@truman.edu>
+;; 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
+;; 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.
+
;; 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; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
(require 'calc-ext)
(require 'calc-macs)
+;; Declare functions which are defined elsewhere.
+(declare-function Info-goto-node "info" (nodename &optional fork))
+(declare-function Info-last "info" ())
+
+
(defun calc-help-prefix (arg)
"This key is the prefix for Calc help functions. See calc-help-for-help."
(interactive "P")
(defun calc-describe-function (&optional func)
(interactive)
(unless calc-help-function-list
- (setq calc-help-function-list
+ (setq calc-help-function-list
(calc-help-index-entries "Function" "Command")))
(or func
(setq func (completing-read "Describe function: "
- calc-help-function-list
+ calc-help-function-list
nil t)))
(if (string-match "\\`calc-." func)
(calc-describe-thing func "Command Index")
(defun calc-describe-variable (&optional var)
(interactive)
(unless calc-help-variable-list
- (setq calc-help-variable-list
+ (setq calc-help-variable-list
(calc-help-index-entries "Variable")))
(or var
(setq var (completing-read "Describe variable: "
(error "Can't locate Calc sources"))
(calc-quit)
(switch-to-buffer "*Help*")
- (erase-buffer)
- (insert-file-contents (expand-file-name "README" (car path)))
- (search-forward "Summary of changes")
- (forward-line -1)
- (delete-region (point-min) (point))
- (goto-char (point-min))))
+ (let ((inhibit-read-only t))
+ (erase-buffer)
+ (insert-file-contents (expand-file-name "README" (car path)))
+ (search-forward "Summary of changes")
+ (forward-line -1)
+ (delete-region (point-min) (point))
+ (goto-char (point-min)))
+ (help-mode)))
(defvar calc-help-long-names '((?b . "binary/business")
(?g . "graphics")
(with-output-to-temp-buffer "*Help*"
(princ (format "GNU Emacs Calculator version %s.\n"
calc-version))
- (princ " By Dave Gillespie, daveg@synaptics.com.\n")
- (princ " Copyright (C) 2005 Free Software Foundation, Inc.\n\n")
+ (princ " By Dave Gillespie.\n")
+ (princ (format " %s\n\n" emacs-copyright))
(princ "Type `h s' for a more detailed summary.\n")
(princ "Or type `h i' to read the full Calc manual on-line.\n\n")
(princ "Basic keys:\n")
(let* ((calc-full-help-flag t))
- (mapcar (function (lambda (x) (princ (format " %s\n" x))))
- (nreverse (cdr (reverse (cdr (calc-help))))))
- (mapcar (function (lambda (prefix)
- (let ((msgs (condition-case err
- (funcall prefix)
- (error nil))))
- (if (car msgs)
- (princ
- (if (eq (nth 2 msgs) ?v)
- "\n`v' or `V' prefix (vector/matrix) keys: \n"
- (if (nth 2 msgs)
- (format
- "\n`%c' prefix (%s) keys:\n"
- (nth 2 msgs)
- (or (cdr (assq (nth 2 msgs)
- calc-help-long-names))
- (nth 1 msgs)))
- (format "\n%s-modified keys:\n"
- (capitalize (nth 1 msgs)))))))
- (mapcar (function (lambda (x)
- (princ (format " %s\n" x))))
- (car msgs)))))
- '(calc-inverse-prefix-help
- calc-hyperbolic-prefix-help
- calc-inv-hyp-prefix-help
- calc-a-prefix-help
- calc-b-prefix-help
- calc-c-prefix-help
- calc-d-prefix-help
- calc-f-prefix-help
- calc-g-prefix-help
- calc-h-prefix-help
- calc-j-prefix-help
- calc-k-prefix-help
- calc-m-prefix-help
- calc-r-prefix-help
- calc-s-prefix-help
- calc-t-prefix-help
- calc-u-prefix-help
- calc-v-prefix-help
- calc-shift-Y-prefix-help
- calc-shift-Z-prefix-help
- calc-z-prefix-help)))
+ (mapc (function (lambda (x) (princ (format " %s\n" x))))
+ (nreverse (cdr (reverse (cdr (calc-help))))))
+ (mapc (function (lambda (prefix)
+ (let ((msgs (condition-case err
+ (funcall prefix)
+ (error nil))))
+ (if (car msgs)
+ (princ
+ (if (eq (nth 2 msgs) ?v)
+ "\n`v' or `V' prefix (vector/matrix) keys: \n"
+ (if (nth 2 msgs)
+ (format
+ "\n`%c' prefix (%s) keys:\n"
+ (nth 2 msgs)
+ (or (cdr (assq (nth 2 msgs)
+ calc-help-long-names))
+ (nth 1 msgs)))
+ (format "\n%s-modified keys:\n"
+ (capitalize (nth 1 msgs)))))))
+ (mapcar (function (lambda (x)
+ (princ (format " %s\n" x))))
+ (car msgs)))))
+ '(calc-inverse-prefix-help
+ calc-hyperbolic-prefix-help
+ calc-inv-hyp-prefix-help
+ calc-a-prefix-help
+ calc-b-prefix-help
+ calc-c-prefix-help
+ calc-d-prefix-help
+ calc-f-prefix-help
+ calc-g-prefix-help
+ calc-h-prefix-help
+ calc-j-prefix-help
+ calc-k-prefix-help
+ calc-m-prefix-help
+ calc-r-prefix-help
+ calc-s-prefix-help
+ calc-t-prefix-help
+ calc-u-prefix-help
+ calc-v-prefix-help
+ calc-shift-Y-prefix-help
+ calc-shift-Z-prefix-help
+ calc-z-prefix-help)))
(print-help-return-message)))
(defun calc-h-prefix-help ()
(interactive)
(calc-do-prefix-help
'("Store, inTo, Xchg, Unstore; Recall, 0-9; : (:=); = (=>)"
- "Let; Copy; Declare; Insert, Perm; Edit"
+ "Let; Copy, K=copy constant; Declare; Insert, Perm; Edit"
"Negate, +, -, *, /, ^, &, |, [, ]; Map"
"SHIFT + Decls, GenCount, TimeZone, Holidays; IntegLimit"
"SHIFT + LineStyles, PointStyles, plotRejects; Units"
(interactive)
(calc-do-prefix-help
'("Deg, Rad, HMS; Frac; Polar; Inf; Alg, Total; Symb; Vec/mat"
- "Working; Xtensions; Mode-save"
+ "Working; Xtensions; Mode-save; preserve Embedded modes"
"SHIFT + Shifted-prefixes, mode-Filename; Record; reCompute"
"SHIFT + simplify: Off, Num, Default, Bin, Alg, Ext, Units")
"mode" ?m))