git: aaa302d17fe1 - main - last(1): Complete libxo transition
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 12 Oct 2024 18:30:13 UTC
The branch main has been updated by lwhsu:
URL: https://cgit.FreeBSD.org/src/commit/?id=aaa302d17fe1ac0e7075ce9189c1452fe49dce36
commit aaa302d17fe1ac0e7075ce9189c1452fe49dce36
Author: Yan-Hao Wang <yanhaowang@FreeBSD.org>
AuthorDate: 2024-10-12 14:05:14 +0000
Commit: Li-Wen Hsu <lwhsu@FreeBSD.org>
CommitDate: 2024-10-12 18:21:45 +0000
last(1): Complete libxo transition
Reviewed by: des
MFC after: 3 days
Differential Revision: https://reviews.freebsd.org/D41424
---
usr.bin/last/last.c | 31 ++++++++++++++++++++-----------
1 file changed, 20 insertions(+), 11 deletions(-)
diff --git a/usr.bin/last/last.c b/usr.bin/last/last.c
index c6b1b646ab70..69848f359d79 100644
--- a/usr.bin/last/last.c
+++ b/usr.bin/last/last.c
@@ -36,7 +36,6 @@
#include <sys/stat.h>
#include <capsicum_helpers.h>
-#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <langinfo.h>
@@ -106,7 +105,7 @@ usage(void)
xo_error(
"usage: last [-swy] [-d [[CC]YY][MMDD]hhmm[.SS]] [-f file] [-h host]\n"
" [-n maxrec] [-t tty] [user ...]\n");
- exit(1);
+ exit(EXIT_FAILURE);
}
int
@@ -120,8 +119,7 @@ main(int argc, char *argv[])
argc = xo_parse_args(argc, argv);
if (argc < 0)
- exit(1);
- atexit(xo_finish_atexit);
+ exit(EXIT_FAILURE);
maxrec = -1;
snaptime = 0;
@@ -138,8 +136,11 @@ main(int argc, char *argv[])
if (p == NULL)
p = strchr(argv[optind], ch);
maxrec = atol(p);
- if (!maxrec)
- exit(0);
+ if (!maxrec) {
+ if (xo_finish() < 0)
+ xo_err(EXIT_FAILURE, "stdout");
+ exit(EXIT_SUCCESS);
+ }
}
break;
case 'd':
@@ -205,7 +206,9 @@ main(int argc, char *argv[])
}
}
wtmp();
- exit(0);
+ if (xo_finish() < 0)
+ xo_err(EXIT_FAILURE, "stdout");
+ exit(EXIT_SUCCESS);
}
/*
@@ -278,8 +281,11 @@ doentry(struct utmpx *bp)
* shutdown/reboot appears while we are tracking the
* active range
*/
- if (snaptime && snapfound)
- exit(0);
+ if (snaptime && snapfound) {
+ if (xo_finish() < 0)
+ xo_err(EXIT_FAILURE, "stdout");
+ exit(EXIT_SUCCESS);
+ }
/*
* don't print shutdown/reboot entries unless flagged for
*/
@@ -340,8 +346,11 @@ printentry(struct utmpx *bp, struct idtab *tt)
time_t delta; /* time difference */
time_t t;
- if (maxrec != -1 && !maxrec--)
- exit(0);
+ if (maxrec != -1 && !maxrec--) {
+ if (xo_finish() < 0)
+ xo_err(EXIT_FAILURE, "stdout");
+ exit(EXIT_SUCCESS);
+ }
xo_open_instance("last");
t = bp->ut_tv.tv_sec;
tm = localtime(&t);