Mercurial > hg > Members > kono > nitros9-code
diff 3rdparty/packages/uucpbb/src/date822.c @ 1772:5ba8e711a1a3
source added
author | boisy |
---|---|
date | Fri, 01 Apr 2005 22:04:25 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/3rdparty/packages/uucpbb/src/date822.c Fri Apr 01 22:04:25 2005 +0000 @@ -0,0 +1,85 @@ +/* date822.c This routine returns a date string in RFC-822 format. + Copyright (C) 1990, 1993 Rick Adams and Bob Billson + + This file is part of the OS-9 UUCP package, UUCPbb. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + The author of UUCPbb, Bob Billson, can be contacted at: + bob@kc2wz.bubble.org or uunet!kc2wz!bob or by snail mail: + 21 Bates Way, Westfield, NJ 07090 +*/ + +/* Returns a pointer to a character string containing the current date/time + in RFC-822 format. Requires Carl Kreider's CLIB.L or CLIBT.L to compile. + + ctime() format 'Mon Nov 21 11:31:54 1983\n\0' + + RFC822 format 'Mon, 21 Nov 1983 11:31:54 PST\0 + -or- 'Mon, 16 May 1988 02:13:10 -0700\0' + + The external variable 'tz' is defined in getparam.c and set in the + /DD/SYS/UUCP/Parameters file. */ + +#include "uucp.h" +#ifndef _OSK +#include <utime.h> +#else +#include <time.h> +#endif + +#define WORDSIZE 5 + +extern char tz[]; +static char RFCbuf[40]; /* RFC-822 formatted time string */ + + +char *date822() +{ + static long save_t = 0L; + char date[26]; + register char *words[WORDSIZE]; + char *p, *adate; + long t; + + adate = RFCbuf; + + /* get the current time */ + time (&t); + + /* If the time different from when we were last called, update the ADATE + string and save the time in case we are immediately called again. If + the time is same, return the pointer to ADATE set from the previous + call. */ + + if (t != save_t) + { + save_t = t; + + /* convert the seconds to date/time format */ + strcpy (date, ctime (&t)); + p = strchr (date, '\n'); + *p = '\0'; + + /* separate the various elements */ + getargs (words, date, WORDSIZE); + + /* put them in the RFC-822 format */ + sprintf (adate, "%s, %s %s %s %s %s", + words[0], words[2], words[1], &words[4][2], + words[3], tz); + } + return (adate); +}