}
}
+/* Check if the specified row contain at least one data item.
+ 1: has data item
+ 0: no data item
+ */
+static int
+row_has_data(TABLEROW *currow) {
+ TABLEITEM *curfield;
+ curfield = currow->first;
+ while (curfield) {
+ if (curfield->align != '_') return 1;
+ curfield = curfield->next;
+ }
+ return 0;
+}
+
char itemreset[20]="\\fR\\s0";
static char *
} while (curfield && curfield->align=='S');
}
if (c[1]=='\n') {
- currow=next_row(currow);
+ do {
+ currow=next_row(currow);
+ } while (!row_has_data(currow));
curfield=currow->first;
}
c=c+2;
} else
if (g) free(g);
if (c[-1]=='\n') {
- currow=next_row(currow);
+ do {
+ currow=next_row(currow);
+ } while (!row_has_data(currow));
curfield=currow->first;
}
} else if (*c=='.' && c[1]=='T' && c[2]=='&' && c[-1]=='\n') {
hr->prev=currow;
currow->next=hr;
currow=hr;
- next_row(currow);
+ do {
+ currow=next_row(currow);
+ } while (!row_has_data(currow));
curfield=currow->first;
} else if (*c=='.' && c[1]=='T' && c[2]=='E' && c[-1]=='\n') {
finished=1;
if (i) *c=itemsep;
c=h;
if (c[-1]=='\n') {
- currow=next_row(currow);
+ do {
+ currow=next_row(currow);
+ } while (!row_has_data(currow));
curfield=currow->first;
}
}