Clean up function argument.
[open-adventure.git] / misc.c
diff --git a/misc.c b/misc.c
index e6f17abbddcc236ae726dc91e15d938c51a9ec38..3960347f36bc77bcc10d30a86f8d307569f1611d 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -21,6 +21,17 @@ void* xmalloc(size_t size)
   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.
@@ -60,8 +71,7 @@ void newspeak(char* msg)
     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
@@ -128,7 +138,7 @@ void newspeak(char* msg)
 
   // Render the final string.
   char rendered[2000]; // FIXME: to be replaced with dynamic allocation
-  sprintf((char *)&rendered, copy, parameters[1], parameters[2], parameters[3], parameters[4]); // FIXME: to be replaced with vsprintf()
+  sprintf(rendered, copy, parameters[1], parameters[2], parameters[3], parameters[4]); // FIXME: to be replaced with vsprintf()
 
   // Print the message.
   printf("%s\n", rendered);
@@ -698,7 +708,4 @@ void DATIME(long* d, long* t)
     *t = (long) tv.tv_usec;
 }
 
-long MOD(long n, long m) 
-{
-    return(n%m);
-}
+/* end */