Renamed from strtoxmax.c, removing the old strtoimax.c.
[gnulib.git] / lib / getloadavg.c
index 3d81bdd..e9c4c08 100644 (file)
 extern int errno;
 #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
    LOAD_AVE_CVT, which accepts a value of type LOAD_AVE_TYPE, and
@@ -302,6 +308,12 @@ extern int errno;
 #  define LDAV_CVT(n) (((double) (n)) / FSCALE)
 # endif
 
+# ifndef NLIST_STRUCT
+#  if HAVE_NLIST_H
+#   define NLIST_STRUCT
+#  endif
+# endif
+
 /* VAX C can't handle multi-line #ifs, or lines longer that 256 characters.  */
 # ifndef NLIST_STRUCT
 
@@ -638,8 +650,11 @@ getloadavg (loadavg, nelem)
   if (count <= 0)
     return -1;
 
+  /* The following sscanf must use the C locale.  */
+  setlocale (LC_NUMERIC, "C");
   count = sscanf (ldavgbuf, "%lf %lf %lf",
                  &load_ave[0], &load_ave[1], &load_ave[2]);
+  setlocale (LC_NUMERIC, "");
   if (count < 1)
     return -1;