diff -ru lachesis-0.2.5/auth.h lachesis/auth.h
--- lachesis-0.2.5/auth.h	2004-03-16 21:35:53.000000000 -0800
+++ lachesis/auth.h	2009-08-17 10:32:58.000000000 -0700
@@ -173,6 +173,7 @@
 void Auth_DCCMessage(void *cookie, const char *message);
 void Auth_IRCMessage(const char *prefix, const char *message);
 void Auth_NotifyMaster(const char *message);
+void Auth_VerifyAndSendMSG(Auth_TUHCB*);
 
 #endif
 
diff -ru lachesis-0.2.5/cmd/authcmd.cc lachesis/cmd/authcmd.cc
--- lachesis-0.2.5/cmd/authcmd.cc	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/cmd/authcmd.cc	2007-04-30 21:14:48.000000000 -0700
@@ -130,7 +130,7 @@
   const char *ts;
 
   if (str==NULL || strchr(str, 32)==NULL)
-    Auth_CmdResult(ticket, auth, "Usage: auth login <acct> <pass>");
+    return Auth_CmdResult(ticket, auth, "Usage: auth login <acct> <pass>");
   ts = str;
   Util_SepTo(acct, ALLOC_ACCT, &ts, 32);
   if (strchr(ts, 32))
diff -ru lachesis-0.2.5/cmd/logcmd.cc lachesis/cmd/logcmd.cc
--- lachesis-0.2.5/cmd/logcmd.cc	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/cmd/logcmd.cc	2009-08-10 09:39:11.000000000 -0700
@@ -30,7 +30,7 @@
 #include "../lachesis.h"
 #include "../config.h"
 
-static char* id="@(#) $Id: logcmd.cc,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $";
+static char* id="@(#) $Id: logcmd.cc,v 1.1.1.1.2.1 2006/03/08 17:42:43 lachesis Exp $";
 
 extern TF log_active;
 extern FILE *log_file;
@@ -74,6 +74,36 @@
     cmd = data;
     data = NULL;
   }
+  if (strcasecmp(cmd, "RESUME")==0) {
+    if (data==NULL||!*data)
+      Auth_CmdResult(ticket, auth, "Status and filename required.");
+    else {
+      cmd = Util_Separate(&data, 32);
+      if (!cmd)
+	Auth_CmdResult(ticket, auth, "Filename required.");
+      else {
+	int status;
+	if (strcasecmp(cmd, "IN")==0)
+	  status = 3;
+	else if (strcasecmp(cmd, "OUT")==0)
+	  status = 1;
+	else {
+	  Auth_CmdResult(ticket, auth, "Unrecognized status.");
+	  return;
+	}
+	Log_Cleanup();
+	if (options.logfile!=NULL)
+	  free(options.logfile);
+	options.logfile = strdup(data);
+	Log_Init(status);
+	if (log_file==NULL)
+	  Auth_CmdResult(ticket, auth, "Error resuming logfile.");
+	else
+	  Auth_CmdResult(ticket, auth, "Log resumed.");
+      }
+    }
+    return;
+  }
   if (strcasecmp(cmd, "FILE")==0) {
     if (data==NULL||!*data)
       Auth_CmdResult(ticket, auth, "Filename required.");
@@ -82,7 +112,7 @@
       if (options.logfile!=NULL)
 	free(options.logfile);
       options.logfile = strdup(data);
-      Log_Init();
+      Log_Init(0);
       if (log_file==NULL)
 	Auth_CmdResult(ticket, auth, "Invalid or existing filename.");
       else
@@ -117,6 +147,15 @@
     }
     return ;
   }
+  if (strcasecmp(cmd, "COMMENT")==0) {
+    if (data==NULL||!*data)
+      Auth_CmdResult(ticket, auth, "You must supply a comment.");
+    else {
+      Log_CommitComment(data);
+      Auth_CmdResult(ticket, auth, "Comment added.");
+    }
+    return ;
+  }
   Auth_CmdResult(ticket, auth, Util_Format("Unrecognized command: %s", cmd,
 					   NULL, NULL)
 		 );
diff -ru lachesis-0.2.5/config.h lachesis/config.h
--- lachesis-0.2.5/config.h	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/config.h	2010-01-30 00:26:46.000000000 -0800
@@ -33,7 +33,7 @@
  * Define this to the name of a file where stderr messages will be logged.
  * Saves a bit of hassle trying to redirect this constantly.
  */
