tbl's calculation for how many columns it can handle is wrong. sizeof(nregs) = nelem(nregs)*sizeof(char*). it appears that tbl is assuming *2-byte pointers*!
huzzah! - erik /n/dump/2013/0104/sys/src/cmd/tbl/tr.c:20,26 - tr.c:20,26 char * reg(int col, int place) { - if (sizeof(nregs) < 2 * 3 * qcol) + if(qcol*place+col >= nelem(nregs)-1) error("Too many columns for registers"); return (nregs[qcol*place+col]); }