talker/
talker/bin/
talker/files/whois/
talker/update/
talker/update/bin/
/*
 * mail.c
 */

#include <stdlib.h>
#include <ctype.h>
#include <sys/time.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>
#include <signal.h>
#include <memory.h>
#include <sys/types.h>
#include <sys/time.h>

#include "fix.h"
#include "config.h"
#include "player.h"

/* Our Extern Functions */

extern char *get_int(int *dest, char *source);
extern char *store_int(char *dest, int source);

/* store info for a player save */

void            construct_mail_save(saved_player * sp)
{
  int             count = 0, *scan;
  char           *oldstack;

  stack = store_int(stack, sp->mail_sent);
  if (!(sp->mail_received))
    stack = store_int(stack, 0);
  else
  {
    oldstack = stack;
    stack = store_int(oldstack, 0);
    for (scan = sp->mail_received; *scan; scan++, count++)
      stack = store_int(stack, *scan);
    store_int(oldstack, count);
  }
}


/* get info back from a player save */

char           *retrieve_mail_data(saved_player * sp, char *where)
{
  int             count = 0, *fill;
  
  where = get_int(&sp->mail_sent, where);
  where = get_int(&count, where);
  if (count)
  {
    fill = (int *) MALLOC((count + 1) * sizeof(int));
    sp->mail_received = fill;
    for (; count; count--, fill++)
      where = get_int(fill, where);
    *fill++ = 0;
  } else
    sp->mail_received = 0;
  return where;
}