-#define STDERR_LOG_FILE "error.log"
+/* #define STDERR_LOG_FILE "error.log" */
 
 /*
  * Defining this will disable checking the userid of the process for
@@ -52,7 +52,7 @@
 #define DFL_IRCNAME "Measuring the threads of Fate"
 #define DFL_IRCUSER "lachesis"
 #else
-#define DFL_IRCNICK "RPGServ"
+#define DFL_IRCNICK "RhoPiGamma"
 #define DFL_IRCNAME "RPG Character or Extra"
 #define DFL_IRCUSER "rpgserv"
 #endif
@@ -65,14 +65,55 @@
  * BE IMPOSSIBLE TO LOG IN, thus making the bot unusable. You should
  * probably have this set to something.
  */
-#define DFL_IRCCHAN "#dragoon's-birth"
+#define DFL_IRCCHAN "#lakitu"
+
+/*
+ * This is the default title to use when generating logfiles.
+ */
+#ifndef DFL_LOGTITLE
+#define DFL_LOGTITLE "IRC log generated by Lachesis"
+#endif
+
+/*
+ * This is an internal CSS stylesheet used by Lachesis logs for handling
+ * reverse video and color tags. This is included only if an external
+ * stylesheet is not provided at runtime.
+ *
+ * Note: We still implement "reverse" as monospace due to lack of a
+ * defined colorscheme. You will probably want to change this if you
+ * have a color scheme for your logs.
+ */
+#define DFL_LOGSTYLE "body { background-color:darkslategray; color:wheat; }\n\
+span.reverse { background-color:wheat; color:darkslategray; }\n\
+span.color0 { color:white; }\n\
+span.color1 { color:darkslategray; }\n\
+span.color2 { color:steelblue; }\n\
+span.color3 { color:mediumseagreen; }\n\
+span.color4 { color:orangered; }\n\
+span.color5 { color:firebrick; }\n\
+span.color6 { color:mediumorchid; }\n\
+span.color7 { color:goldenrod; }\n\
+span.color8 { color:yellow; }\n\
+span.color9 { color:springgreen; }\n\
+span.color10 { color:skyblue; }\n\
+span.color11 { color:cyan; }\n\
+span.color12 { color:dodgerblue; }\n\
+span.color13 { color:orchid; }\n\
+span.color14 { color:gray; }\n\
+span.color15 { color:lightgrey; }"
 
 /*
  * If this is defined, then Lachesis will try to reconnect to the server
  * instead of cleaning up and exiting when disconnected. I don't think this
  * is fully implemented yet. Use at your own risk.
+ * UPDATE: Recent code audits have addressed this. AUTO_RECONNECT should 
+ * work sanely now. However, Lachesis does not currently 'remember' very
+ * much about its state prior to disconnect; upon reconnect it will 
+ * assume the nick it originally connected under, and join the default
+ * channel just as if it had freshly connected. Logging will however 
+ * continue uninterrupted.
  */
-#undef AUTO_RECONNECT
+#define AUTO_RECONNECT
 
 /*
  * RPGServ only: Defining this will restrict RPGServ's MSG and NOTICE commands
@@ -95,4 +136,4 @@
 
 #endif /* _CONFIG_H_ */
 
-/* @(#) $Id: config.h,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $ */
+/* @(#) $Id: config.h,v 1.1.1.1.2.2 2006/03/12 09:43:10 lachesis Exp $ */
diff -ru lachesis-0.2.5/docs/api/defines.txt lachesis/docs/api/defines.txt
--- lachesis-0.2.5/docs/api/defines.txt	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/docs/api/defines.txt	2006-03-12 01:43:30.000000000 -0800
@@ -69,6 +69,9 @@
 	to IRC when its current connection is lost. This is not fully
 	implemented yet and most likely will not work how you expect it to.
 	Leave it undefined for now.
+	Update: Recent code audits have addressed this. It should work
+		reasonably now. See comments in config.h for more 
+		details.
 
 DEBUG:			(config.h)
 	If this is defined, Lachesis will spam stderr with a LOT of minor
@@ -123,4 +126,4 @@
 	only if you roll a 1 without any successes. Defining this causes
 	wroll to implement Revised botching.
 
