diff options
author | Jim Meyering <jim@meyering.net> | 1999-01-31 16:53:28 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 1999-01-31 16:53:28 +0000 |
commit | 62b3fd4e81e400e4885a5ca0d0ead8ba7f0115ea (patch) | |
tree | 75991f5dd3ae4d27df45b30b7786e6d6b3e2ebbf | |
parent | c4ece6d8cb80bbfc7a2ad2ab252be9f89138acd7 (diff) | |
download | coreutils-62b3fd4e81e400e4885a5ca0d0ead8ba7f0115ea.tar.xz |
(print_uptime): Use the C numeric locale for sscanf
of /proc/uptime data, then restore.
-rw-r--r-- | src/uptime.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/uptime.c b/src/uptime.c index c52496272..352f0ab4b 100644 --- a/src/uptime.c +++ b/src/uptime.c @@ -1,5 +1,5 @@ /* GNU's uptime. - Copyright (C) 92, 93, 94, 95, 96, 1997, 1998 Free Software Foundation, Inc. + Copyright (C) 92, 93, 94, 95, 96, 1997, 1998, 1999 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -63,9 +63,14 @@ print_uptime (int n, const STRUCT_UTMP *this) char buf[BUFSIZ]; int res; fgets (buf, BUFSIZ, fp); + + /* The following sscanf must use the C locale. */ + setlocale (LC_NUMERIC, "C"); res = sscanf (buf, "%lf", &upsecs); + setlocale (LC_NUMERIC, ""); if (res == 1) uptime = (time_t) upsecs; + fclose (fp); } #endif /* HAVE_PROC_UPTIME */ |