#define READ_MODE "rb"
#define WRITE_MODE "wb"
extern void* xmalloc(size_t);
+extern char* xstrdup(const char*);
extern void packed_to_token(long, char token[6]);
extern void newspeak(char*);
extern void PSPEAK(vocab_t,int);
return(ptr);
}
+char* xstrdup(const char* s)
+{
+ char* ptr = strdup(s);
+ if (ptr == NULL)
+ {
+ fprintf(stderr, "Out of memory!\n");
+ exit(EXIT_FAILURE);
+ }
+ return(ptr);
+}
+
void packed_to_token(long packed, char token[6])
{
// Unpack and map back to ASCII.
printf("\n");
// Create a copy of our string, so we can edit it.
- char* copy = (char*) xmalloc(strlen(msg) + 1);
- strncpy(copy, msg, strlen(msg) + 1);
+ char* copy = xstrdup(msg);
// Staging area for stringified parameters.
char parameters[5][100]; // FIXME: to be replaced with dynamic allocation