-@(#) $Id: defines.txt,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $
+@(#) $Id: defines.txt,v 1.1.1.1.2.1 2006/03/12 09:43:30 lachesis Exp $
diff -ru lachesis-0.2.5/irc-native.c lachesis/irc-native.c
--- lachesis-0.2.5/irc-native.c	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/irc-native.c	2008-04-08 22:25:58.000000000 -0700
@@ -45,7 +45,7 @@
 #include "config.h"
 #undef _IN_LOWLEVEL_INTERFACE
 
-static char* id="@(#) $Id: irc-native.c,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $";
+static char* id="@(#) $Id: irc-native.c,v 1.1.1.1.2.1 2006/03/12 08:49:47 lachesis Exp $";
 
 fd_set *lin_read_fds = NULL;
 int lin_fd = -1;
@@ -864,6 +864,7 @@
 #endif
 }
 
+#if 0
 void OnPing(const char *str)
 {
   char server[ALLOC_HOST];
@@ -876,6 +877,13 @@
   else
     fdprintf(lin_fd, "PONG %s %s\r\n", lin_our_nick, server);
 }
+#else
+//Seems this syntax was abandoned at some point.
+void OnPing(const char *str)
+{
+  fdprintf(lin_fd, "PONG %s\r\n", str);
+}
+#endif
 
 struct strtofunc_map {
   const char *str;
@@ -932,6 +940,9 @@
 	Util_Eprintf("Error reading socket: %m\n");
 	// This is normal for a lost connection. Normal shutdown.
 	IRC_Disconnect(FALSE);
+#ifdef AUTO_RECONNECT
+	return;
+#endif
       }
       *(strchr(lin_input, '\n'))=0;
       ptr = strchr(lin_input, '\r');
diff -ru lachesis-0.2.5/irc.cc lachesis/irc.cc
--- lachesis-0.2.5/irc.cc	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/irc.cc	2006-03-12 01:20:44.000000000 -0800
@@ -30,7 +30,7 @@
 #include "log.h"
 #include "config.h"
 
-static char* id="@(#) $Id: irc.cc,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $";
+static char* id="@(#) $Id: irc.cc,v 1.1.1.1.2.3 2006/03/12 09:20:44 lachesis Exp $";
 
 extern CmdOpts options;
 extern const char *SOFTWARE_NAME;
@@ -432,14 +432,15 @@
     free(irc_curchan);
     irc_curchan = NULL;
 #ifdef AUTO_RECONNECT
-    if (!flag && irc_interface_active)
-      HLIRC_BeginIRCInterface();
-#else
-    irc_interface_active = FALSE;
-    Shutdown();
+    if (flag || !irc_interface_active) {
+#endif
+      irc_interface_active = FALSE;
+      Shutdown();
+#ifdef AUTO_RECONNECT
+    }
 #endif
   }
-
+  // In the event we're supposed to reconnect, fall through here.
 }
 
 void HLIRC_BeginIRCInterface()
@@ -449,7 +450,6 @@
 #ifdef DEBUG
   Util_Eputs("DEBUG - HLIRC_BeginIRCInterface called\n");
 #endif
-  Log_Init();
   if (irc_curchan==NULL) {
     irc_curchan = (char *)(malloc(ALLOC_CHAN));
     *irc_curchan = 0;
@@ -478,7 +478,12 @@
     port = 6667;
 
   irc_interface_active = TRUE;
-  IRC_Connect(server, port, nick, user, name);
+#ifdef AUTO_RECONNECT
+  // To avoid cluttering the stack, we let the low-level interface bail out
+  // and then restart it.
+  while (1)
+#endif
+    IRC_Connect(server, port, nick, user, name);
 }
 
 void HLIRC_EndIRCInterface()
diff -ru lachesis-0.2.5/lachesis.cc lachesis/lachesis.cc
--- lachesis-0.2.5/lachesis.cc	2004-03-16 21:35:53.000000000 -0800
+++ lachesis/lachesis.cc	2010-01-29 22:24:09.000000000 -0800
@@ -26,13 +26,14 @@
 #include <pwd.h>
 #include <signal.h>
 #include <time.h>
+#include "log.h"
 #include "lachesis.h"
 #include "utils.h"
 #include "irc.h"
 #include "auth.h"
 #include "config.h"
 
-static char* id="$(#) $Id: lachesis.cc,v 1.1.1.1.2.2 2004/03/17 05:35:53 lachesis Exp $";
+static char* id="$(#) $Id: lachesis.cc,v 1.1.1.1.2.3 2006/03/12 09:20:44 lachesis Exp $";
 
 CmdOpts options;
 
