diff options
Diffstat (limited to 'usr.bin/at/stime.c')
-rw-r--r-- | usr.bin/at/stime.c | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/usr.bin/at/stime.c b/usr.bin/at/stime.c deleted file mode 100644 index 567b848..0000000 --- a/usr.bin/at/stime.c +++ /dev/null @@ -1,116 +0,0 @@ -/* $NetBSD: stime.c,v 1.7 2008/07/21 14:19:21 lukem Exp $ */ - -/* - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. 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 BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#ifndef lint -__COPYRIGHT("@(#) Copyright (c) 1993\ - The Regents of the University of California. All rights reserved."); -#endif /* not lint */ - -#ifndef lint -#if 0 -static char sccsid[] = "from: @(#)touch.c 8.2 (Berkeley) 4/28/95"; -#endif -__RCSID("$NetBSD: stime.c,v 1.7 2008/07/21 14:19:21 lukem Exp $"); -#endif /* not lint */ - -#include <err.h> -#include <stdlib.h> -#include <string.h> -#include <time.h> -#include <tzfile.h> - -#include "stime.h" - -#define ATOI2(s) ((s) += 2, ((s)[-2] - '0') * 10 + ((s)[-1] - '0')) - -time_t -stime(char *arg) -{ - struct tm *t; - time_t tmptime; - int yearset; - char *p; - /* Start with the current time. */ - if (time(&tmptime) == (time_t)-1) - err(EXIT_FAILURE, "time"); - - if ((t = localtime(&tmptime)) == NULL) - err(EXIT_FAILURE, "localtime"); - /* [[CC]YY]MMDDhhmm[.SS] */ - if ((p = strchr(arg, '.')) == NULL) - t->tm_sec = 0; /* Seconds defaults to 0. */ - else { - if (strlen(p + 1) != 2) - goto terr; - *p++ = '\0'; - t->tm_sec = ATOI2(p); - } - - yearset = 0; - switch (strlen(arg)) { - case 12: /* CCYYMMDDhhmm */ - t->tm_year = ATOI2(arg) * 100 - TM_YEAR_BASE; - yearset = 1; - /* FALLTHROUGH */ - case 10: /* YYMMDDhhmm */ - if (yearset) { - t->tm_year += ATOI2(arg); - } else { - yearset = ATOI2(arg); - t->tm_year = conv_2dig_year(yearset) - TM_YEAR_BASE; - } - /* FALLTHROUGH */ - case 8: /* MMDDhhmm */ - t->tm_mon = ATOI2(arg); - --t->tm_mon; /* Convert from 01-12 to 00-11 */ - /* FALLTHROUGH */ - case 6: - t->tm_mday = ATOI2(arg); - /* FALLTHROUGH */ - case 4: - t->tm_hour = ATOI2(arg); - /* FALLTHROUGH */ - case 2: - t->tm_min = ATOI2(arg); - break; - default: - goto terr; - } - - t->tm_isdst = -1; /* Figure out DST. */ - tmptime = mktime(t); - if (tmptime == (time_t)-1) { - terr: errx(EXIT_FAILURE, - "out of range or illegal time specification: [[CC]YY]MMDDhhmm[.SS]"); - } - return tmptime; -} |