1
0
mirror of https://frontier.innolan.net/rainlance/amiga-tz.git synced 2025-12-08 18:07:32 +00:00

catenated, conditionalized version

SCCS-file: date.c
SCCS-SID: 1.2
This commit is contained in:
Arthur David Olson
1989-03-05 17:32:10 -05:00
committed by Paul Eggert
parent 63cd3d6c7b
commit 286abb3871

64
date.c
View File

@ -1,3 +1,15 @@
#ifndef lint
#ifndef NOID
static char elsieid[] = "%W%";
/*
** The catenation of UCB's date.c and logwtmp.c,
** less logwtmp.c's repeated #include's,
** plus BSD conditionalizing,
** plus changes to use "mktime".
*/
#endif /* !defined NOID */
#endif /* !defined lint */
/*
* Copyright (c) 1985, 1987, 1988 The Regents of the University of California.
* All rights reserved.
@ -119,6 +131,7 @@ main(argc, argv)
if (localtime((time_t *)&tv.tv_sec)->tm_isdst)
tv.tv_sec -= SECS_PER_HOUR;
}
#ifdef BSD
if (nflag || !netsettime(tv)) {
logwtmp("|", "date", "");
if (settimeofday(&tv, (struct timezone *)NULL)) {
@ -128,6 +141,7 @@ main(argc, argv)
}
logwtmp("{", "date", "");
}
#endif /* defined BSD */
username = getlogin();
if (!username || *username == '\0') /* single-user or no tty */
@ -224,6 +238,7 @@ gtime(ap)
return(0);
}
#ifdef BSD
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
@ -359,8 +374,57 @@ bad:
retval = 2;
return (0);
}
#endif /* defined BSD */
usage()
{
fputs("usage: date [-nu] [-d dst] [-t minutes_west] [yymmddhhmm[.ss]]\n", stderr);
}
/*
* Copyright (c) 1988 The Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms are permitted
* provided that the above copyright notice and this paragraph are
* duplicated in all such forms and that any documentation,
* advertising materials, and other materials related to such
* distribution and use acknowledge that the software was developed
* by the University of California, Berkeley. The name of the
* University may not be used to endorse or promote products derived
* from this software without specific prior written permission.
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#if defined(LIBC_SCCS) && !defined(lint)
static char sccsid[] = "@(#)logwtmp.c 5.2 (Berkeley) 9/20/88";
#endif /* LIBC_SCCS and not lint */
#include <sys/stat.h>
#define WTMPFILE "/usr/adm/wtmp"
logwtmp(line, name, host)
char *line, *name, *host;
{
struct utmp ut;
struct stat buf;
int fd;
time_t time();
char *strncpy();
if ((fd = open(WTMPFILE, O_WRONLY|O_APPEND, 0)) < 0)
return;
if (!fstat(fd, &buf)) {
(void)strncpy(ut.ut_line, line, sizeof(ut.ut_line));
(void)strncpy(ut.ut_name, name, sizeof(ut.ut_name));
(void)strncpy(ut.ut_host, host, sizeof(ut.ut_host));
(void)time(&ut.ut_time);
if (write(fd, (char *)&ut, sizeof(struct utmp)) !=
sizeof(struct utmp))
(void)ftruncate(fd, buf.st_size);
}
(void)close(fd);
}