2 * Copyright (c) 2000, Red Hat, Inc.
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
9 * A copy of the GNU General Public License can be found at
12 * Written by DJ Delorie <dj@redhat.com>
16 /* The purpose of this file is to centralize all the logging functions. */
39 static LogEnt *first_logent = 0;
40 static LogEnt **next_logent = &first_logent;
43 log (int flags, char *fmt, ...)
48 vsprintf (buf, fmt, args);
50 LogEnt *l = (LogEnt *) malloc (sizeof (LogEnt) + strlen (buf) + 20);
55 next_logent = &(l->next);
58 if (flags & LOG_TIMESTAMP)
60 struct tm *tm = localtime (&(l->when));
61 strftime (b, 1000, "%Y/%m/%d %H:%M:%S ", tm);
66 msg ("LOG: %d %s", l->flags, l->msg);
70 log_save (int babble, char *filename, int append)
72 static int been_here = 0;
77 mkdir_p (0, filename);
79 FILE *f = fopen (filename, append ? "at" : "wt");
82 fatal (IDS_NOLOGFILE, filename);
88 for (l=first_logent; l; l=l->next)
90 if (babble || !(l->flags & LOG_BABBLE))
93 if (l->msg[strlen(l->msg)-1] != '\n')
103 exit_setup (int exit_code)
105 static int been_here = 0;
113 log (LOG_TIMESTAMP, "Ending XEmacs install");
115 if (source == IDC_SOURCE_DOWNLOAD || !root_dir)
117 log_save (LOG_BABBLE, "setup.log.full", 0);
118 log_save (0, "setup.log", 1);
122 log_save (LOG_BABBLE, concat (root_dir, "/setup.log.full", 0), 0);
123 log_save (0, concat (root_dir, "/setup.log", 0), 1);
126 ExitProcess (exit_code);