dyrt/
dyrt/bin/
dyrt/data/MAIL/
dyrt/data/WIZ_ZONES/
dyrt/include/machine/
dyrt/src/misc/cpp/
#include "kernel.h"
#include <sys/file.h>	       
#include <sys/stat.h>
#include <stdio.h>
#include <time.h>
#ifdef VARGS
#include <stdarg.h>
#endif
#include <errno.h>
#include "stdinc.h"

/*
extern char *sys_errlist[];
*/

int open_logfile (char *logfile, Boolean clear_flag)
{
  int fd;
  int x = O_WRONLY | O_CREAT;
  
  if (clear_flag)
    x |= O_TRUNC;
  else
    x |= O_APPEND;
  if ((fd = open (logfile, x, S_IRUSR | S_IWUSR)) < 0)
    {
      fprintf (stderr, "\n%s: Cannot open logfile %s, program failed.\n",
	       progname, logfile);
      perror ("open");
      return -1;
    }
  dup2 (fd, fileno (stderr));
  close (fd);
  return 0;
}

void close_logfile ()
{
  fclose (stderr);
}

void progerror (char *name)
{
  mudlog ("PERROR %s: [%d] %s", name, errno, sys_errlist[errno]);
}

#ifdef VARGS
void vmudlog (char *format, va_list pvar)
{
  char *z;
  z = ctime (&global_clock);
  z[19] = '\0';			/* remove year specification */
  fprintf (stderr, "%s: ", z);
  vfprintf (stderr, format, pvar);
  putc ('\n', stderr);
}

void mudlog (char *format,...)
{
  va_list pvar;
  va_start (pvar, format);
  vmudlog (format, pvar);
  va_end (pvar);
}
#else
/* VARARGS2 */
void mudlog (format, a1, a2, a3, a4, a5, a6)
     char *format, *a1, *a2, *a3, *a4, *a5, *a6;
{
  char *z;
 
  z = ctime (&global_clock);
  z[19] = '\0';			/* remove year specification */
  fprintf (stderr, "%s: ", z);
  fprintf (stderr, format, a1, a2, a3, a4, a5, a6);
  putc ('\n', stderr);
}
#endif