Mercurial > emacs
changeset 21791:ec09080bc3e1
(Fload_average): New arg USE_FLOATS.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Mon, 27 Apr 1998 20:54:19 +0000 |
parents | 825e1cc8f4b7 |
children | c988549f43cd |
files | src/fns.c |
diffstat | 1 files changed, 13 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/src/fns.c Mon Apr 27 20:30:51 1998 +0000 +++ b/src/fns.c Mon Apr 27 20:54:19 1998 +0000 @@ -2494,24 +2494,31 @@ } } -DEFUN ("load-average", Fload_average, Sload_average, 0, 0, 0, +DEFUN ("load-average", Fload_average, Sload_average, 0, 1, 0, "Return list of 1 minute, 5 minute and 15 minute load averages.\n\ Each of the three load averages is multiplied by 100,\n\ then converted to integer.\n\ +When USE-FLOATS is non-nil, floats will be used instead of integers.\n\ +These floats are not multiplied by 100.\n\n\ If the 5-minute or 15-minute load averages are not available, return a\n\ shortened list, containing only those averages which are available.") - () + (use_floats) + Lisp_Object use_floats; { double load_ave[3]; int loads = getloadavg (load_ave, 3); - Lisp_Object ret; + Lisp_Object ret = Qnil; if (loads < 0) error ("load-average not implemented for this operating system"); - ret = Qnil; - while (loads > 0) - ret = Fcons (make_number ((int) (load_ave[--loads] * 100.0)), ret); + while (loads-- > 0) + { + Lisp_Object load = (NILP (use_floats) ? + make_number ((int) (100.0 * load_ave[loads])) + : make_float (load_ave[loads])); + ret = Fcons (load, ret); + } return ret; }