(render_strip) Fix bug that sometimes caused joined text in joined
authorBen Pfaff <blp@gnu.org>
Wed, 4 Feb 2004 04:09:26 +0000 (04:09 +0000)
committerBen Pfaff <blp@gnu.org>
Wed, 4 Feb 2004 04:09:26 +0000 (04:09 +0000)
cells to be rendered outside box boundaries.

src/ChangeLog
src/tab.c

index b4e2d9542a2256726750a7e7de231cfc2e604a82..7b5fb3d71351dcf4c914f1fd01659e79d5f78653 100644 (file)
@@ -1,3 +1,7 @@
+Tue Feb  3 20:09:54 2004  Ben Pfaff  <blp@gnu.org>
+
+       * tab.c: (render_strip) Fix bug that sometimes caused joined text
+         in joined cells to be rendered outside box boundaries.
 
 Tue Feb  3 18:56:45 WST 2004 John Darrington <john@darrington.wattle.id.au>
 
index 3a8fef01d59e2574eed559a17a2f01d78ad71e84..3166740f2002645b4f3db15deb088a675ba077ad 100644 (file)
--- a/src/tab.c
+++ b/src/tab.c
@@ -1340,8 +1340,7 @@ render_strip (int x, int y, int r, int c1, int c2, int r1 unused, int r2)
                    {
                      j->hit = tab_hit;
 
-                     if (j->x1 == c / 2 && j->y1 == r / 2
-                         && j->x2 <= c2 && j->y2 <= r2)
+                     if (j->x1 == c / 2 && j->y1 == r / 2)
                        {
                          struct outp_text text;
 
@@ -1355,15 +1354,15 @@ render_strip (int x, int y, int r, int c1, int c2, int r1 unused, int r2)
                            int c;
 
                            for (c = j->x1, text.h = -t->wrv[j->x2];
-                                c < j->x2; c++)
-                             text.h += t->w[c] + t->wrv[c + 1];
+                                c < j->x2 && c < c2 / 2; c++) 
+                                text.h += t->w[c] + t->wrv[c + 1]; 
                          }
                          
                          {
                            int r;
 
                            for (r = j->y1, text.v = -t->hrh[j->y2];
-                                r < j->y2; r++)
+                                r < j->y2 && r < r2 / 2; r++)
                              text.v += t->h[r] + t->hrh[r + 1];
                          }
                          d->class->text_draw (d, &text);