tab: Add debugging checks to tab_hline() to match those for tab_vline().
authorBen Pfaff <blp@cs.stanford.edu>
Sat, 13 Mar 2010 18:59:09 +0000 (10:59 -0800)
committerBen Pfaff <blp@cs.stanford.edu>
Sat, 13 Mar 2010 18:59:09 +0000 (10:59 -0800)
I'm not sure that this is really a good approach, but we might as well be
consistent.

src/output/tab.c

index 3092c04372618938c2058364bacde9109491ac91..f6b4886b1f4837327e830fb44cd0c14114878fe4 100644 (file)
@@ -236,6 +236,21 @@ tab_vline (struct tab_table *t, int style, int x, int y1, int y2)
 void
 tab_hline (struct tab_table * t, int style, int x1, int x2, int y)
 {
+#if DEBUGGING
+  if (y + t->row_ofs < 0 || y + t->row_ofs > tab_nr (t)
+      || x1 + t->col_ofs < 0 || x1 + t->col_ofs >= tab_nc (t)
+      || x2 + t->col_ofs < 0 || x2 + t->col_ofs >= tab_nc (t))
+    {
+      printf (_("bad hline: x=(%d+%d=%d,%d+%d=%d) y=%d+%d=%d in "
+               "table size (%d,%d)\n"),
+              x1, t->col_ofs, x1 + t->col_ofs,
+              x2, t->col_ofs, x2 + t->col_ofs,
+              y, t->row_ofs, y + t->row_ofs,
+             tab_nc (t), tab_nr (t));
+      return;
+    }
+#endif
+
   x1 += t->col_ofs;
   x2 += t->col_ofs;
   y += t->row_ofs;