aboutsummaryrefslogtreecommitdiff
path: root/usr.bin
diff options
context:
space:
mode:
authorYan-Hao Wang <yanhaowang@FreeBSD.org>2024-10-12 14:05:14 +0000
committerLi-Wen Hsu <lwhsu@FreeBSD.org>2024-10-12 18:21:45 +0000
commitaaa302d17fe1ac0e7075ce9189c1452fe49dce36 (patch)
treec1c30f4d246f99090a5888800b1f5b3a17ac7c04 /usr.bin
parentc808132731aa999947f4f7810157d7d8d9aaf61e (diff)
downloadsrc-aaa302d17fe1ac0e7075ce9189c1452fe49dce36.tar.gz
src-aaa302d17fe1ac0e7075ce9189c1452fe49dce36.zip
last(1): Complete libxo transition
Reviewed by: des MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D41424
Diffstat (limited to 'usr.bin')
-rw-r--r--usr.bin/last/last.c31
1 files 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);