2009-05-02 05:04:19 -04:00
|
|
|
#include "master.hpp"
|
|
|
|
|
2009-05-04 02:46:13 -04:00
|
|
|
namespace factor
|
|
|
|
{
|
|
|
|
|
2009-05-02 05:04:19 -04:00
|
|
|
/* 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;
|
|
|
|
}
|
|
|
|
|
2009-05-04 05:50:24 -04:00
|
|
|
vm_char *safe_strdup(const vm_char *str)
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
2009-05-04 05:50:24 -04:00
|
|
|
vm_char *ptr = STRDUP(str);
|
2009-05-02 05:04:19 -04:00
|
|
|
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. */
|
2009-05-05 12:33:35 -04:00
|
|
|
void nl()
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
|
|
|
fputs("\n",stdout);
|
|
|
|
}
|
|
|
|
|
|
|
|
void print_string(const char *str)
|
|
|
|
{
|
|
|
|
fputs(str,stdout);
|
|
|
|
}
|
|
|
|
|
2009-05-04 05:50:24 -04:00
|
|
|
void print_cell(cell x)
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
2009-05-04 05:50:24 -04:00
|
|
|
printf(cell_FORMAT,x);
|
2009-05-02 05:04:19 -04:00
|
|
|
}
|
|
|
|
|
2009-05-04 05:50:24 -04:00
|
|
|
void print_cell_hex(cell x)
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
2009-05-04 05:50:24 -04:00
|
|
|
printf(cell_HEX_FORMAT,x);
|
2009-05-02 05:04:19 -04:00
|
|
|
}
|
|
|
|
|
2009-05-04 05:50:24 -04:00
|
|
|
void print_cell_hex_pad(cell x)
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
2009-05-04 05:50:24 -04:00
|
|
|
printf(cell_HEX_PAD_FORMAT,x);
|
2009-05-02 05:04:19 -04:00
|
|
|
}
|
|
|
|
|
2009-05-04 05:50:24 -04:00
|
|
|
void print_fixnum(fixnum x)
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
|
|
|
printf(FIXNUM_FORMAT,x);
|
|
|
|
}
|
|
|
|
|
2009-05-05 12:33:35 -04:00
|
|
|
cell read_cell_hex()
|
2009-05-02 05:04:19 -04:00
|
|
|
{
|
2009-05-04 05:50:24 -04:00
|
|
|
cell cell;
|
|
|
|
if(scanf(cell_HEX_FORMAT,&cell) < 0) exit(1);
|
2009-05-02 05:04:19 -04:00
|
|
|
return cell;
|
|
|
|
};
|
2009-05-04 02:46:13 -04:00
|
|
|
|
|
|
|
}
|