sbase

suckless unix tools
git clone git://git.2f30.org/sbase.git
Log | Files | Refs | README | LICENSE

commit 386aa62b94fd19a5ca77be019c9236c0fec20cb5
parent efbce07f941f163a6705bb58250c1e3977d7e685
Author: sin <sin@2f30.org>
Date:   Fri Feb 14 15:04:43 +0000

Remove who(1) from sbase

It now lives in ubase.

Diffstat:
Makefile | 1-
who.1 | 28----------------------------
who.c | 63---------------------------------------------------------------
3 files changed, 0 insertions(+), 92 deletions(-)
diff --git a/Makefile b/Makefile @@ -95,7 +95,6 @@ SRC = \ sha256sum.c\ sha512sum.c\ wc.c \ - who.c \ xargs.c \ yes.c diff --git a/who.1 b/who.1 @@ -1,28 +0,0 @@ -.TH WHO 1 sbase\-VERSION -.SH NAME -who \- print who has logged on -.SH SYNOPSIS -.B who -.RB [ -m ] - -.SH DESCRIPTION -.B who -prints a list of who has logged on, their controlling tty, and the -time at which they logged on. -.SH OPTIONS -.TP -.B \-m -only show users on current tty -.TP -.B \-l -also print LOGIN processes - -.SH BUGS -.B who -relies on the utmp file to be updated responsibly. This -doesn't always happen, which can cause who to print completely -bogus data. - -.SH SEE ALSO -.IR utmp (5) - diff --git a/who.c b/who.c @@ -1,63 +0,0 @@ -/* See LICENSE file for copyright and license details. */ -#include <stdio.h> -#include <stdlib.h> -#include <string.h> -#include <unistd.h> -#include <time.h> -#include <utmp.h> -#include "util.h" - -static void -usage(void) -{ - eprintf("usage: who [-ml]\n"); -} - -int -main(int argc, char **argv) -{ - struct utmp usr; - FILE *ufp; - char timebuf[sizeof "yyyy-mm-dd hh:mm"]; - char *tty, *ttmp; - int mflag = 0, lflag = 0; - time_t t; - - ARGBEGIN { - case 'm': - mflag = 1; - tty = ttyname(STDIN_FILENO); - if (!tty) - eprintf("who: stdin:"); - if ((ttmp = strrchr(tty, '/'))) - tty = ttmp+1; - break; - case 'l': - lflag = 1; - break; - default: - usage(); - } ARGEND; - - if (argc > 0) - usage(); - - if (!(ufp = fopen("/var/run/utmp", "r"))) - eprintf("who: '%s':", "/var/run/utmp"); - - while(fread(&usr, sizeof(usr), 1, ufp) == 1) { - if (!*usr.ut_name || !*usr.ut_line || - usr.ut_line[0] == '~') - continue; - if (mflag && strcmp(usr.ut_line, tty)) - continue; - if (strcmp(usr.ut_name, "LOGIN") == lflag) - continue; - t = usr.ut_time; - strftime(timebuf, sizeof timebuf, "%Y-%m-%d %H:%M", localtime(&t)); - printf("%-8s %-12s %-16s\n", usr.ut_name, usr.ut_line, timebuf); - } - fclose(ufp); - return EXIT_SUCCESS; -} -