From: Christian Heller <c.heller@plomlompom.de>
Date: Thu, 23 Jan 2014 05:27:32 +0000 (+0100)
Subject: Optimized WinConf / WinConfDB structure, removed redundant .draw.
X-Git-Tag: tce~870
X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/%7B%7Bdb.prefix%7D%7D/%7B%7B%20web_path%20%7D%7D/decks/%27%29;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chunks.push%28escapeHTML%28span%5B2%5D%29%29;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chunks.push%28%27?a=commitdiff_plain;h=96ec154837699bd8687d1067deec4f6e593d99c9;p=plomrogue

Optimized WinConf / WinConfDB structure, removed redundant .draw.
---

diff --git a/src/client/wincontrol.c b/src/client/wincontrol.c
index 275fc9c..fcf3e86 100644
--- a/src/client/wincontrol.c
+++ b/src/client/wincontrol.c
@@ -124,7 +124,7 @@ extern void init_win_from_winconf(char id)
 {
     char * err = "get_drawfunc_by_char() returns NULL to init_win_from_file().";
     struct WinConf * winconf = get_winconf_by_id(id);
-    void * f = get_drawfunc_by_char(winconf->draw);
+    void * f = get_drawfunc_by_char(winconf->id);
     exit_err(NULL == f, err);
     init_win(&winconf->win, winconf->title, winconf->height, winconf->width, f);
 }
@@ -179,7 +179,6 @@ extern uint8_t read_winconf_from_file(char * line, uint32_t linemax, FILE * file
     }
     struct WinConf winconf;
     winconf.id = (char) test;
-    winconf.draw = winconf.id;
     try_fgetc(file, f_name);
     try_fgets(line, linemax + 1, file, f_name);
     winconf.title = try_malloc(strlen(line), f_name);
@@ -233,7 +232,7 @@ extern void write_winconf_of_id_to_file(FILE * file, char c, char * delim)
         size = 7;
     }
     char line[size];
-    sprintf(line, "%c\n", wc->draw);
+    sprintf(line, "%c\n", wc->id);
     try_fwrite(line, sizeof(char), strlen(line), file, f_name);
     sprintf(line, "%s\n", wc->title);
     try_fwrite(line, sizeof(char), strlen(line), file, f_name);
@@ -387,7 +386,7 @@ extern void toggle_winconfig()
     else
     {
         wcp->view     = 0;
-        win->draw     = get_drawfunc_by_char(wcp->draw);
+        win->draw     = get_drawfunc_by_char(wcp->id);
         win->center   = wcp->center;
     }
 }
diff --git a/src/client/wincontrol.h b/src/client/wincontrol.h
index 67c72bc..8290379 100644
--- a/src/client/wincontrol.h
+++ b/src/client/wincontrol.h
@@ -18,29 +18,24 @@ struct WinConfDB
 {
     struct WinConf * winconfs;
     char * ids;
-    char active; /* id of window selected as active */
     char * order; /* order of visible windows (identified by IDs) */
+    char active; /* id of window selected as active */
 };
 
-/* Stores a window's configuration (like geometry, keybindings) and a pointer to
- * the respective Win struct itself.
- */
+/* Window's configuration (like geometry, keybindings) and the Win itself. */
 struct WinConf
 {
-    char id; /* Unique identifier of WinConf, doubles aas identifier for .win */
-             /* and the char following "Win_" in the respective conffile name.*/
     struct Win * win;    /* Window / Win struct configured by this WinConf. */
     struct KeyBindingDB kb; /* Window-specific keybindings. */
-    uint8_t view; /* 0: use .draw as Win.draw; 1/2: use draw_winconf()_(1/2). */
+    struct yx_uint16 center; /* Designated Win.center */
     int16_t height;      /* Designated height to pass to init_win(). */
     int16_t width;       /* Designated width to pass to init_win(). */
     uint8_t height_type; /* 0: read .height/.width as size in positive cells; */
     uint8_t width_type;  /* 1: as negative diff in cells to the screen size.  */
+    uint8_t view; /* 0: use .draw as Win.draw; 1/2: use draw_winconf()_(1/2). */
+    char id; /* Identifier of WinConf, also identifies Win.draw function. */
     char * title; /* Designated title to pass to init_win(). */
-    char draw;    /* Identifier of designated Win.draw; passed to init_win() */
-                  /* and reset after toggling Win.draw via toggle_winconf(). */
-    struct yx_uint16 center; /* Designated Win.center; to be reset after  */
-};                           /* toggling Win.center via toggle_winconf(). */
+};