#include "master.h" /* If memory allocation fails, bail out */ void *safe_malloc(size_t size) { void *ptr = malloc(size); if(!ptr) fatal_error("Out of memory in safe_malloc", 0); return ptr; } F_CHAR *safe_strdup(const F_CHAR *str) { F_CHAR *ptr = STRDUP(str); if(!ptr) fatal_error("Out of memory in safe_strdup", 0); return ptr; } /* We don't use printf directly, because format directives are not portable. Instead we define the common cases here. */ void nl(void) { fputs("\n",stdout); } void print_string(const char *str) { fputs(str,stdout); } void print_cell(CELL x) { printf(CELL_FORMAT,x); } void print_cell_hex(CELL x) { printf(CELL_HEX_FORMAT,x); } void print_cell_hex_pad(CELL x) { printf(CELL_HEX_PAD_FORMAT,x); } void print_fixnum(F_FIXNUM x) { printf(FIXNUM_FORMAT,x); } CELL read_cell_hex(void) { CELL cell; scanf(CELL_HEX_FORMAT,&cell); return cell; };