python-2.5.2/win32/Tools/Scripts/untabify.py
changeset 0 ae805ac0140d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/python-2.5.2/win32/Tools/Scripts/untabify.py	Fri Apr 03 17:19:34 2009 +0100
@@ -0,0 +1,52 @@
+#! /usr/bin/env python
+
+"Replace tabs with spaces in argument files.  Print names of changed files."
+
+import os
+import sys
+import getopt
+
+def main():
+    tabsize = 8
+    try:
+        opts, args = getopt.getopt(sys.argv[1:], "t:")
+        if not args:
+            raise getopt.error, "At least one file argument required"
+    except getopt.error, msg:
+        print msg
+        print "usage:", sys.argv[0], "[-t tabwidth] file ..."
+        return
+    for optname, optvalue in opts:
+        if optname == '-t':
+            tabsize = int(optvalue)
+
+    for filename in args:
+        process(filename, tabsize)
+
+def process(filename, tabsize):
+    try:
+        f = open(filename)
+        text = f.read()
+        f.close()
+    except IOError, msg:
+        print "%r: I/O error: %s" % (filename, msg)
+        return
+    newtext = text.expandtabs(tabsize)
+    if newtext == text:
+        return
+    backup = filename + "~"
+    try:
+        os.unlink(backup)
+    except os.error:
+        pass
+    try:
+        os.rename(filename, backup)
+    except os.error:
+        pass
+    f = open(filename, "w")
+    f.write(newtext)
+    f.close()
+    print filename
+
+if __name__ == '__main__':
+    main()