@@ -40,12 +41,12 @@
 char *username;
 #endif
 
-const char *OPTION_SHORT = "s:DPoOLn:N:u:U:Q:c:k:p:l:h::";
+const char *OPTION_SHORT = "s:S:DPoOLn:N:u:U:Q:c:k:p:l:h::";
 
 const char *OPTION_LIST = 
   "ircnick:Rn:ircname:RN:ircuser:Ru:userinfo:RU:datadir:R1:quitmsg:RQ:\
 channel:Rc:chankey:Rk:port:Rp:logfile:Rl:logooc:No:logother:NO:nodesccmt:NL:\
-logtitle:R3:help:Oh:pid:NP:pubdice:ND:single:Rs:";
+logtitle:R3:help:Oh:pid:NP:pubdice:ND:single:Rs:stylesheet:RS:";
 
 const char *SOFTWARE_NAME =
 #ifdef RPGSERV
@@ -108,6 +109,7 @@
 	-o, --logooc		Log OOC comments, not just corrections.\n\
 	-O, --logother		Log channels other than the current.\n\
 	--logtitle=<title>	Specify title for log.\n\
+	-S, --stylesheet=<file>	Specify CSS stylesheet for log.\n\
 \n\
 	-P, --pid		Drop a pid file\n\
 	-D, --pubdice		Use public dice rolls.\n%s",\
@@ -140,6 +142,11 @@
   "", "logtitle",
 "Specify the string to go in the TITLE tags of the log. If not specified a\n\
 default is used.\n",
+  "S", "stylesheet",
+"Specify an external stylesheet to be referenced in the log header. This\n\
+disables the otherwise automatic generation of a compiled-in internal\n\
+stylesheet. Note that you will need to define SPAN classes for \"reverse\"\n\
+and \"color#\" for each valid color number.\n",
   "n", "ircnick",
 "This option allows you to specify the \"nickname\" that the bot can use on\n\
 the IRC network. This is what you specify when sending private messages.\n\
@@ -253,7 +260,7 @@
   *options.channel = *options.key = *options.userinfo = *options.ircnick =
     *options.ircuser = *options.quitmessage = options.port = 
     *options.logtitle = options.logooc = options.logother = 
-    options.nodesccmt = options.pubdice = 0;
+    options.nodesccmt = options.pubdice = *options.logstylesheet = 0;
   options.datadir = options.logfile = NULL;
 #ifdef RPGSERV
   *options.single = 0;
@@ -314,11 +321,14 @@
     case '3':
       Util_Copy(options.logtitle, optarg, ALLOC_BUFFER);
       break;
+    case 'S':
+      Util_Copy(options.logstylesheet, optarg, ALLOC_BUFFER);
+      break;
     case 's':
 #ifdef RPGSERV
       Util_Copy(options.single, optarg, ALLOC_ACCT);
 #else
-      fputs("Invalid argument.\n");
+      fputs("Invalid argument.\n", stderr);
       exit (EXIT_FAILURE);
 #endif
       break;
@@ -421,6 +431,7 @@
 
   // Launch the various sections of the program.
   Auth_Init();
+  Log_Init(0);
   HLIRC_BeginIRCInterface();
   // This should not return.
   Util_Eputs("Error: HLIRC_BeginIRCInterface returned!\n");
diff -ru lachesis-0.2.5/lachesis.h lachesis/lachesis.h
--- lachesis-0.2.5/lachesis.h	2004-03-16 21:35:53.000000000 -0800
+++ lachesis/lachesis.h	2010-01-29 22:11:31.000000000 -0800
@@ -36,6 +36,7 @@
   char *datadir;
   char *logfile;
   char logtitle[ALLOC_BUFFER];
+  char logstylesheet[ALLOC_BUFFER];
   TF logooc;
   TF nodesccmt;
   TF logother;
