ハードタブ⇔ソフトタブ変換を行うコマンドラインツールです。
このツールは対象のテキストファイルがSJISであることが前提です。(インデントのみを処理する場合は EUC や UTF-8 でも問題ないでしょうけど。)
どっちがどっちだっけ?って言う人も多いでしょうし...てか、自分がすぐにどっちがどっちか忘れちゃうんでメモしておきます。
この十数年、私はずっとハードタブ派でしたが、ハードタブの利点であるハズの自分の好きなタブ幅でテキストファイルを見れるという点が自分のスタイルでは全然活きてない(所定のタブ幅以外では表示が崩れる)ので、「やっぱソフトタブのほうがいんじゃね?」と思い直し改宗しました。 このタイミングでの改宗と言うのには特別なきっかけがあったわけではないのですが、Windows のメモ帳でソースファイルを見ることがある都度タブ幅設定があっていないが為に表示が崩れるのを何度も見ているうちに自分の中で改宗への動機が蓄積されていき、此度の改宗へと至りました。
最初に一度、お手持ちのコンパイラで tabform.cpp をコンパイルして tabform コマンドを作成してください。
i を指定するとインデントのみを変換の対象にします。
最近、ハードタブ派からソフトタブ派に改宗したので必要に迫られてこのツールを作ってみました。この手のモノをC++で作ることは微妙に間違っている気がしないでもないですが、自分はC++馬鹿なんでヨシとしておきます。
公開にあたり少しはリファクタリングもしましたけど、元々目的が果たせればそれでいいや的なノリで作ってるんでかなりいい加減な作りですし、その目的も果たせているのでなにか問題でもない限り今後改良することもないと思います。
2007-07-19 ソフトタブからハードダブへの変換を行った際に非インデント部での変換が不正確になる(タブ文字がひとつ欠ける)ケースがあったので修正。