V8/usr/src/cmd/cyntax/cem/time.c

Compare this file to the similar file:
Show the results in this format:

#include	<time.h>
#include	"cem.h"

/*
 *	Return a sstring representation of a time.  If it is
 *	the same year as now leave out the year.  If it is the
 *	same day and we aren't being pedantic leave out the date.
 */
char	*
stime(t)
long	t;
{
	register struct tm	*tp;
	register char		*p;
	static struct tm	this;
	static long		now;
	extern char		*ctime();
	extern long		time();
	extern struct tm	*localtime();

	if (now == 0)
	{
		now = time((long *)0);
		this = *localtime(&now);
	}

	tp = localtime(&t);
	p = ctime(&t);

	if (tp->tm_year == this.tm_year)
		p[19] = '\0';
	else
		p[24] = '\0';

	if
	(
		!pedantic
		&&
		tp->tm_mon == this.tm_mon
		&&
		tp->tm_mday == this.tm_mday
		&&
		tp->tm_year == this.tm_year
	)
		return p + 11;
	else
		return p;
}