Exemplo n.º 1
0
void tb_shutdown(void)
{
	if (termw == -1) {
		fputs("tb_shutdown() should not be called twice.", stderr);
		abort();
	}

	bytebuffer_puts(&output_buffer, funcs[T_SHOW_CURSOR]);
	bytebuffer_puts(&output_buffer, funcs[T_SGR0]);
	bytebuffer_puts(&output_buffer, funcs[T_CLEAR_SCREEN]);
	bytebuffer_puts(&output_buffer, funcs[T_EXIT_CA]);
	bytebuffer_puts(&output_buffer, funcs[T_EXIT_KEYPAD]);
	bytebuffer_puts(&output_buffer, funcs[T_EXIT_MOUSE]);
	bytebuffer_flush(&output_buffer, inout);
	tcsetattr(inout, TCSAFLUSH, &orig_tios);

	shutdown_term();
	close(inout);
	close(winch_fds[0]);
	close(winch_fds[1]);

	cellbuf_free(&back_buffer);
	cellbuf_free(&front_buffer);
	bytebuffer_free(&output_buffer);
	bytebuffer_free(&input_buffer);
	termw = termh = -1;
}
Exemplo n.º 2
0
void tb_shutdown(void)
{
	memstream_puts(&write_buffer, funcs[T_SHOW_CURSOR]);
	memstream_puts(&write_buffer, funcs[T_SGR0]);
	memstream_puts(&write_buffer, funcs[T_CLEAR_SCREEN]);
	memstream_puts(&write_buffer, funcs[T_EXIT_CA]);
	memstream_puts(&write_buffer, funcs[T_EXIT_KEYPAD]);
	memstream_flush(&write_buffer);
	tcsetattr(out_fileno, TCSAFLUSH, &orig_tios);

	close(out);
	fclose(in);
	close(winch_fds[0]);
	close(winch_fds[1]);

	cellbuf_free(&back_buffer);
	cellbuf_free(&front_buffer);
	free_ringbuffer(&inbuf);
}
Exemplo n.º 3
0
void tb_shutdown()
{
	fputs(funcs[T_SHOW_CURSOR], out);
	fputs(funcs[T_SGR0], out);
	fputs(funcs[T_CLEAR_SCREEN], out);
	fputs(funcs[T_EXIT_CA], out);
	fputs(funcs[T_EXIT_KEYPAD], out);
	fflush(out);
	tcsetattr(out_fileno, TCSAFLUSH, &orig_tios);

	fclose(out);
	fclose(in);
	close(winch_fds[0]);
	close(winch_fds[1]);

	cellbuf_free(&back_buffer);
	cellbuf_free(&front_buffer);
	free_ringbuffer(&inbuf);
}
Exemplo n.º 4
0
void tb_shutdown(void)
{
	bytebuffer_puts(&output_buffer, funcs[T_SHOW_CURSOR]);
	bytebuffer_puts(&output_buffer, funcs[T_SGR0]);
	bytebuffer_puts(&output_buffer, funcs[T_CLEAR_SCREEN]);
	bytebuffer_puts(&output_buffer, funcs[T_EXIT_CA]);
	bytebuffer_puts(&output_buffer, funcs[T_EXIT_KEYPAD]);
	bytebuffer_flush(&output_buffer, inout);
	tcsetattr(inout, TCSAFLUSH, &orig_tios);

	shutdown_term();
	close(inout);
	close(winch_fds[0]);
	close(winch_fds[1]);

	cellbuf_free(&back_buffer);
	cellbuf_free(&front_buffer);
	bytebuffer_free(&output_buffer);
	bytebuffer_free(&input_buffer);
}