|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T c
Length: 4254 (0x109e) Types: TextFile Names: »convtime.c,v«
└─⟦9ae75bfbd⟧ Bits:30007242 EUUGD3: Starter Kit └─⟦bfebc70e2⟧ »EurOpenD3/mail/sendmail-5.65b+IDA-1.4.3.tar.Z« └─⟦f9e35cd84⟧ └─⟦this⟧ »sendmail/src/RCS/convtime.c,v«
head 5.4; branch 5.4.0; access ; symbols UICSO:5.4.0 VANILLA:5.4; locks ; strict; comment @ * @; 5.4 date 90.06.20.08.35.34; author paul; state Exp; branches 5.4.0.1; next ; 5.4.0.1 date 90.10.05.14.32.02; author paul; state Exp; branches ; next 5.4.0.2; 5.4.0.2 date 90.11.26.20.13.19; author paul; state Exp; branches ; next ; desc @@ 5.4 log @5.64 Berkeley release @ text @/* * Copyright (c) 1983 Eric P. Allman * Copyright (c) 1988 Regents of the University of California. * All rights reserved. * * Redistribution and use in source and binary forms are permitted provided * that: (1) source distributions retain this entire copyright notice and * comment, and (2) distributions including binaries display the following * acknowledgement: ``This product includes software developed by the * University of California, Berkeley and its contributors'' in the * documentation or other materials provided with the distribution and in * all advertising materials mentioning features or use of this software. * Neither the name of the University nor the names of its contributors may * 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 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. */ #ifndef lint static char sccsid[] = "@@(#)convtime.c 5.4 (Berkeley) 6/1/90"; #endif /* not lint */ # include <ctype.h> # include "useful.h" /* ** CONVTIME -- convert time ** ** Takes a time as an ascii string with a trailing character ** giving units: ** s -- seconds ** m -- minutes ** h -- hours ** d -- days (default) ** w -- weeks ** For example, "3d12h" is three and a half days. ** ** Parameters: ** p -- pointer to ascii time. ** ** Returns: ** time in seconds. ** ** Side Effects: ** none. */ time_t convtime(p) char *p; { register time_t t, r; register char c; r = 0; while (*p != '\0') { t = 0; while (isdigit(c = *p++)) t = t * 10 + (c - '0'); if (c == '\0') p--; switch (c) { case 'w': /* weeks */ t *= 7; case 'd': /* days */ default: t *= 24; case 'h': /* hours */ t *= 60; case 'm': /* minutes */ t *= 60; case 's': /* seconds */ break; } r += t; } return (r); } \f /* ** PINTVL -- produce printable version of a time interval ** ** Parameters: ** intvl -- the interval to be converted ** brief -- if TRUE, print this in an extremely compact form ** (basically used for logging). ** ** Returns: ** A pointer to a string version of intvl suitable for ** printing or framing. ** ** Side Effects: ** none. ** ** Warning: ** The string returned is in a static buffer. */ # define PLURAL(n) ((n) == 1 ? "" : "s") char * pintvl(intvl, brief) time_t intvl; bool brief; { static char buf[256]; register char *p; int wk, dy, hr, mi, se; if (intvl == 0 && !brief) return ("zero seconds"); /* decode the interval into weeks, days, hours, minutes, seconds */ se = intvl % 60; intvl /= 60; mi = intvl % 60; intvl /= 60; hr = intvl % 24; intvl /= 24; if (brief) dy = intvl; else { dy = intvl % 7; intvl /= 7; wk = intvl; } /* now turn it into a sexy form */ p = buf; if (brief) { if (dy > 0) { (void) sprintf(p, "%d+", dy); p += strlen(p); } (void) sprintf(p, "%02d:%02d:%02d", hr, mi, se); return (buf); } /* use the verbose form */ if (wk > 0) { (void) sprintf(p, ", %d week%s", wk, PLURAL(wk)); p += strlen(p); } if (dy > 0) { (void) sprintf(p, ", %d day%s", dy, PLURAL(dy)); p += strlen(p); } if (hr > 0) { (void) sprintf(p, ", %d hour%s", hr, PLURAL(hr)); p += strlen(p); } if (mi > 0) { (void) sprintf(p, ", %d minute%s", mi, PLURAL(mi)); p += strlen(p); } if (se > 0) { (void) sprintf(p, ", %d second%s", se, PLURAL(se)); p += strlen(p); } return (buf + 2); } @ 5.4.0.1 log @Initialize wk = 0. @ text @d116 1 a116 2 int wk = 0; int dy, hr, mi, se; @ 5.4.0.2 log @Commented out un-used assignment at end of procedure. @ text @d175 1 a175 1 /* p += strlen(p); unused -pbp */ @