+#endif
+
+NCURSES_EXPORT(void)
+NCURSES_SP_NAME(_nc_free_and_exit) (NCURSES_SP_DCLx int code)
+{
+ char *last_buffer = (SP_PARM != 0) ? SP_PARM->out_buffer : 0;
+
+ NCURSES_SP_NAME(_nc_flush) (NCURSES_SP_ARG);
+ NCURSES_SP_NAME(_nc_freeall) (NCURSES_SP_ARG);
+#ifdef TRACE
+ trace(0); /* close trace file, freeing its setbuf */
+ {
+ static va_list fake;
+ free(_nc_varargs("?", fake));
+ }
+#endif
+ FreeIfNeeded(last_buffer);
+ exit(code);
+}
+