diff lisp/calc/calc.el @ 57115:abc0e9beaacd

calc/calc.el (calc-mode-var-list): Define this variable. (calc-always-load-extensions, calc-line-numbering, calc-line-breaking, calc-display-just, calc-display-origin, calc-number-radix, calc-leading-zeros, calc-group-digits, calc-group-char, calc-point-char, calc-frac-format, calc-prefer-frac, calc-hms-format, calc-date-format, calc-float-format, calc-full-float-format, calc-complex-format, calc-complex-mode, calc-infinite-mode, calc-display-strings, calc-matrix-just, calc-break-vectors, calc-full-vectors, calc-full-trail-vectors, calc-vector-commas, calc-vector-brackets, calc-matrix-brackets, calc-language, calc-language-option, calc-left-label, calc-right-label, calc-word-size, calc-previous-modulo, calc-simplify-mode, calc-auto-recompute, calc-display-raw, calc-internal-prec, calc-angle-mode, calc-algebraic-mode, calc-incomplete-algebraic-mode, calc-symbolic-mode, calc-matrix-mode, calc-shift-prefix, calc-window-height, calc-display-trail, calc-show-selections, calc-use-selections, calc-assoc-selections, calc-display-working-message, calc-auto-why , calc-timing, calc-mode-save-mode, calc-standard-date-formats, calc-autorange-units, calc-was-keypad-mode, calc-full-mode, calc-user-parse-tables, calc-gnuplot-default-device, calc-gnuplot-default-output, calc-gnuplot-print-device, calc-gnuplot-print-output, calc-gnuplot-geometry, calc-graph-default-resolution, calc-graph-default-resolution-3d, calc-invocation-macro, calc-show-banner): Give these values as part of `calc-mode-var-list's initialization after the variables are declared with defvar.
author Jay Belanger <jay.p.belanger@gmail.com>
date Wed, 15 Sep 2004 16:48:19 +0000
parents 4a88f2b2e26a
children d2ffbe58525c
line wrap: on
line diff
--- a/lisp/calc/calc.el	Wed Sep 15 16:47:08 2004 +0000
+++ b/lisp/calc/calc.el	Wed Sep 15 16:48:19 2004 +0000
@@ -257,60 +257,145 @@
   "Index into `calc-stack' of \"top\" of stack.
 This is 1 unless `calc-truncate-stack' has been used.")
 
-(defvar calc-always-load-extensions nil
-  "If non-nil, load the calc-ext module automatically when calc is loaded.")
-
-(defvar calc-line-numbering t
-  "If non-nil, display line numbers in Calculator stack.")
-
-(defvar calc-line-breaking t
-  "If non-nil, break long values across multiple lines in Calculator stack.")
-
-(defvar calc-display-just nil
-  "If nil, stack display is left-justified.
+(defvar calc-display-sci-high 0
+  "Floating-point numbers with this positive exponent or higher above the
+current precision are displayed in scientific notation in calc-mode.")
+
+(defvar calc-display-sci-low -3
+  "Floating-point numbers with this negative exponent or lower are displayed
+scientific notation in calc-mode.")
+
+(defvar calc-other-modes nil
+  "List of used-defined strings to append to Calculator mode line.")
+
+(defvar calc-Y-help-msgs nil
+  "List of strings for Y prefix help.")
+
+(defvar calc-loaded-settings-file nil
+  "t if `calc-settings-file' has been loaded yet.")
+
+(defvar calc-always-load-extensions)
+(defvar calc-line-numbering)
+(defvar calc-line-breaking)
+(defvar calc-display-just)
+(defvar calc-display-origin)
+(defvar calc-number-radix)
+(defvar calc-leading-zeros)
+(defvar calc-group-digits)
+(defvar calc-group-char)
+(defvar calc-point-char)
+(defvar calc-frac-format)
+(defvar calc-prefer-frac)
+(defvar calc-hms-format)
+(defvar calc-date-format)
+(defvar calc-float-format)
+(defvar calc-full-float-format)
+(defvar calc-complex-format)
+(defvar calc-complex-mode)
+(defvar calc-infinite-mode)
+(defvar calc-display-strings)
+(defvar calc-matrix-just)
+(defvar calc-break-vectors)
+(defvar calc-full-vectors)
+(defvar calc-full-trail-vectors)
+(defvar calc-vector-commas)
+(defvar calc-vector-brackets)
+(defvar calc-matrix-brackets)
+(defvar calc-language)
+(defvar calc-language-option)
+(defvar calc-left-label)
+(defvar calc-right-label)
+(defvar calc-word-size)
+(defvar calc-previous-modulo)
+(defvar calc-simplify-mode)
+(defvar calc-auto-recompute)
+(defvar calc-display-raw)
+(defvar calc-internal-prec)
+(defvar calc-angle-mode)
+(defvar calc-algebraic-mode)
+(defvar calc-incomplete-algebraic-mode)
+(defvar calc-symbolic-mode)
+(defvar calc-matrix-mode)
+(defvar calc-shift-prefix)
+(defvar calc-window-height)
+(defvar calc-display-trail)
+(defvar calc-show-selections)
+(defvar calc-use-selections)
+(defvar calc-assoc-selections)
+(defvar calc-display-working-message)
+(defvar calc-auto-why)
+(defvar calc-timing)
+(defvar calc-mode-save-mode)
+(defvar calc-standard-date-formats)
+(defvar calc-autorange-units)
+(defvar calc-was-keypad-mode)
+(defvar calc-full-mode)
+(defvar calc-user-parse-tables)
+(defvar calc-gnuplot-default-device)
+(defvar calc-gnuplot-default-output)
+(defvar calc-gnuplot-print-device)
+(defvar calc-gnuplot-print-output)
+(defvar calc-gnuplot-geometry)
+(defvar calc-graph-default-resolution)
+(defvar calc-graph-default-resolution-3d)
+(defvar calc-invocation-macro)
+(defvar calc-show-banner)
+
+(defconst calc-mode-var-list '(
+  (calc-always-load-extensions nil
+   "If non-nil, load the calc-ext module automatically when calc is loaded.")
+
+  (calc-line-numbering t
+   "If non-nil, display line numbers in Calculator stack.")
+
+  (calc-line-breaking t
+   "If non-nil, break long values across multiple lines in Calculator stack.")
+
+  (calc-display-just nil
+   "If nil, stack display is left-justified.
 If `right', stack display is right-justified.
 If `center', stack display is centered.")
 
-(defvar calc-display-origin nil
-  "Horizontal origin of displayed stack entries.
+  (calc-display-origin nil
+   "Horizontal origin of displayed stack entries.
 In left-justified mode, this is effectively indentation.  (Default 0).
 In right-justified mode, this is effectively window width.
 In centered mode, center of stack entry is placed here.")
 
-(defvar calc-number-radix 10
-  "Radix for entry and display of numbers in calc-mode, 2-36.")
-
-(defvar calc-leading-zeros nil
-  "If non-nil, leading zeros are provided to pad integers to calc-word-size.")
-
-(defvar calc-group-digits nil
-  "If non-nil, group digits in large displayed integers by inserting spaces.
+  (calc-number-radix 10
+   "Radix for entry and display of numbers in calc-mode, 2-36.")
+
+  (calc-leading-zeros nil
+   "If non-nil, leading zeros are provided to pad integers to calc-word-size.")
+
+  (calc-group-digits nil
+   "If non-nil, group digits in large displayed integers by inserting spaces.
 If an integer, group that many digits at a time.
 If t, use 4 for binary and hex, 3 otherwise.")
 
-(defvar calc-group-char ","
-  "The character (in the form of a string) to be used for grouping digits.
+  (calc-group-char ","
+   "The character (in the form of a string) to be used for grouping digits.
 This is used only when calc-group-digits mode is on.")
 
-(defvar calc-point-char "."
-  "The character (in the form of a string) to be used as a decimal point.")
-
-(defvar calc-frac-format '(":" nil)
-  "Format of displayed fractions; a string of one or two of \":\" or \"/\".")
-
-(defvar calc-prefer-frac nil
-  "If non-nil, prefer fractional over floating-point results.")
-
-(defvar calc-hms-format "%s@ %s' %s\""
-  "Format of displayed hours-minutes-seconds angles, a format string.
+  (calc-point-char "."
+   "The character (in the form of a string) to be used as a decimal point.")
+  
+  (calc-frac-format (":" nil)
+   "Format of displayed fractions; a string of one or two of \":\" or \"/\".")
+
+  (calc-prefer-frac nil
+   "If non-nil, prefer fractional over floating-point results.")
+
+  (calc-hms-format "%s@ %s' %s\""
+   "Format of displayed hours-minutes-seconds angles, a format string.
 String must contain three %s marks for hours, minutes, seconds respectively.")
 
-(defvar calc-date-format '((H ":" mm C SS pp " ")
-			   Www " " Mmm " " D ", " YYYY)
-  "Format of displayed date forms.")
-
-(defvar calc-float-format '(float 0)
-  "Format to use for display of floating-point numbers in calc-mode.
+  (calc-date-format ((H ":" mm C SS pp " ")
+                     Www " " Mmm " " D ", " YYYY)
+   "Format of displayed date forms.")
+
+  (calc-float-format (float 0)
+   "Format to use for display of floating-point numbers in calc-mode.
 Must be a list of one of the following forms:
  (float 0)      Floating point format, display full precision.
  (float N)      N > 0: Floating point format, at most N significant figures.
@@ -323,54 +408,54 @@
  (eng N)        N > 0: Engineering notation, N significant figures.
  (eng -N)       -N < 0: Engineering notation, calc-internal-prec - N figs.")
 
-(defvar calc-full-float-format '(float 0)
-  "Format to use when full precision must be displayed.")
-
-(defvar calc-complex-format nil
-  "Format to use for display of complex numbers in calc-mode.  Must be one of:
+  (calc-full-float-format (float 0)
+   "Format to use when full precision must be displayed.")
+
+  (calc-complex-format nil
+   "Format to use for display of complex numbers in calc-mode.  Must be one of:
   nil            Use (x, y) form.
   i              Use x + yi form.
   j              Use x + yj form.")
 
-(defvar calc-complex-mode 'cplx
-  "Preferred form, either `cplx' or `polar', for complex numbers.")
-
-(defvar calc-infinite-mode nil
-  "If nil, 1 / 0 is left unsimplified.
+  (calc-complex-mode cplx
+   "Preferred form, either `cplx' or `polar', for complex numbers.")
+
+  (calc-infinite-mode nil
+   "If nil, 1 / 0 is left unsimplified.
 If 0, 1 / 0 is changed to inf (zeros are considered positive).
 Otherwise, 1 / 0 is changed to uinf (undirected infinity).")
 
-(defvar calc-display-strings nil
-  "If non-nil, display vectors of byte-sized integers as strings.")
-
-(defvar calc-matrix-just 'center
-  "If nil, vector elements are left-justified.
+  (calc-display-strings nil
+   "If non-nil, display vectors of byte-sized integers as strings.")
+
+  (calc-matrix-just 'center
+   "If nil, vector elements are left-justified.
 If `right', vector elements are right-justified.
 If `center', vector elements are centered.")
 
-(defvar calc-break-vectors nil
-  "If non-nil, display vectors one element per line.")
-
-(defvar calc-full-vectors t
-  "If non-nil, display long vectors in full.  If nil, use abbreviated form.")
-
-(defvar calc-full-trail-vectors t
-  "If non-nil, display long vectors in full in the trail.")
-
-(defvar calc-vector-commas ","
-  "If non-nil, separate elements of displayed vectors with this string.")
-
-(defvar calc-vector-brackets "[]"
-  "If non-nil, surround displayed vectors with these characters.")
-
-(defvar calc-matrix-brackets '(R O)
-  "A list of code-letter symbols that control \"big\" matrix display.
+  (calc-break-vectors nil
+   "If non-nil, display vectors one element per line.")
+
+  (calc-full-vectors t
+   "If non-nil, display long vectors in full.  If nil, use abbreviated form.")
+
+  (calc-full-trail-vectors t
+   "If non-nil, display long vectors in full in the trail.")
+
+  (calc-vector-commas ","
+   "If non-nil, separate elements of displayed vectors with this string.")
+
+  (calc-vector-brackets "[]"
+   "If non-nil, surround displayed vectors with these characters.")
+
+  (calc-matrix-brackets '(R O)
+   "A list of code-letter symbols that control \"big\" matrix display.
 If `R' is present, display inner brackets for matrices.
 If `O' is present, display outer brackets for matrices (above/below).
 If `C' is present, display outer brackets for matrices (centered).")
 
-(defvar calc-language nil
-  "Language or format for entry and display of stack values.  Must be one of:
+  (calc-language nil
+   "Language or format for entry and display of stack values.  Must be one of:
   nil		Use standard Calc notation.
   flat		Use standard Calc notation, one-line format.
   big		Display formulas in 2-d notation (enter w/std notation).
@@ -383,38 +468,23 @@
   math		Use Mathematica(tm) notation.
   maple		Use Maple notation.")
 
-(defvar calc-language-option nil
-  "Numeric prefix argument for the command that set `calc-language'.")
-
-(defvar calc-function-open "("
-  "Open-parenthesis string for function call notation.")
-
-(defvar calc-function-close ")"
-  "Close-parenthesis string for function call notation.")
-
-(defvar calc-language-output-filter nil
-  "Function through which to pass strings after formatting.")
-
-(defvar calc-language-input-filter nil
-  "Function through which to pass strings before parsing.")
-
-(defvar calc-radix-formatter nil
-  "Formatting function used for non-decimal numbers.")
-
-(defvar calc-left-label ""
-  "Label to display at left of formula.")
-
-(defvar calc-right-label ""
-  "Label to display at right of formula.")
-
-(defvar calc-word-size 32
-  "Minimum number of bits per word, if any, for binary operations in calc-mode.")
-
-(defvar calc-previous-modulo nil
-  "Most recently used value of M in a modulo form.")
-
-(defvar calc-simplify-mode nil
-  "Type of simplification applied to results.
+  (calc-language-option nil
+   "Numeric prefix argument for the command that set `calc-language'.")
+
+  (calc-left-label ""
+   "Label to display at left of formula.")
+
+  (calc-right-label ""
+   "Label to display at right of formula.")
+
+  (calc-word-size 32
+   "Minimum number of bits per word, if any, for binary operations in calc-mode.")
+
+  (calc-previous-modulo nil
+   "Most recently used value of M in a modulo form.")
+
+  (calc-simplify-mode nil
+   "Type of simplification applied to results.
 If `none', results are not simplified when pushed on the stack.
 If `num', functions are simplified only when args are constant.
 If nil, only fast simplifications are applied.
@@ -423,119 +493,112 @@
 If `ext', `math-simplify-extended' is applied.
 If `units', `math-simplify-units' is applied.")
 
-(defvar calc-auto-recompute t
-  "If non-nil, recompute evalto's automatically when necessary.")
-
-(defvar calc-display-raw nil
-  "If non-nil, display shows unformatted Lisp exprs.  (For debugging)")
-
-(defvar calc-internal-prec 12
-  "Number of digits of internal precision for calc-mode calculations.")
-
-(defvar calc-inverse-flag nil
-  "If non-nil, next operation is Inverse.")
-
-(defvar calc-hyperbolic-flag nil
-  "If non-nil, next operation is Hyperbolic.")
-
-(defvar calc-keep-args-flag nil
-  "If non-nil, next operation should not remove its arguments from stack.")
-
-(defvar calc-angle-mode 'deg
-  "If deg, angles are in degrees; if rad, angles are in radians.
+  (calc-auto-recompute t
+   "If non-nil, recompute evalto's automatically when necessary.")
+
+  (calc-display-raw nil
+   "If non-nil, display shows unformatted Lisp exprs.  (For debugging)")
+
+  (calc-internal-prec 12
+   "Number of digits of internal precision for calc-mode calculations.")
+
+  (calc-angle-mode deg
+   "If deg, angles are in degrees; if rad, angles are in radians.
 If hms, angles are in degrees-minutes-seconds.")
 
-(defvar calc-algebraic-mode nil
-  "If non-nil, numeric entry accepts whole algebraic expressions.
+  (calc-algebraic-mode nil
+   "If non-nil, numeric entry accepts whole algebraic expressions.
 If nil, algebraic expressions must be preceded by \"'\".")
 
-(defvar calc-incomplete-algebraic-mode nil
-  "Like calc-algebraic-mode except only affects ( and [ keys.")
-
-(defvar calc-symbolic-mode nil
-  "If non-nil, inexact numeric computations like sqrt(2) are postponed.
+  (calc-incomplete-algebraic-mode nil
+   "Like calc-algebraic-mode except only affects ( and [ keys.")
+
+  (calc-symbolic-mode nil
+   "If non-nil, inexact numeric computations like sqrt(2) are postponed.
 If nil, computations on numbers always yield numbers where possible.")
 
-(defvar calc-matrix-mode nil
-  "If `matrix', variables are assumed to be matrix-valued.
+  (calc-matrix-mode nil
+   "If `matrix', variables are assumed to be matrix-valued.
 If a number, variables are assumed to be NxN matrices.
 If `scalar', variables are assumed to be scalar-valued.
 If nil, symbolic math routines make no assumptions about variables.")
 
-(defvar calc-shift-prefix nil
-  "If non-nil, shifted letter keys are prefix keys rather than normal meanings.")
-
-(defvar calc-window-height 7
-  "Initial height of Calculator window.")
-
-(defvar calc-display-trail t
-  "If non-nil, M-x calc creates a window to display Calculator trail.")
-
-(defvar calc-show-selections t
-  "If non-nil, selected sub-formulas are shown by obscuring rest of formula.
+  (calc-shift-prefix nil
+   "If non-nil, shifted letter keys are prefix keys rather than normal meanings.")
+
+  (calc-window-height 7
+   "Initial height of Calculator window.")
+
+  (calc-display-trail t
+   "If non-nil, M-x calc creates a window to display Calculator trail.")
+
+  (calc-show-selections t
+   "If non-nil, selected sub-formulas are shown by obscuring rest of formula.
 If nil, selected sub-formulas are highlighted by obscuring the sub-formulas.")
 
-(defvar calc-use-selections t
-  "If non-nil, commands operate only on selected portions of formulas.
+  (calc-use-selections t
+   "If non-nil, commands operate only on selected portions of formulas.
 If nil, selections displayed but ignored.")
 
-(defvar calc-assoc-selections t
-  "If non-nil, selection hides deep structure of associative formulas.")
-
-(defvar calc-display-working-message 'lots
-  "If non-nil, display \"Working...\" for potentially slow Calculator commands.")
-
-(defvar calc-auto-why 'maybe
-  "If non-nil, automatically execute a \"why\" command to explain odd results.")
-
-(defvar calc-timing nil
-  "If non-nil, display timing information on each slow command.")
-
-(defvar calc-display-sci-high 0
-  "Floating-point numbers with this positive exponent or higher above the
-current precision are displayed in scientific notation in calc-mode.")
-
-(defvar calc-display-sci-low -3
-  "Floating-point numbers with this negative exponent or lower are displayed
-scientific notation in calc-mode.")
-
-
-(defvar calc-other-modes nil
-  "List of used-defined strings to append to Calculator mode line.")
-
-(defvar calc-Y-help-msgs nil
-  "List of strings for Y prefix help.")
-
-(defvar calc-loaded-settings-file nil
-  "t if `calc-settings-file' has been loaded yet.")
-
-
-
-(defvar calc-mode-save-mode 'local)
-(defvar calc-standard-date-formats
-  '("N"
-    "<H:mm:SSpp >Www Mmm D, YYYY"
-    "D Mmm YYYY<, h:mm:SS>"
-    "Www Mmm BD< hh:mm:ss> YYYY"
-    "M/D/Y< H:mm:SSpp>"
-    "D.M.Y< h:mm:SS>"
-    "M-D-Y< H:mm:SSpp>"
-    "D-M-Y< h:mm:SS>"
-    "j<, h:mm:SS>"
-    "YYddd< hh:mm:ss>"))
-(defvar calc-autorange-units nil)
-(defvar calc-was-keypad-mode nil)
-(defvar calc-full-mode nil)
-(defvar calc-user-parse-tables nil)
-(defvar calc-gnuplot-default-device "default")
-(defvar calc-gnuplot-default-output "STDOUT")
-(defvar calc-gnuplot-print-device "postscript")
-(defvar calc-gnuplot-print-output "auto")
-(defvar calc-gnuplot-geometry nil)
-(defvar calc-graph-default-resolution 15)
-(defvar calc-graph-default-resolution-3d 5)
-(defvar calc-invocation-macro nil)
-(defvar calc-show-banner t)
+  (calc-assoc-selections t
+   "If non-nil, selection hides deep structure of associative formulas.")
+
+  (calc-display-working-message 'lots
+   "If non-nil, display \"Working...\" for potentially slow Calculator commands.")
+
+  (calc-auto-why 'maybe
+   "If non-nil, automatically execute a \"why\" command to explain odd results.")
+
+  (calc-timing nil
+   "If non-nil, display timing information on each slow command.")
+
+  (calc-mode-save-mode local)
+
+  (calc-standard-date-formats
+   '("N"
+     "<H:mm:SSpp >Www Mmm D, YYYY"
+     "D Mmm YYYY<, h:mm:SS>"
+     "Www Mmm BD< hh:mm:ss> YYYY"
+     "M/D/Y< H:mm:SSpp>"
+     "D.M.Y< h:mm:SS>"
+     "M-D-Y< H:mm:SSpp>"
+     "D-M-Y< h:mm:SS>"
+     "j<, h:mm:SS>"
+     "YYddd< hh:mm:ss>"))
+
+  (calc-autorange-units nil)
+  
+  (calc-was-keypad-mode nil)
+  
+  (calc-full-mode nil)
+
+  (calc-user-parse-tables nil)
+
+  (calc-gnuplot-default-device "default")
+
+  (calc-gnuplot-default-output "STDOUT")
+
+  (calc-gnuplot-print-device "postscript")
+  
+  (calc-gnuplot-print-output "auto")
+
+  (calc-gnuplot-geometry nil)
+
+  (calc-graph-default-resolution 15)
+
+  (calc-graph-default-resolution-3d 5)
+  
+  (calc-invocation-macro nil)
+
+  (calc-show-banner t))
+  "List of variables (and default values) used in customizing GNU Calc.")
+
+(mapcar (function (lambda (v)
+                    (or (boundp (car v))
+                        (set (car v) (nth 1 v)))
+                    (if (nth 2 v)
+                        (put (car v) 'variable-documentation (nth 2 v)))))
+        calc-mode-var-list)
 
 (defconst calc-local-var-list '(calc-stack
 				calc-stack-top
@@ -666,9 +729,23 @@
 (defvar calc-trail-buffer nil)		; Pointer to Calc Trail buffer.
 (defvar calc-why nil)			; Explanations of most recent errors.
 (defvar calc-next-why nil)
-(defvar calc-inverse-flag nil)
-(defvar calc-hyperbolic-flag nil)
-(defvar calc-keep-args-flag nil)
+(defvar calc-inverse-flag nil
+  "If non-nil, next operation is Inverse.")
+(defvar calc-hyperbolic-flag nil
+  "If non-nil, next operation is Hyperbolic.")
+(defvar calc-keep-args-flag nil
+  "If non-nil, next operation should not remove its arguments from stack.")
+(defvar calc-function-open "("
+  "Open-parenthesis string for function call notation.")
+(defvar calc-function-close ")"
+  "Close-parenthesis string for function call notation.")
+(defvar calc-language-output-filter nil
+  "Function through which to pass strings after formatting.")
+(defvar calc-language-input-filter nil
+  "Function through which to pass strings before parsing.")
+(defvar calc-radix-formatter nil
+  "Formatting function used for non-decimal numbers.")
+
 (defvar calc-last-kill nil)		; Last number killed in calc-mode.
 (defvar calc-previous-alg-entry nil)	; Previous algebraic entry.
 (defvar calc-dollar-values nil)		; Values to be used for '$'.