I can't quite remember writing this. I think I must have been trying to check out the process for submitting scripts for some reason, and grabbed something I had to hand. Apologies for the awful header, which explains very little. I hurriedly tried it out and to my surprise it seems to work.

The code comes from the Code Prettifier, of course, so if I extracted it properly, then I guess it works. I've updated the Prettifier since then but not this logic as it seems to work OK. Unfortunately, I haven't updated the version of the prettifier on http://extras.sqlservercentral.com/prettifier/default.aspx but I will as soon as I get a quiet week (nervous laugh)

Great, but it does a much simpler operation and certainly doesn't de-tabbify. In code, you are likely to get a mixture of spaces and tabs. The tab character actually is a control character that, in a mono-spaced font, means 'take me to the next TAB setting. It does not mean 'I'm eight spaces'(or whatever). TABS may be set to every eighth character position (or whatever) and so your code will work until the point that it finds a mixture of spaces, tabs and other control characters. There is a subtle difference as you'll find out when you try your routine on code that has both tabs and spaces in it. Why does code have both tabs and spaces? Hell, the coder uses both, and just whacks either the space-bar or the TAB key until columns line up. Programmers get irritated if their columns stop lining up, which is what will happen if they use your code.