From: Richard M. Stallman Date: Mon, 18 May 1998 00:17:38 +0000 (+0000) Subject: (get_boot_time): Scan the whole wtmp file X-Git-Tag: emacs-20.3~962 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=c321b1908be8c325f9a0a80a583dbb73b2399871;p=emacs.git (get_boot_time): Scan the whole wtmp file to find the most recent reboot. --- diff --git a/src/filelock.c b/src/filelock.c index 819516d04bd..6876cbdb5c1 100644 --- a/src/filelock.c +++ b/src/filelock.c @@ -104,13 +104,27 @@ get_boot_time () return boot_time; utmpname ("/var/log/wtmp"); - ut.ut_type = BOOT_TIME; - utp = getutid (&ut); + setutent (); + boot_time = 1; + while (1) + { + /* Find the next reboot record. */ + ut.ut_type = BOOT_TIME; + utp = getutid (&ut); + if (! utp) + break; + /* Compare reboot times and use the newest one. */ + if (utp->ut_time > boot_time) + boot_time = utp->ut_time; + /* Advance on element in the file + so that getutid won't repeat the same one. */ + utp = getutent (); + if (! utp) + break; + } endutent (); - if (!utp) - return boot_time = 1; - return boot_time = utp->ut_time; + return boot_time; #else return 0; #endif