fix: pad short rows in SetRows to the number of columns

SetRows stored rows with fewer cells than the header unchanged, so short
rows rendered fmt's %!s(MISSING) verb and an empty row combined with a
first-column formatter panicked on vals[0]. Pad short rows to the column
count, mirroring AddRow's documented behavior of rendering missing cells
as empty.
This commit is contained in:
dualfroz committed 2026-09-10 16:42:05 +02:00
1 parent 46b76d9bbe
commit b384e08abf
2 files changed
+32 -2

No files matched your search

+5 -2
View File
@@ -238,10 +238,13 @@ func (t *table) SetRows(rows [][]string) Table {
headerLength := len(t.header)
for _, row := range rows {
if len(row) > headerLength {
if len(row) >= headerLength {
t.rows = append(t.rows, row[:headerLength])
} else {
t.rows = append(t.rows, row)
// pad short rows so every column is rendered, matching AddRow
padded := make([]string, headerLength)
copy(padded, row)
t.rows = append(t.rows, padded)
}
}