Ok, I'm (PerryLorier) going to start a ReligiousWar.
Tabs should be 8 charactors and no correspondance shall be entered into.
Why? Because while 8 charactors is stupidly wide, at least it's a standard. There is absolutely nothing worse than opening a file and having it look like it was formatted by a two year old chimpanzee on crack.
Except that
if I "convert" a diff, then it's not going to apply as a proper patch anymore. If I expandtabs on a Makefile then suddenly it's got a "missing delimiter". If I expandtabs on sendmail.cf my mail is no longer delivered.
Then backspace for unindent doesn't work, it removes one space, not one tab.
Then your logic is too complicated, go break it into another function to simplify it.
The correct answer is to use 8 charactor tabs. Sure they are wider than they need to be, but they work. Anyone who tries to tell you that tabs should be whatever else they feel like (2? 4? 5? 6?) needs to be shot. Especially if they ever think that their code is going to be viewed by anyone else, so unless you are writing a proprietary program and never planning on giving the code away or ever showing it to anyone, DON'T CHANGE THE TAB SIZE.
One page links to TabStops: