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, ""); } }
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; }