From 46c50fce0354d81d347a8055314a688fc8aa9f52 Mon Sep 17 00:00:00 2001
From: Pete Travis <immanetize@fedoraproject.org>
Date: Fri, 26 Sep 2014 14:42:22 -0600
Subject: bash sources

---
 scratch/bash-3.1/builtins/times.def | 115 ++++++++++++++++++++++++++++++++++++
 1 file changed, 115 insertions(+)
 create mode 100644 scratch/bash-3.1/builtins/times.def

(limited to 'scratch/bash-3.1/builtins/times.def')

diff --git a/scratch/bash-3.1/builtins/times.def b/scratch/bash-3.1/builtins/times.def
new file mode 100644
index 0000000..22304fc
--- /dev/null
+++ b/scratch/bash-3.1/builtins/times.def
@@ -0,0 +1,115 @@
+This file is times.def, from which is created times.c.
+It implements the builtin "times" in Bash.
+
+Copyright (C) 1987-2002 Free Software Foundation, Inc.
+
+This file is part of GNU Bash, the Bourne Again SHell.
+
+Bash 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, or (at your option) any later
+version.
+
+Bash 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 Bash; see the file COPYING.  If not, write to the Free Software
+Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA.
+
+$PRODUCES times.c
+
+$BUILTIN times
+$FUNCTION times_builtin
+$SHORT_DOC times
+Print the accumulated user and system times for processes run from
+the shell.
+$END
+
+#include <config.h>
+
+#if defined (HAVE_UNISTD_H)
+#  ifdef _MINIX
+#    include <sys/types.h>
+#  endif
+#  include <unistd.h>
+#endif
+
+#include <stdio.h>
+#include "../bashtypes.h"
+#include "../shell.h"
+
+#include <posixtime.h>
+
+#if defined (HAVE_SYS_TIMES_H)
+#  include <sys/times.h>
+#endif /* HAVE_SYS_TIMES_H */
+
+#if defined (HAVE_SYS_RESOURCE_H) && !defined (RLIMTYPE)
+#  include <sys/resource.h>
+#endif
+
+#include "common.h"
+
+/* Print the totals for system and user time used. */
+int
+times_builtin (list)
+     WORD_LIST *list;
+{
+#if defined (HAVE_GETRUSAGE) && defined (HAVE_TIMEVAL) && defined (RUSAGE_SELF)
+  struct rusage self, kids;
+
+  USE_VAR(list);
+
+  if (no_options (list))
+    return (EX_USAGE);
+
+  getrusage (RUSAGE_SELF, &self);
+  getrusage (RUSAGE_CHILDREN, &kids);	/* terminated child processes */
+
+  print_timeval (stdout, &self.ru_utime);
+  putchar (' ');
+  print_timeval (stdout, &self.ru_stime);
+  putchar ('\n');
+  print_timeval (stdout, &kids.ru_utime);
+  putchar (' ');
+  print_timeval (stdout, &kids.ru_stime);
+  putchar ('\n');
+
+#else
+#  if defined (HAVE_TIMES)
+  /* This uses the POSIX.1/XPG5 times(2) interface, which fills in a 
+     `struct tms' with values of type clock_t. */
+  struct tms t;
+
+  USE_VAR(list);
+
+  if (no_options (list))
+    return (EX_USAGE);
+
+  times (&t);
+
+  print_clock_t (stdout, t.tms_utime);
+  putchar (' ');
+  print_clock_t (stdout, t.tms_stime);
+  putchar ('\n');
+  print_clock_t (stdout, t.tms_cutime);
+  putchar (' ');
+  print_clock_t (stdout, t.tms_cstime);
+  putchar ('\n');
+
+#  else /* !HAVE_TIMES */
+
+  USE_VAR(list);
+
+  if (no_options (list))
+    return (EX_USAGE);
+  printf ("0.00 0.00\n0.00 0.00\n");
+
+#  endif /* HAVE_TIMES */
+#endif /* !HAVE_TIMES */
+
+  return (EXECUTION_SUCCESS);
+}
-- 
cgit 

