home · contact · privacy
Transformed trouble_msg() into exit_err() wrapper exit_trouble(), eliminating some...
authorChristian Heller <c.heller@plomlompom.de>
Sun, 24 Nov 2013 23:48:44 +0000 (00:48 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 24 Nov 2013 23:48:44 +0000 (00:48 +0100)
src/command_db.c
src/misc.c
src/misc.h
src/readwrite.c
src/wincontrol.c

index c0aa523ac6221a49ea556ac66ede0e222926eaea..7e60b1d3510386dd3101000acf3cc637025b3506 100644 (file)
@@ -6,9 +6,8 @@
 #include <stdint.h> /* for uint8_t */
 #include <string.h> /* for strlen(), strtok() */
 #include "main.h" /* for world global */
-#include "rexit.h" /* for exit_err() */
 #include "readwrite.h" /* for textfile_sizes(), try_fopen(), try_fclose() */
-#include "misc.h" /* for try_malloc() */
+#include "misc.h" /* for try_malloc(), exit_trouble */
 
 
 
@@ -79,12 +78,12 @@ extern char * get_command_longdsc(char * dsc_short)
 extern void init_command_db()
 {
     char * f_name = "init_command_db()";
-    char * err_s = "Trouble in init_command_db() with textfile_sizes().";
 
     char * path = "config/commands";
     FILE * file = try_fopen(path, "r", f_name);
     uint16_t lines, linemax;
-    exit_err(textfile_sizes(file, &linemax, &lines), err_s);
+    uint8_t test = textfile_sizes(file, &linemax, &lines);
+    exit_trouble(test, f_name, "textfile_sizes()");
     char line[linemax + 1];
 
     struct Command * cmds = try_malloc(lines * sizeof(struct Command), f_name);
index e71770daf8361b8a6df34c8b35f27b137596414f..06c6a30a7ce6882e7f8b97ff0044ac7a731d844e 100644 (file)
@@ -34,27 +34,25 @@ extern uint16_t rrand()
 
 
 
-extern char * trouble_msg(char * parent, char * child)
+extern void exit_trouble(uint8_t test, char * parent, char * child)
 {
     char * p1 = "Trouble in ";
     char * p2 = " with ";
     char * p3 = ".";
     uint16_t size = strlen(p1) + strlen(parent) + strlen(p2) + strlen(child)
                     + strlen(p3) + 1;
-    char * msg = malloc(size);
+    char msg[size];
     exit_err(NULL == msg, "malloc() in trouble_msg() failed.");
     sprintf(msg, "%s%s%s%s%s", p1, parent, p2, child, p3);
-    return msg;
+    exit_err(test, msg);
 }
 
 
 
 extern void * try_malloc(size_t size, char * f)
 {
-    char * msg = trouble_msg(f, "malloc()");
     void * p = malloc(size);
-    exit_err(NULL == p, msg);
-    free(msg);
+    exit_trouble(NULL == p, f, "malloc()");
     return p;
 }
 
@@ -62,10 +60,8 @@ extern void * try_malloc(size_t size, char * f)
 
 extern void * try_calloc(size_t size1, size_t size2, char * f)
 {
-    char * msg = trouble_msg(f, "calloc()");
     void * p = calloc(size1, size2);
-    exit_err(NULL == p, msg);
-    free(msg);
+    exit_trouble(NULL == p, f, "calloc()");
     return p;
 }
 
index bc3e274a5c2c3a181396a630f60f574123a2d889..ddc6be6617c8b691fd06dd57365f5b1afa71b9d4 100644 (file)
@@ -20,8 +20,8 @@ struct Map;
  */
 extern uint16_t rrand();
 
-/* Returns message: "Trouble in ".parent." with ".child."." (try_*() helper) */
-extern char * trouble_msg(char * parent, char * child);
+/* Do exit_err() with message: "Trouble in ".parent." with ".child."." */
+extern void exit_trouble(uint8_t test, char * parent, char * child);
 
 /* Wrappers to malloc(), calloc() from function called "f" calling exit_err()
  * with trouble_msg() error message if necessary.
index 4bdf5ae3da5eb07038a0b88f06d63e4f34c892e9..531409e6e9f5c0ec09048c3ed73cb26f0ed5b33e 100644 (file)
@@ -8,7 +8,7 @@
 #include <string.h> /* for strlen()*/
 #include <unistd.h> /* for unlink() */
 #include "rexit.h"  /* for exit_err() */
-#include "misc.h"   /* for trouble_msg() */
+#include "misc.h"   /* for exit_trouble() */
 #include "main.h"   /* for world global */
 
 
@@ -52,19 +52,15 @@ extern FILE * try_fopen(char * path, char * mode, char * f)
 
 extern void try_fclose(FILE * file, char * f)
 {
-    char * msg = trouble_msg(f, "fclose()");
-    exit_err(fclose(file), msg);
-    free(msg);
+    exit_trouble(fclose(file), f, "fclose()");
 }
 
 
 
 extern char * try_fgets(char * line, int linemax, FILE * file, char * f)
 {
-    char * msg = trouble_msg(f, "fgets()");
     char * test = fgets(line, linemax, file);
-    exit_err(NULL == test && ferror(file), msg);
-    free(msg);
+    exit_trouble(NULL == test && ferror(file), f, "fgets()");
     return test;
 }
 
@@ -73,9 +69,7 @@ extern char * try_fgets(char * line, int linemax, FILE * file, char * f)
 extern void try_fwrite(void * ptr, size_t size, size_t nmemb, FILE * stream,
                        char * f)
 {
-    char * msg = trouble_msg(f, "fwrite()");
-    exit_err(0 == fwrite(ptr, size, nmemb, stream), msg);
-    free(msg);
+    exit_trouble(0 == fwrite(ptr, size, nmemb, stream), f, "fwrite()");
 }
 
 
@@ -108,10 +102,8 @@ extern void try_fclose_unlink_rename(FILE * file, char * p1, char * p2,
 
 extern uint16_t get_linemax(FILE * file, char * f)
 {
-    char * msg = trouble_msg(f, "textfile_sizes()");
     uint16_t linemax;
-    exit_err(textfile_sizes(file, &linemax, NULL), msg);
-    free(msg);
+    exit_trouble(textfile_sizes(file, &linemax, NULL), f, "textfile_sizes()");
     return linemax;
 }
 
index 658a8ced60d1247aba01860dce671058f795f316..296c4a9dd8d5112cc18fb2e96592683643a3910d 100644 (file)
@@ -20,7 +20,7 @@
                         * draw_win_keybindings_winconf_keybindings(),
                         * draw_winconf_geometry(), draw_winconf_keybindings()
                         */
-#include "misc.h" /* for try_malloc(), trouble_msg() */
+#include "misc.h" /* for try_malloc(), exit_trouble() */
 #include "dirent.h" /* for opendir(), closedir(), readdir() */
 #include "errno.h" /* for errno */
 #include "keybindings.h" /* for KeyBinding struct, free_keybindings() */
@@ -337,13 +337,9 @@ extern struct Win * get_win_by_id(char id)
 extern void init_winconfs()
 {
     char * f_name = "init_winconfs()";
-    char * err_o = trouble_msg(f_name, "opendir()");
-    char * err_r = trouble_msg(f_name, "readdir()");
-    char * err_c = trouble_msg(f_name, "closedir()");
 
     DIR * dp = opendir("config/windows");
-    exit_err(NULL == dp, err_o);
-    free(err_o);
+    exit_trouble(NULL == dp, f_name, "opendir()");
     struct dirent * fn;
     errno = 0;
     char * winconf_ids = try_malloc(256, f_name);
@@ -359,10 +355,8 @@ extern void init_winconfs()
         }
     }
     winconf_ids[i] = '\0';
-    exit_err(errno, err_r);
-    free(err_r);
-    exit_err(closedir(dp), err_c);
-    free(err_c);
+    exit_trouble(errno, f_name, "readdir()");
+    exit_trouble(closedir(dp), f_name, "closedir()");
     world.winconf_ids = try_malloc(strlen(winconf_ids) + 1, f_name);
     memcpy(world.winconf_ids, winconf_ids, strlen(winconf_ids) + 1);
     free(winconf_ids);
@@ -422,9 +416,7 @@ extern void sorted_wintoggle_and_activate()
     try_fgets(win_order, linemax + 1, file, f_name);
 
     uint8_t a = 0;
-    char * err = trouble_msg(f_name, "read_uint8()");
-    exit_err(read_uint8(file, &a), err);
-    free(err);
+    exit_trouble(read_uint8(file, &a), f_name, "read_uint8()");
 
     try_fclose(file, f_name);