home · contact · privacy
Simplified textfile_sizes() and replaced all get_linemax() calls with it.
[plomrogue] / src / wincontrol.c
index aa705ecacd89f06083eb82fca779f2777d951789..74bd4a202b5a96f73973e4f399985d5b37ec75ca 100644 (file)
@@ -9,10 +9,11 @@
                       */
 #include "yx_uint16.h" /* for yx_uint16 struct */
 #include "main.h" /* for world global */
-#include "readwrite.h" /* for get_linemax(), try_fopen(), try_fclose(),
+#include "readwrite.h" /* for textfile_sizes(), try_fopen(), try_fclose(),
                         * try_fgets(), try_fclose_unlink_rename(), try_fwrite()
+                        * try_fgetc_noeof()
                         */
-#include "rexit.h" /* for exit_err() */
+#include "rexit.h" /* for exit_err(), exit_trouble() */
 #include "draw_wins.h" /* for draw_win_map(), draw_win_info(), draw_win_log(),
                         * draw_win_available_keybindings(),
                         * draw_win_inventory(), draw_win_keybindings_global(),
@@ -20,7 +21,7 @@
                         * draw_win_keybindings_winconf_keybindings(),
                         * draw_winconf_geometry(), draw_winconf_keybindings()
                         */
-#include "misc.h" /* for try_malloc(), exit_trouble() */
+#include "misc.h" /* for try_malloc() */
 #include "dirent.h" /* for opendir(), closedir(), readdir() */
 #include "errno.h" /* for errno */
 #include "keybindings.h" /* for KeyBinding struct, free_keybindings() */
@@ -82,7 +83,7 @@ static void init_winconf_from_file(char id, struct WinConf * winconf)
     /* Prepare reading in file line by line into "line" array. */
     FILE * file = try_fopen(path, "r", context);
     free(path);
-    uint16_t linemax = get_linemax(file, context);
+    uint16_t linemax = textfile_sizes(file, NULL/*, context*/);
     char line[linemax + 1];
 
     /* Read/determine winconf->title, ->draw, ->height(_type),->width(_type). */
@@ -395,11 +396,10 @@ extern void sorted_wintoggle_and_activate()
     /* Read from file order of windows to be toggled + active win selection. */
     char * path = "config/windows/toggle_order_and_active";
     FILE * file = try_fopen(path, "r", f_name);
-    uint16_t linemax = get_linemax(file, f_name);
+    uint16_t linemax = textfile_sizes(file, NULL);
     char win_order[linemax + 1];
     try_fgets(win_order, linemax + 1, file, f_name);
-    uint8_t a;
-    exit_trouble(read_uint8(file, &a), f_name, "read_uint8()");
+    uint8_t a = try_fgetc_noeof(file, f_name);
     try_fclose(file, f_name);
 
     /* Toggle windows and set active window selection. */
@@ -452,7 +452,7 @@ extern void save_win_configs()
     if (0 != world.wmeta->active)
     {
         struct WinConf * wc = get_winconf_by_win(world.wmeta->active);
-        write_uint8(wc->id, file);
+        try_fputc(wc->id, file, f_name);
     }
     try_fclose_unlink_rename(file, path_tmp, path, f_name);
 }