diff -ru lachesis-0.2.5/log.cc lachesis/log.cc
--- lachesis-0.2.5/log.cc	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/log.cc	2010-01-30 00:07:14.000000000 -0800
@@ -1,6 +1,6 @@
 /*
  * Lachesis IRCRPG Combat Engine - Logging system
- * Copyright 2003-2004 M. Dennis
+ * Copyright 2003-2010 M. Dennis
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -27,15 +27,13 @@
 #include "utils.h"
 #include "config.h"
 
-static char* id="@(#) $Id: log.cc,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $";
+static char* id="@(#) $Id: log.cc,v 1.1.1.1.2.2 2006/03/08 17:42:10 lachesis Exp $";
 
 extern CmdOpts options;
 FILE *log_file = NULL;
 TF log_active = FALSE;
 TF log_bquote = FALSE;
 
-#define DFL_LOGTITLE "Final Fantasy: Dragoon's Birth"
-
 enum {
   LOG_LINE,
   LOG_DESC,
@@ -43,20 +41,34 @@
   LOG_FIX,
 };
 
-void Log_Init()
+void Log_Init(int status)
 {
   if (options.logfile==NULL||*options.logfile=='\0')
     return;
-  log_file = fopen(options.logfile, "wx");
-  if (log_file==NULL) {
-    Util_Eprintf("Failed to create logfile %s: %m\n", options.logfile);
-    return;
+  if (status==0) {
+    log_file = fopen(options.logfile, "wx");
+    if (log_file==NULL) {
+      Util_Eprintf("Failed to create logfile %s: %m\n", options.logfile);
+      return;
+    }
+    log_bquote = FALSE;
+    fprintf(log_file, "<HTML><HEAD>\n<TITLE>%s</TITLE>\n",
+	    (*options.logtitle=='\0') ? DFL_LOGTITLE : options.logtitle);
+    if (*options.logstylesheet!='\0')
+      fprintf(log_file, "<LINK rel=\"stylesheet\" type=\"text/css\" href=\"%s\">\n", options.logstylesheet);
+    else
+      fprintf(log_file, "<STYLE type=\"text/css\">\n%s\n</STYLE>\n", DFL_LOGSTYLE);
+    fputs("</HEAD><BODY>\n", log_file);
+    fflush(log_file);
+  } else {
+    log_file = fopen(options.logfile, "a");
+    if (log_file==NULL) {
+      Util_Eprintf("Failed to resume logfile %s: %m\n", options.logfile);
+      return;
+    }
+    log_bquote = status >> 1;
   }
   //  log_active = TRUE;
-  log_bquote = FALSE;
-  fprintf(log_file, "<HTML><HEAD>\n<TITLE>%s</TITLE>\n</HEAD><BODY>\n",
-	  (*options.logtitle=='\0') ? DFL_LOGTITLE : options.logtitle);
-  fflush(log_file);
 }
 
 void Log_Cleanup()
@@ -103,9 +115,9 @@
 
 void Log_FormatLine(char *out, size_t len, const char *in, TF comment) {
   int c = 0, d = 0;
-  TF b = FALSE, i = FALSE, u = FALSE, t = FALSE;
-  if (comment)
-    while (in[c]!='\0')
+  TF b = FALSE, i = FALSE, u = FALSE, t = FALSE, f = FALSE;
+  if (comment) {
+    while (in[c]!='\0'&&d<len)
       switch(in[c]) {
       case '-':
 	if (in[c+1]=='-'&&in[c+2]=='>') {
@@ -113,18 +125,31 @@
 	  out[d+2] = '>';
 	  d+=3;
 	  c+=3;
-	}
+	} else
+	  out[d++] = in[c++];
 	break;
       case 2:
+      case 3:
       case 15:
       case 22:
       case 31:
-	c++;
+	if (d+1>=len) {
+	  out[d] = '\0';
+	  Util_Eputs("Log: ALLOC_BUFFER too small!\n");
+	  return ;
+	}
+	out[d++] = '^';
+	out[d++] = '@'+in[c++];
 	break;
       default:
 	out[d++] = in[c++];
       }
-  else {
+    if (d>=len) {
+      out[len-1] = '\0';
+      Util_Eputs("Log: ALLOC_BUFFER too small!\n");
+      return ;
+    }
+  } else {
     while (in[c]!='\0'&&d<len)
       switch(in[c]) {
       case '<':
@@ -180,25 +205,61 @@
 	  b=TRUE;
 	}
 	break;
+      case 3:
+	if (f&&(in[c+1]<'0'||in[c+1]>'9')) {
+	  if (d+7>=len) {
+	    out[d] = '\0';
+	    Util_Eputs("Log: ALLOC_BUFFER too small!\n");
+	    return ;
+	  }
+	  strncpy(out+d, "</SPAN>", 7);
+	  d+=7;
+	  c++;
+	  f=FALSE;
+	} else {
+	  if (in[c+1]<'0'||in[c+1]>'9')
+	    //Just ignore a stray ^C
+	    c++;
+	  else {
+	    int x = in[c+2]>='0'&&in[c+2]<='9';
+	    if (d+x+21>=len) {
+	      out[d] = '\0';
+	      Util_Eputs("Log: ALLOC_BUFFER too small!\n");
+	      return ;
+	    }
+	    strncpy(out+d, "<SPAN class=\"color", 18);
+	    d+=18;
+	    if (x)
+	      if (in[++c]!='0')
+		out[d++] = in[c];
+	    out[d++] = in[++c];
+	    strncpy(out+d, "\">", 2);
+	    d+=2;
+	    c++;
+	    f = TRUE;
+	  }
+	}
+	break;
       case 22: /* Actual reverse video may not be desirable? Use fixed-width */
