summaryrefslogtreecommitdiff
path: root/modules/time.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/time.c')
-rw-r--r--modules/time.c240
1 files changed, 0 insertions, 240 deletions
diff --git a/modules/time.c b/modules/time.c
deleted file mode 100644
index 7f64f922..00000000
--- a/modules/time.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/* GNU m4 -- A simple macro processor
- Copyright (C) 1999-2001, 2006-2010, 2013-2014, 2017 Free Software
- Foundation, Inc.
-
- This file is part of GNU M4.
-
- GNU M4 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 3 of the License, or
- (at your option) any later version.
-
- GNU M4 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, see <http://www.gnu.org/licenses/>.
-*/
-
-#include <config.h>
-
-#if TM_IN_SYS_TIME
-# include <sys/time.h>
-#else
-# include <time.h>
-#endif /* TM_IN_SYS_TIME */
-
-/* Build using only the exported interfaces, unless NDEBUG is set, in
- which case use private symbols to speed things up as much as possible. */
-#ifndef NDEBUG
-# include <m4/m4module.h>
-#else
-# include "m4private.h"
-#endif
-
-/* function macros blind side minargs maxargs */
-#define builtin_functions \
- BUILTIN (currenttime, false, false, false, 0, 0 ) \
- BUILTIN (ctime, false, false, false, 0, 1 ) \
- BUILTIN (gmtime, false, true, false, 1, 1 ) \
- BUILTIN (localtime, false, true, false, 1, 1 ) \
-
-#define mktime_functions \
- BUILTIN (mktime, false, true, false, 6, 7 ) \
-
-#define strftime_functions \
- BUILTIN (strftime, false, true, false, 2, 2 ) \
-
-
-#define BUILTIN(handler, macros, blind, side, min, max) M4BUILTIN (handler)
- builtin_functions
-# if HAVE_MKTIME
- mktime_functions
-# endif
-# if HAVE_STRFTIME
- strftime_functions
-# endif
-#undef BUILTIN
-
-static const m4_builtin m4_builtin_table[] =
-{
-#define BUILTIN(handler, macros, blind, side, min, max) \
- M4BUILTIN_ENTRY (handler, #handler, macros, blind, side, min, max)
-
- builtin_functions
-# if HAVE_MKTIME
- mktime_functions
-# endif
-# if HAVE_STRFTIME
- strftime_functions
-# endif
-#undef BUILTIN
-
- { NULL, NULL, 0, 0, 0 },
-};
-
-
-void
-include_time (m4 *context, m4_module *module, m4_obstack *obs)
-{
- m4_install_builtins (context, module, m4_builtin_table);
-}
-
-
-
-/**
- * currenttime()
- **/
-M4BUILTIN_HANDLER (currenttime)
-{
- char buf[64];
- time_t now;
- int l;
-
- now = time (0L);
- l = sprintf (buf, "%ld", now);
-
- obstack_grow (obs, buf, l);
-}
-
-/**
- * ctime([SECONDS])
- **/
-M4BUILTIN_HANDLER (ctime)
-{
- time_t t;
- int i;
- const char *s;
-
- if (argc == 2)
- {
- m4_numeric_arg (context, m4_arg_info (argv), M4ARG (1), M4ARGLEN (1),
- &i);
- t = i;
- }
- else
- t = time (0L);
-
- s = ctime (&t);
- obstack_grow (obs, s, 24);
-}
-
-static void
-format_tm (m4_obstack *obs, struct tm *tm)
-{
- m4_shipout_int (obs, tm->tm_sec);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_min);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_hour);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_mday);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_mon);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_year);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_wday);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_yday);
- obstack_1grow (obs, ',');
-
- m4_shipout_int (obs, tm->tm_isdst);
-}
-
-/**
- * gmtime(SECONDS)
- **/
-M4BUILTIN_HANDLER (gmtime)
-{
- time_t t;
- int i;
-
- if (!m4_numeric_arg (context, m4_arg_info (argv), M4ARG (1), M4ARGLEN (1),
- &i))
- return;
-
- t = i;
- format_tm (obs, gmtime (&t));
-}
-
-/**
- * localtime(SECONDS)
- **/
-M4BUILTIN_HANDLER (localtime)
-{
- time_t t;
- int i;
-
- if (!m4_numeric_arg (context, m4_arg_info (argv), M4ARG (1), M4ARGLEN (1),
- &i))
- return;
-
- t = i;
- format_tm (obs, localtime (&t));
-}
-
-#if HAVE_MKTIME
-/**
- * mktime(SEC, MIN, HOUR, MDAY, MONTH, YEAR, [ISDST])
- **/
-M4BUILTIN_HANDLER (mktime)
-{
- const m4_call_info *me = m4_arg_info (argv);
- struct tm tm;
- time_t t;
-
- if (!m4_numeric_arg (context, me, M4ARG (1), M4ARGLEN (1), &tm.tm_sec))
- return;
- if (!m4_numeric_arg (context, me, M4ARG (2), M4ARGLEN (2), &tm.tm_min))
- return;
- if (!m4_numeric_arg (context, me, M4ARG (3), M4ARGLEN (3), &tm.tm_hour))
- return;
- if (!m4_numeric_arg (context, me, M4ARG (4), M4ARGLEN (4), &tm.tm_mday))
- return;
- if (!m4_numeric_arg (context, me, M4ARG (5), M4ARGLEN (5), &tm.tm_mon))
- return;
- if (!m4_numeric_arg (context, me, M4ARG (6), M4ARGLEN (6), &tm.tm_year))
- return;
- if (M4ARG (7) && !m4_numeric_arg (context, me, M4ARG (7), M4ARGLEN (7),
- &tm.tm_isdst))
- return;
-
- t = mktime (&tm);
-
- m4_shipout_int (obs, t);
-}
-#endif /* HAVE_MKTIME */
-
-#if HAVE_STRFTIME
-/**
- * strftime(FORMAT, SECONDS)
- **/
-M4BUILTIN_HANDLER (strftime)
-{
- struct tm *tm;
- time_t t;
- char *buf;
- int l;
-
- if (!m4_numeric_arg (context, m4_arg_info (argv), M4ARG (2), M4ARGLEN (2),
- &l))
- return;
-
- t = l;
- tm = localtime (&t);
-
- buf = (char *) obstack_alloc (obs, 1024);
- l = strftime (buf, 1024, M4ARG (1), tm);
- obstack_grow (obs, buf, l);
-}
-#endif /* HAVE_STRFTIME */