X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=miscutils%2Flast.c;h=668f0c17dc5d5f36731483066394361cc50c91fb;hb=48237b0c88343154d58854020c3a9c8b07c61b10;hp=d7ce5e775bc689f474230d215beb6baba99f9151;hpb=9a58b02ec75caafb7214f1ad0317f9a4830cbd2a;p=oweals%2Fbusybox.git diff --git a/miscutils/last.c b/miscutils/last.c index d7ce5e775..668f0c17d 100644 --- a/miscutils/last.c +++ b/miscutils/last.c @@ -4,32 +4,11 @@ * * Copyright (C) 2003-2004 by Erik Andersen * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * + * Licensed under the GPL version 2, see the file LICENSE in this tarball. */ -#include -#include -#include -#include -#include -#include -#include -#include -#include #include "busybox.h" +#include #ifndef SHUTDOWN_TIME # define SHUTDOWN_TIME 254 @@ -39,19 +18,24 @@ * Do what we can while still keeping this reasonably small. * Note: We are assuming the ut_id[] size is fixed at 4. */ -#if (UT_LINESIZE != 32) || (UT_NAMESIZE != 32) || (UT_HOSTSIZE != 256) +#if defined UT_LINESIZE \ + && ((UT_LINESIZE != 32) || (UT_NAMESIZE != 32) || (UT_HOSTSIZE != 256)) +#error struct utmp member char[] size(s) have changed! +#elif defined __UT_LINESIZE \ + && ((__UT_LINESIZE != 32) || (__UT_NAMESIZE != 64) || (__UT_HOSTSIZE != 256)) #error struct utmp member char[] size(s) have changed! #endif -extern int last_main(int argc, char **argv) +int last_main(int argc, char **argv) { struct utmp ut; int n, file = STDIN_FILENO; + time_t t_tmp; if (argc > 1) { bb_show_usage(); } - file = bb_xopen(_PATH_WTMP, O_RDONLY); + file = xopen(bb_path_wtmp_file, O_RDONLY); printf("%-10s %-14s %-18s %-12.12s %s\n", "USER", "TTY", "HOST", "LOGIN", "TIME"); while ((n = safe_read(file, (void*)&ut, sizeof(struct utmp))) != 0) { @@ -98,10 +82,10 @@ extern int last_main(int argc, char **argv) break; } } - + t_tmp = (time_t)ut.ut_tv.tv_sec; printf("%-10s %-14s %-18s %-12.12s\n", ut.ut_user, ut.ut_line, ut.ut_host, - ctime((time_t *)&(ut.ut_tv.tv_sec)) + 4); + ctime(&t_tmp) + 4); } - bb_fflush_stdout_and_exit(EXIT_SUCCESS); + fflush_stdout_and_exit(EXIT_SUCCESS); }