/**
 * Closedown code
 * (C) Nettle developers 2000-2001
 *
 * $Id: quit,v 1.22 2002/02/01 23:51:39 ijeffray Exp $
 */

#include "generic.h"
#include "globals.h"

#include "hotlist.h"
#include "init.h"
#include "messages.h"
#include "misc.h"
#include "nettle.h"
#include "quit.h"
#include "scripts.h"
#include "sockwatch.h"
#include "termlist.h"
#include "zapredraw.h"
#include "wimp.h"

void closedown_application(void)
{
  /* Quit! */

  while (sessions)
  {
    remove_session(sessions);
  }

  lose_messages();
  lose_bitmaps();
  lose_zapredraw_area();

  free(zap_font_area);
  free(zap_lowres_font_area);
  lose_hotlist();
  lose_termlist_menu();
  socketwatch_finalise();
  lose_templates();
  script_closedown();

  close_log(true);

#ifdef FORTIFY
  Fortify_LeaveScope();
#endif

  closedown_wimp();

  exit(EXIT_SUCCESS);
}
