Let single blanks on a tabstop boundary stay blanks, and not tabs.
Properly deal with when to place a tab (and fixes a potential divide by zero):
if (n % TABSIZ == 0) instead of if (n % tabcolumn == 0)
The program works with input files that either contain or don't contain tabs.