(redisplay_preserve_echo_area): Flush display in case
[bpt/emacs.git] / lisp / calc / calc-help.el
CommitLineData
3132f345
CW
1;;; calc-help.el --- help display functions for Calc,
2
a579b36f 3;; Copyright (C) 1990, 1991, 1992, 1993, 2001, 2002 Free Software Foundation, Inc.
3132f345
CW
4
5;; Author: David Gillespie <daveg@synaptics.com>
a1506d29 6;; Maintainers: D. Goel <deego@gnufans.org>
6e1c888a 7;; Colin Walters <walters@debian.org>
136211a9
EZ
8
9;; This file is part of GNU Emacs.
10
11;; GNU Emacs is distributed in the hope that it will be useful,
12;; but WITHOUT ANY WARRANTY. No author or distributor
13;; accepts responsibility to anyone for the consequences of using it
14;; or for whether it serves any particular purpose or works at all,
15;; unless he says so in writing. Refer to the GNU Emacs General Public
16;; License for full details.
17
18;; Everyone is granted permission to copy, modify and redistribute
19;; GNU Emacs, but only under the conditions described in the
20;; GNU Emacs General Public License. A copy of this license is
21;; supposed to have been given to you along with GNU Emacs so you
22;; can know your rights and responsibilities. It should be in a
23;; file named COPYING. Among other things, the copyright notice
24;; and this notice must be preserved on all copies.
25
3132f345 26;;; Commentary:
136211a9 27
3132f345 28;;; Code:
136211a9
EZ
29
30;; This file is autoloaded from calc-ext.el.
31(require 'calc-ext)
32
33(require 'calc-macs)
34
35(defun calc-Need-calc-help () nil)
36
37
38(defun calc-help-prefix (arg)
39 "This key is the prefix for Calc help functions. See calc-help-for-help."
40 (interactive "P")
41 (or calc-dispatch-help (sit-for echo-keystrokes))
42 (let ((key (calc-read-key-sequence
43 (if calc-dispatch-help
44 "Calc Help options: Help, Info, Tutorial, Summary; Key, Function; ?=more"
45 (format "%s (Type ? for a list of Calc Help options)"
46 (key-description (this-command-keys))))
47 calc-help-map)))
48 (setq key (lookup-key calc-help-map key))
49 (message "")
50 (if key
51 (call-interactively key)
bf77c646 52 (beep))))
136211a9
EZ
53
54(defun calc-help-for-help (arg)
55 "You have typed `h', the Calc help character. Type a Help option:
56
57B calc-describe-bindings. Display a table of all key bindings.
58H calc-full-help. Display all `?' key messages at once.
59
60I calc-info. Read the Calc manual using the Info system.
61T calc-tutorial. Read the Calc tutorial using the Info system.
62S calc-info-summary. Read the Calc summary using the Info system.
63
64C calc-describe-key-briefly. Look up the command name for a given key.
65K calc-describe-key. Look up a key's documentation in the manual.
66F calc-describe-function. Look up a function's documentation in the manual.
67V calc-describe-variable. Look up a variable's documentation in the manual.
68
69N calc-view-news. Display Calc history of changes.
70
71C-c Describe conditions for copying Calc.
72C-d Describe how you can get a new copy of Calc or report a bug.
73C-w Describe how there is no warranty for Calc."
74 (interactive "P")
75 (if calc-dispatch-help
76 (let (key)
77 (save-window-excursion
78 (describe-function 'calc-help-for-help)
79 (select-window (get-buffer-window "*Help*"))
80 (while (progn
81 (message "Calc Help options: Help, Info, ... press SPC, DEL to scroll, C-g to cancel")
82 (memq (car (setq key (calc-read-key t)))
83 '(? ?\C-h ?\C-? ?\C-v ?\M-v)))
84 (condition-case err
85 (if (memq (car key) '(? ?\C-v))
86 (scroll-up)
87 (scroll-down))
88 (error (beep)))))
89 (calc-unread-command (cdr key))
90 (calc-help-prefix nil))
91 (let ((calc-dispatch-help t))
bf77c646 92 (calc-help-prefix arg))))
136211a9
EZ
93
94(defun calc-describe-copying ()
95 (interactive)
749dadb5 96 (calc-info-goto-node "Copying"))
136211a9
EZ
97
98(defun calc-describe-distribution ()
99 (interactive)
749dadb5 100 (calc-info-goto-node "Reporting Bugs"))
136211a9
EZ
101
102(defun calc-describe-no-warranty ()
103 (interactive)
749dadb5 104 (calc-info-goto-node "Copying")
136211a9
EZ
105 (let ((case-fold-search nil))
106 (search-forward " NO WARRANTY"))
107 (beginning-of-line)
bf77c646 108 (recenter 0))
136211a9
EZ
109
110(defun calc-describe-bindings ()
111 (interactive)
112 (describe-bindings)
113 (save-excursion
114 (set-buffer "*Help*")
115 (goto-char (point-min))
116 (if (search-forward "Global bindings:" nil t)
117 (delete-region (match-beginning 0) (point-max)))
118 (goto-char (point-min))
119 (while (re-search-forward "\n[a-z] ESC" nil t)
120 (end-of-line)
121 (delete-region (match-beginning 0) (point)))
122 (goto-char (point-min))
123 (while (re-search-forward "\nESC m" nil t)
124 (end-of-line)
125 (delete-region (match-beginning 0) (point)))
126 (goto-char (point-min))
127 (while (search-forward "\n\n\n" nil t)
128 (backward-delete-char 1)
129 (backward-char 2))
130 (goto-char (point-min))
131 (while
132 (re-search-forward
133 "\n[a-z] [0-9]\\(\t\t.*\n\\)\\([a-z] [0-9]\\1\\)*[a-z] \\([0-9]\\)\\1"
134 nil t)
135 (let ((dig1 (char-after (1- (match-beginning 1))))
136 (dig2 (char-after (match-beginning 3))))
137 (delete-region (match-end 1) (match-end 0))
138 (goto-char (match-beginning 1))
139 (delete-backward-char 1)
140 (delete-char 1)
141 (insert (format "%c .. %c" (min dig1 dig2) (max dig1 dig2)))))
bf77c646 142 (goto-char (point-min))))
136211a9
EZ
143
144(defun calc-describe-key-briefly (key)
145 (interactive "kDescribe key briefly: ")
bf77c646 146 (calc-describe-key key t))
136211a9
EZ
147
148(defun calc-describe-key (key &optional briefly)
149 (interactive "kDescribe key: ")
150 (let ((defn (if (eq (key-binding key) 'calc-dispatch)
151 (let ((key2 (calc-read-key-sequence
152 (format "Describe key briefly: %s-"
153 (key-description key))
154 calc-dispatch-map)))
155 (setq key (concat key key2))
156 (lookup-key calc-dispatch-map key2))
157 (if (eq (key-binding key) 'calc-help-prefix)
158 (let ((key2 (calc-read-key-sequence
159 (format "Describe key briefly: %s-"
160 (key-description key))
161 calc-help-map)))
162 (setq key (concat key key2))
163 (lookup-key calc-help-map key2))
164 (key-binding key))))
165 (inv nil)
166 (hyp nil))
167 (while (or (equal key "I") (equal key "H"))
168 (if (equal key "I")
169 (setq inv (not inv))
170 (setq hyp (not hyp)))
171 (setq key (read-key-sequence (format "Describe key%s:%s%s "
172 (if briefly " briefly" "")
173 (if inv " I" "")
174 (if hyp " H" "")))
175 defn (key-binding key)))
176 (let ((desc (key-description key))
177 target)
178 (if (string-match "^ESC " desc)
179 (setq desc (concat "M-" (substring desc 4))))
180 (while (string-match "^M-# \\(ESC \\|C-\\)" desc)
181 (setq desc (concat "M-# " (substring desc (match-end 0)))))
182 (if briefly
183 (let ((msg (save-excursion
184 (set-buffer (get-buffer-create "*Calc Summary*"))
185 (if (= (buffer-size) 0)
186 (progn
187 (message "Reading Calc summary from manual...")
188 (save-window-excursion
189 (save-excursion
749dadb5 190 (calc-info-goto-node "Summary")
136211a9
EZ
191 (goto-char (point-min))
192 (forward-line 1)
193 (copy-to-buffer "*Calc Summary*"
194 (point) (point-max))
749dadb5
JB
195 (if Info-history
196 (Info-last))))
136211a9
EZ
197 (setq case-fold-search nil)
198 (re-search-forward "^\\(.*\\)\\[\\.\\. a b")
199 (setq calc-summary-indentation
200 (- (match-end 1) (match-beginning 1)))))
201 (goto-char (point-min))
202 (setq target (if (and (string-match "[0-9]\\'" desc)
203 (not (string-match "[d#]" desc)))
204 (concat (substring desc 0 -1) "0-9")
205 desc))
206 (if (re-search-forward
207 (format "\n%s%s%s%s[ a-zA-Z]"
208 (make-string (+ calc-summary-indentation 9)
209 ?\.)
210 (if (string-match "M-#" desc) " "
211 (if inv
212 (if hyp "I H " " I ")
213 (if hyp " H " " ")))
214 (regexp-quote target)
215 (make-string (max (- 6 (length target)) 0)
216 ?\ ))
217 nil t)
218 (let (pt)
219 (beginning-of-line)
220 (forward-char calc-summary-indentation)
221 (setq pt (point))
222 (end-of-line)
223 (buffer-substring pt (point)))))))
224 (if msg
225 (let ((args (substring msg 0 9))
226 (keys (substring msg 9 19))
227 (prompts (substring msg 19 38))
228 (notes "")
229 (cmd (substring msg 40))
230 msg)
231 (if (string-match "\\` +" args)
232 (setq args (substring args (match-end 0))))
233 (if (string-match " +\\'" args)
234 (setq args (substring args 0 (match-beginning 0))))
235 (if (string-match "\\` +" keys)
236 (setq keys (substring keys (match-end 0))))
237 (if (string-match " +\\'" keys)
238 (setq keys (substring keys 0 (match-beginning 0))))
239 (if (string-match " [0-9,]+\\'" prompts)
240 (setq notes (substring prompts (1+ (match-beginning 0)))
241 prompts (substring prompts 0 (match-beginning 0))))
242 (if (string-match " +\\'" prompts)
243 (setq prompts (substring prompts 0 (match-beginning 0))))
244 (if (string-match "\\` +" prompts)
245 (setq prompts (substring prompts (match-end 0))))
246 (setq msg (format
247 "%s: %s%s`%s'%s%s %s%s"
248 (if (string-match
249 "\\`\\(calc-[-a-zA-Z0-9]+\\) *\\(.*\\)\\'"
250 cmd)
251 (prog1 (math-match-substring cmd 1)
252 (setq cmd (math-match-substring cmd 2)))
253 defn)
254 args (if (equal args "") "" " ")
255 keys
256 (if (equal prompts "") "" " ") prompts
257 (if (equal cmd "") "" " => ") cmd))
258 (message "%s%s%s runs %s%s"
259 (if inv "I " "") (if hyp "H " "") desc
260 msg
261 (if (equal notes "") ""
262 (format " (?=notes %s)" notes)))
263 (let ((key (calc-read-key t)))
264 (if (eq (car key) ??)
265 (if (equal notes "")
266 (message "No notes for this command")
267 (while (string-match "," notes)
268 (aset notes (match-beginning 0) ? ))
269 (setq notes (sort (car (read-from-string
270 (format "(%s)" notes)))
271 '<))
272 (with-output-to-temp-buffer "*Help*"
273 (princ (format "%s\n\n" msg))
274 (set-buffer "*Calc Summary*")
275 (re-search-forward "^ *NOTES")
276 (while notes
277 (re-search-forward
278 (format "^ *%d\\. " (car notes)))
279 (beginning-of-line)
280 (let ((pt (point)))
281 (forward-line 1)
282 (or (re-search-forward "^ ? ?[0-9]+\\. " nil t)
283 (goto-char (point-max)))
284 (beginning-of-line)
285 (princ (buffer-substring pt (point))))
286 (setq notes (cdr notes)))
287 (print-help-return-message)))
288 (calc-unread-command (cdr key)))))
289 (if (or (null defn) (integerp defn))
290 (message "%s is undefined" desc)
291 (message "%s runs the command %s"
292 desc
293 (if (symbolp defn) defn (prin1-to-string defn))))))
294 (if inv (setq desc (concat "I " desc)))
295 (if hyp (setq desc (concat "H " desc)))
296 (calc-describe-thing desc "Key Index" nil
bf77c646 297 (string-match "[A-Z][A-Z][A-Z]" desc))))))
136211a9
EZ
298
299(defun calc-describe-function (&optional func)
300 (interactive)
301 (or func
302 (setq func (intern (completing-read "Describe function: "
303 obarray nil t "calcFunc-"))))
304 (setq func (symbol-name func))
305 (if (string-match "\\`calc-." func)
306 (calc-describe-thing func "Command Index")
307 (calc-describe-thing (if (string-match "\\`calcFunc-." func)
308 (substring func 9)
309 func)
bf77c646 310 "Function Index")))
136211a9
EZ
311
312(defun calc-describe-variable (&optional var)
313 (interactive)
314 (or var
315 (setq var (intern (completing-read "Describe variable: "
316 obarray nil t "var-"))))
317 (setq var (symbol-name var))
318 (calc-describe-thing var "Variable Index"
319 (if (string-match "\\`var-." var)
320 (substring var 4)
bf77c646 321 var)))
136211a9
EZ
322
323(defun calc-describe-thing (thing where &optional target not-quoted)
324 (message "Looking for `%s' in %s..." thing where)
325 (let ((savewin (current-window-configuration)))
749dadb5 326 (calc-info-goto-node where)
136211a9
EZ
327 (or (let ((case-fold-search nil))
328 (re-search-forward (format "\n\\* +%s: \\(.*\\)\\."
329 (regexp-quote thing))
330 nil t))
331 (and (string-match "\\`\\([a-z ]*\\)[0-9]\\'" thing)
332 (re-search-forward (format "\n\\* +%s[01]-9: \\(.*\\)\\."
333 (substring thing 0 -1))
334 nil t)
335 (setq thing (format "%s9" (substring thing 0 -1))))
336 (progn
749dadb5
JB
337 (if Info-history
338 (Info-last))
136211a9
EZ
339 (set-window-configuration savewin)
340 (error "Can't find `%s' in %s" thing where)))
341 (let (Info-history)
342 (Info-goto-node (buffer-substring (match-beginning 1) (match-end 1))))
343 (or (let ((case-fold-search nil))
344 (or (search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\<The[ \n]`%s'"
345 (or target thing)
346 (or target thing)
347 (or target thing)) nil t)
348 (and not-quoted
349 (let ((case-fold-search t))
350 (search-forward (or target thing) nil t)))
351 (search-forward (format "`%s'" (or target thing)) nil t)
352 (search-forward (or target thing) nil t)))
353 (let ((case-fold-search t))
354 (or (search-forward (format "\\[`%s'\\]\\|(`%s')\\|\\<The[ \n]`%s'"
355 (or target thing)
356 (or target thing)
357 (or target thing)) nil t)
358 (search-forward (format "`%s'" (or target thing)) nil t)
359 (search-forward (or target thing) nil t))))
360 (beginning-of-line)
bf77c646 361 (message "Found `%s' in %s" thing where)))
136211a9
EZ
362
363(defun calc-view-news ()
364 (interactive)
365 (let ((path load-path))
366 (while (and path
367 (not (file-exists-p (expand-file-name "calc.el" (car path)))))
368 (setq path (cdr path)))
369 (or (and path
370 (file-exists-p (expand-file-name "README" (car path))))
371 (error "Can't locate Calc sources"))
372 (calc-quit)
373 (switch-to-buffer "*Help*")
374 (erase-buffer)
375 (insert-file-contents (expand-file-name "README" (car path)))
376 (search-forward "Summary of changes")
377 (forward-line -1)
378 (delete-region (point-min) (point))
bf77c646 379 (goto-char (point-min))))
136211a9
EZ
380
381(defun calc-full-help ()
382 (interactive)
383 (with-output-to-temp-buffer "*Help*"
384 (princ (format "GNU Emacs Calculator version %s of %s.\n"
385 calc-version calc-version-date))
386 (princ " By Dave Gillespie, daveg@synaptics.com.\n")
136211a9
EZ
387 (princ " Copyright (C) 1990, 1993 Free Software Foundation, Inc.\n\n")
388 (princ "Type `h s' for a more detailed summary.\n")
389 (princ "Or type `h i' to read the full Calc manual on-line.\n\n")
390 (princ "Basic keys:\n")
391 (let* ((calc-full-help-flag t))
392 (mapcar (function (lambda (x) (princ (format " %s\n" x))))
393 (nreverse (cdr (reverse (cdr (calc-help))))))
394 (mapcar (function (lambda (prefix)
395 (let ((msgs (condition-case err
396 (funcall prefix)
397 (error nil))))
398 (if (car msgs)
399 (princ
400 (if (eq (nth 2 msgs) ?v)
401 "\n`v' or `V' prefix (vector/matrix) keys: \n"
402 (if (nth 2 msgs)
403 (format
404 "\n`%c' prefix (%s) keys:\n"
405 (nth 2 msgs)
406 (or (cdr (assq (nth 2 msgs)
407 calc-help-long-names))
408 (nth 1 msgs)))
409 (format "\n%s-modified keys:\n"
410 (capitalize (nth 1 msgs)))))))
411 (mapcar (function (lambda (x)
412 (princ (format " %s\n" x))))
413 (car msgs)))))
414 '(calc-inverse-prefix-help
415 calc-hyperbolic-prefix-help
416 calc-inv-hyp-prefix-help
417 calc-a-prefix-help
418 calc-b-prefix-help
419 calc-c-prefix-help
420 calc-d-prefix-help
421 calc-f-prefix-help
422 calc-g-prefix-help
423 calc-h-prefix-help
424 calc-j-prefix-help
425 calc-k-prefix-help
426 calc-m-prefix-help
427 calc-r-prefix-help
428 calc-s-prefix-help
429 calc-t-prefix-help
430 calc-u-prefix-help
431 calc-v-prefix-help
432 calc-shift-Y-prefix-help
433 calc-shift-Z-prefix-help
434 calc-z-prefix-help)))
bf77c646 435 (print-help-return-message)))
136211a9 436
bf77c646
CW
437(defvar calc-help-long-names '((?b . "binary/business")
438 (?g . "graphics")
439 (?j . "selection")
440 (?k . "combinatorics/statistics")
441 (?u . "units/statistics")))
136211a9
EZ
442
443(defun calc-h-prefix-help ()
444 (interactive)
445 (calc-do-prefix-help
446 '("Help; Bindings; Info, Tutorial, Summary; News"
447 "describe: Key, C (briefly), Function, Variable")
bf77c646 448 "help" ?h))
136211a9
EZ
449
450(defun calc-inverse-prefix-help ()
451 (interactive)
452 (calc-do-prefix-help
453 '("I + S (arcsin), C (arccos), T (arctan); Q (square)"
454 "I + E (ln), L (exp), B (alog: B^X); f E (lnp1), f L (expm1)"
455 "I + F (ceiling), R (truncate); a S (invert func)"
456 "I + a m (match-not); c h (from-hms); k n (prev prime)"
457 "I + f G (gamma-Q); f e (erfc); k B (etc., lower-tail dists)"
458 "I + V S (reverse sort); V G (reverse grade)"
459 "I + v s (remove subvec); v h (tail)"
460 "I + t + (alt sum), t M (mean with error)"
461 "I + t S (pop std dev), t C (pop covar)")
bf77c646 462 "inverse" nil))
136211a9
EZ
463
464(defun calc-hyperbolic-prefix-help ()
465 (interactive)
466 (calc-do-prefix-help
467 '("H + S (sinh), C (cosh), T (tanh); E (exp10), L (log10)"
468 "H + F (float floor), R (float round); P (constant \"e\")"
469 "H + a d (total derivative); k c (permutations)"
470 "H + k b (bern-poly), k e (euler-poly); k s (stirling-2)"
471 "H + f G (gamma-g), f B (beta-B); v h (rhead), v k (rcons)"
472 "H + v e (expand w/filler); V H (weighted histogram)"
473 "H + a S (general solve eqn), j I (general isolate)"
474 "H + a R (widen/root), a N (widen/min), a X (widen/max)"
475 "H + t M (median), t S (variance), t C (correlation coef)"
476 "H + c f/F/c (pervasive float/frac/clean)")
bf77c646 477 "hyperbolic" nil))
136211a9
EZ
478
479(defun calc-inv-hyp-prefix-help ()
480 (interactive)
481 (calc-do-prefix-help
482 '("I H + S (arcsinh), C (arccosh), T (arctanh)"
483 "I H + E (log10), L (exp10); f G (gamma-G)"
484 "I H + F (float ceiling), R (float truncate)"
485 "I H + t S (pop variance)"
486 "I H + a S (general invert func); v h (rtail)")
bf77c646 487 "inverse-hyperbolic" nil))
136211a9
EZ
488
489
490(defun calc-f-prefix-help ()
491 (interactive)
492 (calc-do-prefix-help
493 '("miN, maX; Hypot; Im, Re; Sign; [, ] (incr/decr)"
494 "Gamma, Beta, Erf, besselJ, besselY"
495 "SHIFT + int-sQrt; Int-log, Exp(x)-1, Ln(x+1); arcTan2"
496 "SHIFT + Abssqr; Mantissa, eXponent, Scale"
497 "SHIFT + incomplete: Gamma-P, Beta-I")
bf77c646 498 "functions" ?f))
136211a9
EZ
499
500
501(defun calc-s-prefix-help ()
502 (interactive)
503 (calc-do-prefix-help
504 '("Store, inTo, Xchg, Unstore; Recall, 0-9; : (:=); = (=>)"
505 "Let; Copy; Declare; Insert, Perm; Edit"
506 "Negate, +, -, *, /, ^, &, |, [, ]; Map"
507 "SHIFT + Decls, GenCount, TimeZone, Holidays; IntegLimit"
508 "SHIFT + LineStyles, PointStyles, plotRejects; Units"
509 "SHIFT + Eval-, AlgSimp-, ExtSimp-, FitRules")
bf77c646 510 "store" ?s))
136211a9
EZ
511
512(defun calc-r-prefix-help ()
513 (interactive)
514 (calc-do-prefix-help
515 '("digits 0-9: recall, same as `s r 0-9'")
bf77c646 516 "recall" ?r))
136211a9
EZ
517
518
519(defun calc-j-prefix-help ()
520 (interactive)
521 (calc-do-prefix-help
522 '("Select, Additional, Once; eVal, Formula; Rewrite"
523 "More, Less, 1-9, Next, Previous"
524 "Unselect, Clear; Display; Enable; Breakable"
525 "' (replace), ` (edit), +, -, *, /, RET (grab), DEL"
526 "SHIFT + swap: Left, Right; maybe: Select, Once"
527 "SHIFT + Commute, Merge, Distrib, jump-Eqn, Isolate"
528 "SHIFT + Negate, & (invert); Unpack")
bf77c646 529 "select" ?j))
136211a9
EZ
530
531
532(defun calc-a-prefix-help ()
533 (interactive)
534 (calc-do-prefix-help
535 '("Simplify, Extended-simplify, eVal; \" (exp-formula)"
536 "eXpand, Collect, Factor, Apart, Norm-rat"
537 "GCD, /, \\, % (polys); Polint"
538 "Derivative, Integral, Taylor; _ (subscr)"
539 "suBstitute; Rewrite, Match"
540 "SHIFT + Solve; Root, miN, maX; Poly-roots; Fit"
541 "SHIFT + Map; Tabulate, + (sum), * (prod); num-Integ"
542 "relations: =, # (not =), <, >, [ (< or =), ] (> or =)"
543 "logical: & (and), | (or), ! (not); : (if)"
544 "misc: { (in-set); . (rmeq)")
bf77c646 545 "algebra" ?a))
136211a9
EZ
546
547
548(defun calc-b-prefix-help ()
549 (interactive)
550 (calc-do-prefix-help
551 '("And, Or, Xor, Diff, Not; Wordsize, Clip"
552 "Lshift, Rshift, roTate; SHIFT + signed Lshift, Rshift"
553 "SHIFT + business: Pv, Npv, Fv, pMt, #pmts, raTe, Irr"
554 "SHIFT + business: Sln, sYd, Ddb; %ch")
bf77c646 555 "binary/bus" ?b))
136211a9
EZ
556
557
558(defun calc-c-prefix-help ()
559 (interactive)
560 (calc-do-prefix-help
561 '("Deg, Rad, HMS; Float; Polar/rect; Clean, 0-9; %"
562 "SHIFT + Fraction")
bf77c646 563 "convert" ?c))
136211a9
EZ
564
565
566(defun calc-d-prefix-help ()
567 (interactive)
568 (calc-do-prefix-help
569 '("Group, \",\"; Normal, Fix, Sci, Eng, \".\"; Over"
570 "Radix, Zeros, 2, 8, 0, 6; Hms; Date; Complex, I, J"
571 "Why; Line-nums, line-Breaks; <, =, > (justify); Plain"
a579b36f 572 "\" (strings); Truncate, [, ]; SPC (refresh), RET, @"
136211a9
EZ
573 "SHIFT + language: Normal, One-line, Big, Unformatted"
574 "SHIFT + language: C, Pascal, Fortran; TeX, Eqn"
575 "SHIFT + language: Mathematica, W=Maple")
bf77c646 576 "display" ?d))
136211a9
EZ
577
578
579(defun calc-g-prefix-help ()
580 (interactive)
581 (calc-do-prefix-help
582 '("Fast; Add, Delete, Juggle; Plot, Clear; Quit"
583 "Header, Name, Grid, Border, Key; View-commands, X-display"
584 "x-axis: Range, Title, Log, Zero; lineStyle"
585 "SHIFT + y-axis: Range, Title, Log, Zero; pointStyle"
586 "SHIFT + Print; Device, Output-file; X-geometry"
587 "SHIFT + Num-pts; Command, Kill, View-trail"
588 "SHIFT + 3d: Fast, Add; CTRL + z-axis: Range, Title, Log")
bf77c646 589 "graph" ?g))
136211a9
EZ
590
591
592(defun calc-k-prefix-help ()
593 (interactive)
594 (calc-do-prefix-help
595 '("GCD, LCM; Choose (binomial), Double-factorial"
596 "Random, random-Again, sHuffle"
597 "Factors, Prime-test, Next-prime, Totient, Moebius"
598 "Bernoulli, Euler, Stirling"
599 "SHIFT + Extended-gcd"
600 "SHIFT + dists: Binomial, Chi-square, F, Normal"
601 "SHIFT + dists: Poisson, student's-T")
bf77c646 602 "combinatorics" ?k))
136211a9
EZ
603
604
605(defun calc-m-prefix-help ()
606 (interactive)
607 (calc-do-prefix-help
608 '("Deg, Rad, HMS; Frac; Polar; Inf; Alg, Total; Symb; Vec/mat"
609 "Working; Xtensions; Mode-save"
610 "SHIFT + Shifted-prefixes, mode-Filename; Record; reCompute"
611 "SHIFT + simplify: Off, Num, Default, Bin, Alg, Ext, Units")
bf77c646 612 "mode" ?m))
136211a9
EZ
613
614
615(defun calc-t-prefix-help ()
616 (interactive)
617 (calc-do-prefix-help
618 '("Display; Fwd, Back; Next, Prev, Here, [, ]; Yank"
619 "Search, Rev; In, Out; <, >; Kill; Marker; . (abbrev)"
620 "SHIFT + time: Now; Part; Date, Julian, Unix, Czone"
621 "SHIFT + time: newWeek, newMonth, newYear; Incmonth"
622 "SHIFT + time: +, - (business days)"
623 "digits 0-9: store-to, same as `s t 0-9'")
bf77c646 624 "trail/time" ?t))
136211a9
EZ
625
626
627(defun calc-u-prefix-help ()
628 (interactive)
629 (calc-do-prefix-help
630 '("Simplify, Convert, Temperature-convert, Base-units"
631 "Autorange; Remove, eXtract; Explain; View-table; 0-9"
632 "Define, Undefine, Get-defn, Permanent"
633 "SHIFT + View-table-other-window"
634 "SHIFT + stat: Mean, G-mean, Std-dev, Covar, maX, miN"
635 "SHIFT + stat: + (sum), - (asum), * (prod), # (count)")
bf77c646 636 "units/stat" ?u))
136211a9
EZ
637
638
639(defun calc-v-prefix-help ()
640 (interactive)
641 (calc-do-prefix-help
642 '("Pack, Unpack, Identity, Diagonal, indeX, Build"
643 "Row, Column, Subvector; Length; Find; Mask, Expand"
644 "Tranpose, Arrange, reVerse; Head, Kons; rNorm"
645 "SHIFT + Det, & (inverse), LUD, Trace, conJtrn, Cross"
646 "SHIFT + Sort, Grade, Histogram; cNorm"
647 "SHIFT + Apply, Map, Reduce, accUm, Inner-, Outer-prod"
648 "SHIFT + sets: V (union), ^ (intersection), - (diff)"
649 "SHIFT + sets: Xor, ~ (complement), Floor, Enum"
650 "SHIFT + sets: : (span), # (card), + (rdup)"
651 "<, =, > (justification); , (commas); [, {, ( (brackets)"
652 "} (matrix brackets); . (abbreviate); / (multi-lines)")
bf77c646 653 "vec/mat" ?v))
136211a9 654
ab5796a9 655;;; arch-tag: 2d347593-7591-449e-a64a-93dab5f2f686
bf77c646 656;;; calc-help.el ends here