Yes, it will break because for a normal character-delimited table the splitter doesn't know anything about the columns that were requested, so it returns all columns.  This is different from the fixed width splitter which *does* know in advance which columns are desired and so only returns the included ones.  In other words, `len(cols)` is the number of cols the user wants, `self.n_data_cols` is the number of cols the splitter should return.  Those don't need to match.

I'm not claiming the design is as simple as it could be...  :smile:  I probably could have had the fixed width splitter always return all the columns for consistency, at the expense of performance.