home · contact · privacy
Added further (though rarely informative) handling of windows library error.
authorChristian Heller <c.heller@plomlompom.de>
Sat, 24 Aug 2013 04:21:02 +0000 (06:21 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sat, 24 Aug 2013 04:21:02 +0000 (06:21 +0200)
src/draw_wins.c
src/keybindings.c
src/misc.c
src/misc.h

index 4dfd054a8149bf578736c25c14a32dbec7cdddaf..02b569cf1457eba6b78ad140b0ddc548b1455dd9 100644 (file)
@@ -11,6 +11,7 @@
 #include "map_objects.h" /* for structs MapObj, Player */
 #include "map.h"         /* for Map struct */
 #include "main.h"        /* for World struct */
+#include "rexit.h"       /* for err_exit() */
 
 
 
@@ -227,16 +228,18 @@ extern void draw_keys_win(struct Win * win)
     {
         if (0 == y && offset > 0)
         {
-            draw_scroll_hint(&win->frame, y, offset + 1, '^');
+            exit_err(draw_scroll_hint(&win->frame, y, offset + 1, '^'),
+                     world, NULL);
             continue;
         }
         else if (win->frame.size.y == y + 1
                  && 0 < world->keyswindata->max
                         - (win->frame.size.y + offset - 1))
         {
-            draw_scroll_hint(&win->frame, y,
-                             world->keyswindata->max
-                             - (offset + win->frame.size.y) + 2, 'v');
+            exit_err(draw_scroll_hint(&win->frame, y,
+                                      world->keyswindata->max
+                                       - (offset + win->frame.size.y) + 2, 'v'),
+                     world, NULL);
             continue;
         }
         attri = 0;
index f33b559407fe419e8ab18e1bb292731cddf27416..0b5194c4eec8d585a7b024c0acacab65f5da8287 100644 (file)
@@ -10,6 +10,7 @@
 #include "windows.h" /* for draw_all_wins() and WinMeta struct */
 #include "misc.h"    /* for texfile_sizes() */
 #include "main.h"    /* for World struct */
+#include "rexit.h"   /* for err_exit() */
 
 
 
@@ -169,7 +170,7 @@ extern char * get_keyname(uint16_t keycode)
 extern void keyswin_mod_key(struct World * world, struct WinMeta * win_meta)
 {
     world->keyswindata->edit = 1;
-    draw_all_wins(win_meta);
+    exit_err(draw_all_wins(win_meta), world, "Window drawing error.");
     int key = getch();
     if (key < 1000)
     {
index 6f8c6c766ac1b0807b64e73a8524e4c8fb3c1f19..72568858451877a65b5cd51dcf61b5074c5d268d 100644 (file)
@@ -185,15 +185,15 @@ extern void save_game(struct World * world)
 
 
 
-extern void toggle_window(struct WinMeta * win_meta, struct Win * win)
+extern uint8_t toggle_window(struct WinMeta * win_meta, struct Win * win)
 {
     if (0 != win->frame.curses_win)
     {
-        suspend_win(win_meta, win);
+        return suspend_win(win_meta, win);
     }
     else
     {
-        append_win(win_meta, win);
+        return append_win(win_meta, win);
     }
 }
 
@@ -213,7 +213,7 @@ extern void scroll_pad(struct WinMeta * win_meta, char dir)
 
 
 
-extern void growshrink_active_window(struct WinMeta * win_meta, char change)
+extern uint8_t growshrink_active_window(struct WinMeta * win_meta, char change)
 {
     if (0 != win_meta->active)
     {
@@ -234,8 +234,9 @@ extern void growshrink_active_window(struct WinMeta * win_meta, char change)
         {
             size.x++;
         }
-        resize_active_win (win_meta, size);
+        return resize_active_win (win_meta, size);
     }
+    return 0;
 }
 
 
@@ -272,19 +273,19 @@ extern uint8_t meta_keys(int key, struct World * world,
     }
     else if (key == get_action_key(world->keybindings, "toggle keys window"))
     {
-        toggle_window(win_meta, win_keys);
+        exit_err(toggle_window(win_meta, win_keys), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "toggle map window"))
     {
-        toggle_window(win_meta, win_map);
+        exit_err(toggle_window(win_meta, win_map), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "toggle info window"))
     {
-        toggle_window(win_meta, win_info);
+        exit_err(toggle_window(win_meta, win_info), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "toggle log window"))
     {
-        toggle_window(win_meta, win_log);
+        exit_err(toggle_window(win_meta, win_log), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "cycle forwards"))
     {
@@ -296,27 +297,27 @@ extern uint8_t meta_keys(int key, struct World * world,
     }
     else if (key == get_action_key(world->keybindings, "shift forwards"))
     {
-        shift_active_win(win_meta, 'f');
+        exit_err(shift_active_win(win_meta, 'f'), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "shift backwards"))
     {
-        shift_active_win(win_meta, 'b');
+        exit_err(shift_active_win(win_meta, 'b'), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "grow horizontally"))
     {
-        growshrink_active_window(win_meta, '*');
+        exit_err(growshrink_active_window(win_meta, '*'), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "shrink horizontally"))
     {
-        growshrink_active_window(win_meta, '_');
+        exit_err(growshrink_active_window(win_meta, '_'), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "grow vertically"))
     {
-        growshrink_active_window(win_meta, '+');
+        exit_err(growshrink_active_window(win_meta, '+'), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "shrink vertically"))
     {
-        growshrink_active_window(win_meta, '-');
+        exit_err(growshrink_active_window(win_meta, '-'), world, NULL);
     }
     else if (key == get_action_key(world->keybindings, "save keys"))
     {
index 39efe6ac0ef64032b78a82b14889810e34862e2d..259a511e124596bc6398c78a15493cfbf609f993 100644 (file)
@@ -54,8 +54,11 @@ extern void save_game(struct World * world);
 
 
 
-/* Toggle display of a window "win". */
-extern void toggle_window(struct WinMeta * win_meta, struct Win * win);
+/* Toggle display of a window "win".
+ *
+ * Return 0 on success, 1 on (ncurses pad/window memory allocation) error.
+ */
+extern uint8_t toggle_window(struct WinMeta * win_meta, struct Win * win);
 
 
 
@@ -70,8 +73,10 @@ extern void scroll_pad(struct WinMeta * win_meta, char dir);
 /* Try to grow or shrink the active window horizontally ("change" = "*"/"_") or
  * vertically ("change = "+"/"-") by one cell size, subject to the limitations
  * provided by the window manager via resize_active_win().
+ *
+ * Return 0 on success, 1 on (ncurses pad/window memory allocation) error.
  */
-extern void growshrink_active_window(struct WinMeta * win_meta, char change);
+extern uint8_t growshrink_active_window(struct WinMeta * win_meta, char change);