1998-09-14 15:43:38 +00:00
|
|
|
#! /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:
|
2007-08-22 23:05:06 +00:00
|
|
|
raise getopt.error("At least one file argument required")
|
2007-01-10 16:19:56 +00:00
|
|
|
except getopt.error as msg:
|
2007-08-03 17:06:41 +00:00
|
|
|
print(msg)
|
|
|
|
|
print("usage:", sys.argv[0], "[-t tabwidth] file ...")
|
1998-09-14 15:43:38 +00:00
|
|
|
return
|
1998-10-20 15:33:33 +00:00
|
|
|
for optname, optvalue in opts:
|
|
|
|
|
if optname == '-t':
|
|
|
|
|
tabsize = int(optvalue)
|
1998-09-14 15:43:38 +00:00
|
|
|
|
2003-05-13 18:14:25 +00:00
|
|
|
for filename in args:
|
|
|
|
|
process(filename, tabsize)
|
1998-09-14 15:43:38 +00:00
|
|
|
|
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
........
r85728 | georg.brandl | 2010-10-19 20:54:25 +0200 (Di, 19 Okt 2010) | 1 line
#10092: Properly reset locale in Locale*Calendar classes. The context manager was buggy because setlocale() returns the *new* locale, not the old. Also add a test for this.
........
r85731 | georg.brandl | 2010-10-19 23:07:16 +0200 (Di, 19 Okt 2010) | 1 line
Be consistent in the spelling of thread-safe(ty).
........
r85735 | georg.brandl | 2010-10-20 08:50:19 +0200 (Mi, 20 Okt 2010) | 1 line
Fix r85728: use "" to mean the system default locale, which should work on more systems.
........
r85766 | georg.brandl | 2010-10-21 09:40:03 +0200 (Do, 21 Okt 2010) | 1 line
#10159: sort completion matches before comparing to dir() result.
........
r85767 | georg.brandl | 2010-10-21 14:49:28 +0200 (Do, 21 Okt 2010) | 1 line
#9095, #8912, #8999: add support in patchcheck for Mercurial checkouts, C file reindenting, and docs whitespace fixing.
........
r85768 | georg.brandl | 2010-10-21 14:59:14 +0200 (Do, 21 Okt 2010) | 1 line
#9919: fix off-by-one error in lineno command in Misc/gdbinit; also add newline to its output.
........
r85769 | georg.brandl | 2010-10-21 15:01:23 +0200 (Do, 21 Okt 2010) | 1 line
Fix missing import.
........
r85770 | georg.brandl | 2010-10-21 15:29:10 +0200 (Do, 21 Okt 2010) | 1 line
#3077: fix h2py substitution of character literals.
........
r85771 | georg.brandl | 2010-10-21 15:34:51 +0200 (Do, 21 Okt 2010) | 1 line
#1203650: allow larger list of files in windows makefile for freeze.
........
r85773 | georg.brandl | 2010-10-21 15:45:52 +0200 (Do, 21 Okt 2010) | 1 line
#4829: better error message for invalid file mode
........
r85777 | georg.brandl | 2010-10-21 17:44:51 +0200 (Do, 21 Okt 2010) | 1 line
Add .hgeol file for the Mercurial EOL extension.
........
2010-11-26 08:52:36 +00:00
|
|
|
def process(filename, tabsize, verbose=True):
|
1998-09-14 15:43:38 +00:00
|
|
|
try:
|
2003-05-13 18:14:25 +00:00
|
|
|
f = open(filename)
|
1998-09-14 15:43:38 +00:00
|
|
|
text = f.read()
|
|
|
|
|
f.close()
|
2007-01-10 16:19:56 +00:00
|
|
|
except IOError as msg:
|
2007-08-03 17:06:41 +00:00
|
|
|
print("%r: I/O error: %s" % (filename, msg))
|
1998-09-14 15:43:38 +00:00
|
|
|
return
|
2002-09-11 20:36:02 +00:00
|
|
|
newtext = text.expandtabs(tabsize)
|
1998-09-14 15:43:38 +00:00
|
|
|
if newtext == text:
|
|
|
|
|
return
|
2003-05-13 18:14:25 +00:00
|
|
|
backup = filename + "~"
|
1998-09-14 15:43:38 +00:00
|
|
|
try:
|
|
|
|
|
os.unlink(backup)
|
|
|
|
|
except os.error:
|
|
|
|
|
pass
|
|
|
|
|
try:
|
2003-05-13 18:14:25 +00:00
|
|
|
os.rename(filename, backup)
|
1998-09-14 15:43:38 +00:00
|
|
|
except os.error:
|
|
|
|
|
pass
|
2003-05-13 18:14:25 +00:00
|
|
|
f = open(filename, "w")
|
1998-09-14 15:43:38 +00:00
|
|
|
f.write(newtext)
|
|
|
|
|
f.close()
|
Merged revisions 85728,85731,85735,85766-85771,85773,85777 via svnmerge from
svn+ssh://svn.python.org/python/branches/py3k
........
r85728 | georg.brandl | 2010-10-19 20:54:25 +0200 (Di, 19 Okt 2010) | 1 line
#10092: Properly reset locale in Locale*Calendar classes. The context manager was buggy because setlocale() returns the *new* locale, not the old. Also add a test for this.
........
r85731 | georg.brandl | 2010-10-19 23:07:16 +0200 (Di, 19 Okt 2010) | 1 line
Be consistent in the spelling of thread-safe(ty).
........
r85735 | georg.brandl | 2010-10-20 08:50:19 +0200 (Mi, 20 Okt 2010) | 1 line
Fix r85728: use "" to mean the system default locale, which should work on more systems.
........
r85766 | georg.brandl | 2010-10-21 09:40:03 +0200 (Do, 21 Okt 2010) | 1 line
#10159: sort completion matches before comparing to dir() result.
........
r85767 | georg.brandl | 2010-10-21 14:49:28 +0200 (Do, 21 Okt 2010) | 1 line
#9095, #8912, #8999: add support in patchcheck for Mercurial checkouts, C file reindenting, and docs whitespace fixing.
........
r85768 | georg.brandl | 2010-10-21 14:59:14 +0200 (Do, 21 Okt 2010) | 1 line
#9919: fix off-by-one error in lineno command in Misc/gdbinit; also add newline to its output.
........
r85769 | georg.brandl | 2010-10-21 15:01:23 +0200 (Do, 21 Okt 2010) | 1 line
Fix missing import.
........
r85770 | georg.brandl | 2010-10-21 15:29:10 +0200 (Do, 21 Okt 2010) | 1 line
#3077: fix h2py substitution of character literals.
........
r85771 | georg.brandl | 2010-10-21 15:34:51 +0200 (Do, 21 Okt 2010) | 1 line
#1203650: allow larger list of files in windows makefile for freeze.
........
r85773 | georg.brandl | 2010-10-21 15:45:52 +0200 (Do, 21 Okt 2010) | 1 line
#4829: better error message for invalid file mode
........
r85777 | georg.brandl | 2010-10-21 17:44:51 +0200 (Do, 21 Okt 2010) | 1 line
Add .hgeol file for the Mercurial EOL extension.
........
2010-11-26 08:52:36 +00:00
|
|
|
if verbose:
|
|
|
|
|
print(filename)
|
1998-09-14 15:43:38 +00:00
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
|
main()
|