Fix table function assertions to respect offsets.
authorBen Pfaff <blp@gnu.org>
Sun, 21 Mar 2004 06:22:20 +0000 (06:22 +0000)
committerBen Pfaff <blp@gnu.org>
Sun, 21 Mar 2004 06:22:20 +0000 (06:22 +0000)
src/ChangeLog
src/command.def
src/tab.c

index 90df01c4715d6cacb282c4cc0f47e1ef90847c74..14de86216b6982d1c070c29bab6c64fdd258f28b 100644 (file)
@@ -1,3 +1,11 @@
+Sat Mar 20 22:19:08 2004  Ben Pfaff  <blp@gnu.org>
+
+       * tab.c: (tab_vline) Fix assertions to respect row_ofs and
+       col_ofs.
+       (tab_hline) Ditto.
+       (tab_box) Ditto.
+       (tab_joint_text) Ditto.
+
 Sat Mar 20 17:57:23 2004  Ben Pfaff  <blp@gnu.org>
 
        * levene.c: Add #include.
index b5a3eda1d412c6d845195dd43e3ccfcfc465660d..beb18c4edece6a11b54d859084efee61dd276416 100644 (file)
@@ -114,7 +114,7 @@ DEFCMD ("SAMPLE",                 ERRO, ERRO, TRAN, TRAN, cmd_sample)
 DEFCMD ("SAVE",                   ERRO, ERRO, PROC, PROC, cmd_save)
 DEFCMD ("SELECT IF",              ERRO, ERRO, TRAN, TRAN, cmd_select_if)
 DEFCMD ("SET",                    INIT, INPU, TRAN, PROC, cmd_set)
-DEFCMD ("SHOW",                    INIT, INPU, TRAN, PROC, cmd_show)
+DEFCMD ("SHOW",                   INIT, INPU, TRAN, PROC, cmd_show)
 DEFCMD ("SORT",                   ERRO, ERRO, PROC, PROC, cmd_sort_cases)
 DEFCMD ("SORT CASES",             ERRO, ERRO, PROC, PROC, cmd_sort_cases)
 DEFCMD ("SPLIT FILE",             ERRO, INPU, TRAN, TRAN, cmd_split_file)
index fbb292fdbb84b6639a844b26a1d689df87e1fc31..118a77cd68df7f26b84af4c32b55a836c3d9a250 100644 (file)
--- a/src/tab.c
+++ b/src/tab.c
@@ -252,11 +252,6 @@ tab_vline (struct tab_table *t, int style, int x, int y1, int y2)
   int y;
 
   assert (t != NULL);
-  assert (x  > 0);
-  assert (x  < t->nc);
-  assert (y1 >= 0);
-  assert (y2 >= y1);
-  assert (y2 <=  t->nr);
 
 #if GLOBAL_DEBUGGING
   if (x + t->col_ofs < 0 || x + t->col_ofs > t->nc
@@ -277,6 +272,12 @@ tab_vline (struct tab_table *t, int style, int x, int y1, int y2)
   y1 += t->row_ofs;
   y2 += t->row_ofs;
 
+  assert (x  > 0);
+  assert (x  < t->nc);
+  assert (y1 >= 0);
+  assert (y2 >= y1);
+  assert (y2 <=  t->nr);
+
   if (style != -1)
     {
       if ((style & TAL_SPACING) == 0)
@@ -295,16 +296,16 @@ tab_hline (struct tab_table * t, int style, int x1, int x2, int y)
 
   assert (t != NULL);
 
+  x1 += t->col_ofs;
+  x2 += t->col_ofs;
+  y += t->row_ofs;
+
   assert (y >= 0);
   assert (y < t->nr);
   assert (x2 >= x1 );
   assert (x1 >= 0 );
   assert (x2 < t->nc);
 
-  x1 += t->col_ofs;
-  x2 += t->col_ofs;
-  y += t->row_ofs;
-
   if (style != -1)
     {
       if ((style & TAL_SPACING) == 0)
@@ -326,13 +327,6 @@ tab_box (struct tab_table *t, int f_h, int f_v, int i_h, int i_v,
 {
   assert (t != NULL);
 
-  assert (x2 >= x1);
-  assert (y2 >= y1);
-  assert (x1 >= 0);
-  assert (y1 >= 0);
-  assert (x2 < t->nc);
-  assert (y2 < t->nr);
-
 #if GLOBAL_DEBUGGING
   if (x1 + t->col_ofs < 0 || x1 + t->col_ofs >= t->nc 
       || x2 + t->col_ofs < 0 || x2 + t->col_ofs >= t->nc
@@ -355,6 +349,13 @@ tab_box (struct tab_table *t, int f_h, int f_v, int i_h, int i_v,
   y1 += t->row_ofs;
   y2 += t->row_ofs;
 
+  assert (x2 >= x1);
+  assert (y2 >= y1);
+  assert (x1 >= 0);
+  assert (y1 >= 0);
+  assert (x2 < t->nc);
+  assert (y2 < t->nr);
+
   if (f_h != -1)
     {
       int x;
@@ -689,12 +690,12 @@ tab_joint_text (struct tab_table *table, int x1, int y1, int x2, int y2,
 
   assert (table != NULL && text != NULL);
 
-  assert (x1 >= 0);
-  assert (y1 >= 0);
+  assert (x1 + table->col_ofs >= 0);
+  assert (y1 + table->row_ofs >= 0);
   assert (y2 >= y1);
   assert (x2 >= x1);
-  assert (y2 < table->nr);
-  assert (x2 < table->nc);
+  assert (y2 + table->row_ofs < table->nr);
+  assert (x2 + table->col_ofs < table->nc);
 
 #if GLOBAL_DEBUGGING
   if (x1 + table->col_ofs < 0 || x1 + table->col_ofs >= table->nc