
I also see the problem when the tab happens to be not on the first line.
The problem is that in cases where line_length is queried from the console this may always happen, just set your console to 10 char long lines -> peng. It's the same problem with (first_column_width >= line_length)!
I would prefere to *not* throw in this situations, but only assert on them. I think it would be much better to leave a user with an ill-formatted option description than with only an error msg.
Asserting on run-time condition does not seems reasonable to me ;-) Maybe, the right solution is to silently ignore tabs which are not on the first line of a paragraph?
And probably set the pragraph indent to something like "tab_pos % (line_length - indent)" to prevent problems in the fromat code. The formatting is smashed anyway ...
Yes, formatting is smashed anyway, so ignoring the tabs on the seconds line is a viable option.
OK, so they are ignored, *but* i still think that asserting on it is vital because in the other case (= fixed length set by user or even worth, line length defaults to m_default_line_length cause user did *not* set a line length at all) it would mean that the formatting simply silently fails. Not very nice form a users point of view! Bertolt