#!/usr/bin/ruby
# ソースコード中の TAB を８文字の空白に置換するスクリプト
# $Id: replaceTab.rb 1804 2010-04-25 17:17:33Z satofumi $

require 'find'
require 'fileutils.rb'

$replaced = false

# TAB の置換操作
def replaceTab(fname)

  # ファイルの読み出し
  lines = File.readlines(fname).join

  if lines.match("\t") == nil
    # 置換処理は不要
    return
  end

  # 置換処理
  lines.gsub!("\t", '        ')

  # オリジナルファイルの退避
  FileUtils.copy(fname, fname + '.orig')
  File.open(fname, 'w') { |io|
    io.write(lines)
  }
  print fname + ' '
  $replaced = true
end

# .cpp .c .h .lua の探索
Find.find('./') { |fname|
  ext = File.extname(fname)
  if ! (ext == '.h' || ext == '.cpp' || ext == '.c' || ext == '.lua')
    next
  end
  replaceTab(fname)
}

if $replaced
  print "\n"
end
