This function is a replacement for the every annoying ctime() function that
literally litters SMAUG.
Do a search for 'strtime' and you'll see what I mean.

A couple dozen of:

    strtime                    = ctime( &current_time );
    strtime[strlen(strtime)-1] = '\0';

Just to remove the stupid trailing \n from ctime that was added by whatever
idiot decided people would want to see what time it was. As if it was so hard
for people to add their own if they wanted one? Adding a single \n to the end
of something is much shorter than removing one you never needed in the first place.
Ok. Rant over.
Anyhow, this function also changes the return slightly, so that it is on normal
human time, rather than military time, which tends to be more player friendly.

char *friendly_ctime( time_t *time)
{
  static char *day[] = { "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" };
  static char *month[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct" , "Nov" , "Dec" };
  static char strtime[128];
  struct tm *timet=localtime(time);

  sprintf( strtime, "%3s %3s %2d %02d:%02d:%02d %cM %04d", day[timet->tm_wday], month[timet->tm_mon], timet->tm_mday, timet->tm_hour == 0 ? 12 : timet->tm_hour > 12 ? timet->tm_hour-12 : timet->tm_hour, timet->tm_min, timet->tm_sec, timet->tm_hour < 12 ? 'A' : 'P',  timet->tm_year+1900); 
  return strtime;
}