+	// Changing this to go to a CSS header
 	if (t) {
-	  if (d+5>=len) {
+	  if (d+7>=len) {
 	    out[d] = '\0';
 	    Util_Eputs("Log: ALLOC_BUFFER too small!\n");
 	    return ;
 	  }
-	  strncpy(out+d, "</TT>", 5);
-	  d+=5;
+	  strncpy(out+d, "</SPAN>", 7);
+	  d+=7;
 	  c++;
 	  t=FALSE;
 	} else {
-	  if (d+4>=len) {
+	  if (d+22>=len) {
 	    out[d] = '\0';
 	    Util_Eputs("Log: ALLOC_BUFFER too small!\n");
 	    return ;
 	  }
-	  strncpy(out+d, "<TT>", 4);
-	  d+=4;
+	  strncpy(out+d, "<SPAN class=\"reverse\">", 22);
+	  d+=22;
 	  c++;
 	  t=TRUE;
 	}
@@ -248,15 +309,25 @@
 	  u=FALSE;
 	}
 	if (t) {
-	  if (d+5>=len) {
+	  if (d+7>=len) {
 	    out[d] = '\0';
 	    Util_Eputs("Log: ALLOC_BUFFER too small!\n");
 	    return ;
 	  }
-	  strncpy(out+d, "</TT>", 5);
-	  d+=5;
+	  strncpy(out+d, "</SPAN>", 7);
+	  d+=7;
 	  t=FALSE;
 	}
+	if (f) {
+	  if (d+7>=len) {
+	    out[d] = '\0';
+	    Util_Eputs("Log: ALLOC_BUFFER too small!\n");
+	    return ;
+	  }
+	  strncpy(out+d, "</SPAN>", 7);
+	  d+=7;
+	  f=FALSE;
+	}
 	c++;
 	break;
       case '*':
@@ -292,7 +363,7 @@
 	out[d++] = in[c++];
       }
     if (d>=len) {
-      out[d] = '\0';
+      out[len-1] = '\0';
       Util_Eputs("Log: ALLOC_BUFFER too small!\n");
       return ;
     }
@@ -324,13 +395,22 @@
       d+=4;
     }
     if (t) {
-      if (d+5>=len) {
+      if (d+7>=len) {
+	out[d] = '\0';
+	Util_Eputs("Log: ALLOC_BUFFER too small!\n");
+	return ;
+      }
+      strncpy(out+d, "</SPAN>", 7);
+      d+=7;
+    }
+    if (f) {
+      if (d+7>=len) {
 	out[d] = '\0';
 	Util_Eputs("Log: ALLOC_BUFFER too small!\n");
 	return ;
       }
-      strncpy(out+d, "</TT>", 5);
-      d+=5;
+      strncpy(out+d, "</SPAN>", 7);
+      d+=7;
     }
   }
   out[d] = '\0';
diff -ru lachesis-0.2.5/log.h lachesis/log.h
--- lachesis-0.2.5/log.h	2004-01-15 23:28:15.000000000 -0800
+++ lachesis/log.h	2006-03-08 09:42:10.000000000 -0800
@@ -23,7 +23,7 @@
 #include "auth.h"
 #include "types.h"
 
-void Log_Init();
+void Log_Init(int status);
 void Log_Cleanup();
 void Log_CommitComment(const char *);
 void Log_CommitDescription(const char *);
@@ -35,4 +35,4 @@
 
 #endif
 
-/* @(#) $Id: log.h,v 1.1.1.1 2004/01/16 07:28:15 lachesis Exp $ */
+/* @(#) $Id: log.h,v 1.1.1.1.2.1 2006/03/08 17:42:10 lachesis Exp $ */
