Include locale.h.

[!HAVE_SETLOCALE]: Define-away setlocale.
(getloadavg): Ensure the sscanf of /proc/getloadavg data uses the
`C' numeric locale.  Restore afterwards.
This commit is contained in:
Jim Meyering 1999-01-31 16:54:00 +00:00
parent 62b3fd4e81
commit a12101a224

View File

@ -98,8 +98,14 @@
extern int errno; extern int errno;
#endif #endif
#ifndef HAVE_GETLOADAVG #if HAVE_LOCALE_H
# include <locale.h>
#endif
#if !HAVE_SETLOCALE
# define setlocale(Category, Locale) /* empty */
#endif
#ifndef HAVE_GETLOADAVG
/* The existing Emacs configuration files define a macro called /* The existing Emacs configuration files define a macro called
LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and
@ -638,8 +644,11 @@ getloadavg (loadavg, nelem)
if (count <= 0) if (count <= 0)
return -1; return -1;
/* The following sscanf must use the C locale. */
setlocale (LC_NUMERIC, "C");
count = sscanf (ldavgbuf, "%lf %lf %lf", count = sscanf (ldavgbuf, "%lf %lf %lf",
&load_ave[0], &load_ave[1], &load_ave[2]); &load_ave[0], &load_ave[1], &load_ave[2]);
setlocale (LC_NUMERIC, "");
if (count < 1) if (count < 1)
return -1; return -1;