mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
* doc/misc/calc.texi (Basic Operations on Units):
(Customizing Calc): Mention the variable `calc-allow-units-as-numbers'. * lisp/calc/calc.el (calc-allow-units-as-numbers): New variable. * lisp/calc/calc-units.el (calc-convert-units): Use new variable.
This commit is contained in:
parent
eff1c1900f
commit
5d9c6f17db
@ -1,3 +1,8 @@
|
||||
2013-02-09 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc.texi (Basic Operations on Units):
|
||||
(Customizing Calc): Mention the variable `calc-allow-units-as-numbers'.
|
||||
|
||||
2013-02-08 Aidan Gauland <aidalgol@no8wireless.co.nz>
|
||||
|
||||
* eshell.texi: Fill most of the missing sections.
|
||||
|
@ -27866,11 +27866,6 @@ acres per meter-second.) Remainder units are expressed in terms of
|
||||
``fundamental'' units like @samp{m} and @samp{s}, regardless of the
|
||||
input units.
|
||||
|
||||
If you want to disallow using inconsistent units, you can set the customizable variable
|
||||
@code{calc-ensure-consistent-units} to @code{t} (@pxref{Customizing Calc}). In this case,
|
||||
if you request units which are inconsistent with the original units, you will be warned about
|
||||
it and no conversion will occur.
|
||||
|
||||
One special exception is that if you specify a single unit name, and
|
||||
a compatible unit appears somewhere in the units expression, then
|
||||
that compatible unit will be converted to the new unit and the
|
||||
@ -27880,6 +27875,12 @@ change the @samp{s} to @samp{ms} to get @samp{9.8e-4 cm/ms^2}.
|
||||
The ``remainder unit'' @samp{cm} is left alone rather than being
|
||||
changed to the base unit @samp{m}.
|
||||
|
||||
If you want to disallow using inconsistent units, you can set the
|
||||
customizable variable @code{calc-ensure-consistent-units} to @code{t}
|
||||
(@pxref{Customizing Calc}). In this case, if you request units which
|
||||
are inconsistent with the original units, you will be warned about it
|
||||
and no conversion will occur.
|
||||
|
||||
You can use explicit unit conversion instead of the @kbd{u s} command
|
||||
to gain more control over the units of the result of an expression.
|
||||
For example, given @samp{5 m + 23 mm}, you can type @kbd{u c m} or
|
||||
@ -27912,10 +27913,16 @@ Composite units are expanded as if by @kbd{a x}, so that
|
||||
|
||||
If the value on the stack does not contain any units, @kbd{u c} will
|
||||
prompt first for the old units which this value should be considered
|
||||
to have, then for the new units. Assuming the old and new units you
|
||||
give are consistent with each other, the result also will not contain
|
||||
any units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}}
|
||||
converts the number 2 on the stack to 5.08.
|
||||
to have, then for the new units. (If the value on the stack can be
|
||||
simplified so that it doesn't contain any units, like @samp{ft/in} can
|
||||
be simplified to 12, then @kbd{u c} will still prompt for both old
|
||||
units and new units. You can ignore the prompt for old units with
|
||||
@key{RET}, or turn off the prompt by setting the customizable variable
|
||||
@code{calc-allow-units-as-numbers} to @code{nil}.
|
||||
@pxref{Customizing Calc}) Assuming the old and new units you give are
|
||||
consistent with each other, the result also will not contain any
|
||||
units. For example, @kbd{@w{u c} cm @key{RET} in @key{RET}} converts
|
||||
the number 2 on the stack to 5.08.
|
||||
|
||||
@kindex u b
|
||||
@pindex calc-base-units
|
||||
@ -35694,6 +35701,17 @@ have different dimensions. The default value of @code{calc-ensure-consistent-uni
|
||||
is @code{nil}.
|
||||
@end defvar
|
||||
|
||||
@defvar calc-allow-units-as-numbers
|
||||
When converting units, the variable @code{calc-allow-units-as-numbers}
|
||||
determines whether or not values which can be simplified so that
|
||||
they don't contain units (such as @samp{ft/in} can be simplified to 12)
|
||||
can be regarded as not containing units. If
|
||||
@code{calc-allow-units-as-numbers} is non-@code{nil}, then @kbd{u c}
|
||||
will prompt for both old units and new units when converting an expression
|
||||
like @samp{ft/in}, otherwise @kbd{u c} will only prompt for the new units.
|
||||
The default value of @code{calc-allow-units-as-numbers} is @code{t}.
|
||||
@end defvar
|
||||
|
||||
@defvar calc-undo-length
|
||||
The variable @code{calc-undo-length} determines the number of undo
|
||||
steps that Calc will keep track of when @code{calc-quit} is called.
|
||||
|
@ -1,3 +1,9 @@
|
||||
2013-02-09 Jay Belanger <jay.p.belanger@gmail.com>
|
||||
|
||||
* calc/calc.el (calc-allow-units-as-numbers): New variable.
|
||||
* calc/calc-units.el (calc-convert-units): Use new variable.
|
||||
|
||||
|
||||
2013-02-09 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* subr.el (buffer-file-type, default-buffer-file-type): Remove.
|
||||
|
@ -437,17 +437,22 @@ If COMP or STD is non-nil, put that in the units table instead."
|
||||
(list new-units (car default-units))
|
||||
math-default-units-table))))))
|
||||
|
||||
(defvar calc-allow-units-as-numbers)
|
||||
|
||||
(defun calc-convert-units (&optional old-units new-units)
|
||||
(interactive)
|
||||
(calc-slow-wrapper
|
||||
(let ((expr (calc-top-n 1))
|
||||
(uoldname nil)
|
||||
(unitscancel nil)
|
||||
(nouold nil)
|
||||
unew
|
||||
units
|
||||
defunits)
|
||||
(if (or (not (math-units-in-expr-p expr t))
|
||||
(setq unitscancel (eq (math-get-standard-units expr) 1)))
|
||||
(setq unitscancel (and
|
||||
calc-allow-units-as-numbers
|
||||
(eq (math-get-standard-units expr) 1))))
|
||||
(let ((uold (or old-units
|
||||
(progn
|
||||
(setq uoldname
|
||||
@ -457,6 +462,7 @@ If COMP or STD is non-nil, put that in the units table instead."
|
||||
(read-string "Old units: ")))
|
||||
(if (equal uoldname "")
|
||||
(progn
|
||||
(setq nouold unitscancel)
|
||||
(setq uoldname "1")
|
||||
1)
|
||||
(if (string-match "\\` */" uoldname)
|
||||
@ -469,7 +475,7 @@ If COMP or STD is non-nil, put that in the units table instead."
|
||||
(unless new-units
|
||||
(setq new-units
|
||||
(read-string (concat
|
||||
(if uoldname
|
||||
(if (and uoldname (not nouold))
|
||||
(concat "Old units: "
|
||||
uoldname
|
||||
", new units")
|
||||
|
@ -426,6 +426,14 @@ when converting units."
|
||||
:version "24.3"
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom calc-allow-units-as-numbers
|
||||
t
|
||||
"If non-nil, allow unit expressions to be treated like numbers
|
||||
when converting units, if the expression can be simplified to be unitless."
|
||||
:group 'calc
|
||||
:version "24.4"
|
||||
:type 'boolean)
|
||||
|
||||
(defcustom calc-undo-length
|
||||
100
|
||||
"The number of undo steps that will be preserved when Calc is quit."
|
||||
|
Loading…
Reference in New Issue
Block a user