Ejemplo n.º 1
0
void abort_handler(int signal)
{
	static char crashed = FALSE;

	if (crashed)
	{
		exit(-1);
	}
	crashed = TRUE;

	restore_terminal();

	clean_screen(gtd->ses);

	dump_stack();

	fflush(NULL);

	exit(-1);

	if (gtd->ses->connect_retry > utime())
	{
		gtd->ses->connect_retry = 0;
	}
	else if (HAS_BIT(gtd->ses->telopts, TELOPT_FLAG_SGA) && !HAS_BIT(gtd->ses->telopts, TELOPT_FLAG_ECHO))
	{
		socket_printf(gtd->ses, 1, "%c", 3);
	}
	else
	{
		do_zap(gtd->ses, "");
	}
}
Ejemplo n.º 2
0
bool item_list::handle_item(item_t* item)
{
  switch (m_action)
  {
  case DROP:
  case PICKUP:
    choose_item(item);
    return false;
  case READ:
    do_read(item);
    return true;
  case QUAF:
    do_quaf(item);
    return true;
  case ZAP:
    do_zap(item);
    return true;
  case EQUIP:
    do_equip(item);
    return true;
  case SHOW_ALL:
    return true;
  case IDENTIFY:
    do_identify(item);
    return true;
  case ENCHANT_WEAPON:
  case ENCHANT_ARMOR:
    do_enchant(item);
    return true;
  case EAT:
    do_eat(item);
    return true;
  }

  return false;
}