diff options
author | Tim Peters <tim.peters@gmail.com> | 2001-01-17 08:48:39 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2001-01-17 08:48:39 (GMT) |
commit | 70c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7 (patch) | |
tree | cf47b67db3753288cfd9fa2adc45e7c5cd2f8741 /Tools/scripts/fixcid.py | |
parent | a88854059309667092000da55d4d5a5804267e9f (diff) | |
download | cpython-70c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7.zip cpython-70c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7.tar.gz cpython-70c4378dbcfdcbeef6fb3aa348f32ed862fe8eb7.tar.bz2 |
Whitespace normalization.
Diffstat (limited to 'Tools/scripts/fixcid.py')
-rwxr-xr-x | Tools/scripts/fixcid.py | 426 |
1 files changed, 213 insertions, 213 deletions
diff --git a/Tools/scripts/fixcid.py b/Tools/scripts/fixcid.py index cf0ec16..836ceed 100755 --- a/Tools/scripts/fixcid.py +++ b/Tools/scripts/fixcid.py @@ -46,151 +46,151 @@ dbg = err rep = sys.stdout.write def usage(): - progname = sys.argv[0] - err('Usage: ' + progname + - ' [-c] [-r] [-s file] ... file-or-directory ...\n') - err('\n') - err('-c : substitute inside comments\n') - err('-r : reverse direction for following -s options\n') - err('-s substfile : add a file of substitutions\n') - err('\n') - err('Each non-empty non-comment line in a substitution file must\n') - err('contain exactly two words: an identifier and its replacement.\n') - err('Comments start with a # character and end at end of line.\n') - err('If an identifier is preceded with a *, it is not substituted\n') - err('inside a comment even when -c is specified.\n') + progname = sys.argv[0] + err('Usage: ' + progname + + ' [-c] [-r] [-s file] ... file-or-directory ...\n') + err('\n') + err('-c : substitute inside comments\n') + err('-r : reverse direction for following -s options\n') + err('-s substfile : add a file of substitutions\n') + err('\n') + err('Each non-empty non-comment line in a substitution file must\n') + err('contain exactly two words: an identifier and its replacement.\n') + err('Comments start with a # character and end at end of line.\n') + err('If an identifier is preceded with a *, it is not substituted\n') + err('inside a comment even when -c is specified.\n') def main(): - try: - opts, args = getopt.getopt(sys.argv[1:], 'crs:') - except getopt.error, msg: - err('Options error: ' + str(msg) + '\n') - usage() - sys.exit(2) - bad = 0 - if not args: # No arguments - usage() - sys.exit(2) - for opt, arg in opts: - if opt == '-c': - setdocomments() - if opt == '-r': - setreverse() - if opt == '-s': - addsubst(arg) - for arg in args: - if os.path.isdir(arg): - if recursedown(arg): bad = 1 - elif os.path.islink(arg): - err(arg + ': will not process symbolic links\n') - bad = 1 - else: - if fix(arg): bad = 1 - sys.exit(bad) + try: + opts, args = getopt.getopt(sys.argv[1:], 'crs:') + except getopt.error, msg: + err('Options error: ' + str(msg) + '\n') + usage() + sys.exit(2) + bad = 0 + if not args: # No arguments + usage() + sys.exit(2) + for opt, arg in opts: + if opt == '-c': + setdocomments() + if opt == '-r': + setreverse() + if opt == '-s': + addsubst(arg) + for arg in args: + if os.path.isdir(arg): + if recursedown(arg): bad = 1 + elif os.path.islink(arg): + err(arg + ': will not process symbolic links\n') + bad = 1 + else: + if fix(arg): bad = 1 + sys.exit(bad) # Change this regular expression to select a different set of files Wanted = '^[a-zA-Z0-9_]+\.[ch]$' def wanted(name): - return regex.match(Wanted, name) >= 0 + return regex.match(Wanted, name) >= 0 def recursedown(dirname): - dbg('recursedown(' + `dirname` + ')\n') - bad = 0 - try: - names = os.listdir(dirname) - except os.error, msg: - err(dirname + ': cannot list directory: ' + str(msg) + '\n') - return 1 - names.sort() - subdirs = [] - for name in names: - if name in (os.curdir, os.pardir): continue - fullname = os.path.join(dirname, name) - if os.path.islink(fullname): pass - elif os.path.isdir(fullname): - subdirs.append(fullname) - elif wanted(name): - if fix(fullname): bad = 1 - for fullname in subdirs: - if recursedown(fullname): bad = 1 - return bad + dbg('recursedown(' + `dirname` + ')\n') + bad = 0 + try: + names = os.listdir(dirname) + except os.error, msg: + err(dirname + ': cannot list directory: ' + str(msg) + '\n') + return 1 + names.sort() + subdirs = [] + for name in names: + if name in (os.curdir, os.pardir): continue + fullname = os.path.join(dirname, name) + if os.path.islink(fullname): pass + elif os.path.isdir(fullname): + subdirs.append(fullname) + elif wanted(name): + if fix(fullname): bad = 1 + for fullname in subdirs: + if recursedown(fullname): bad = 1 + return bad def fix(filename): -## dbg('fix(' + `filename` + ')\n') - if filename == '-': - # Filter mode - f = sys.stdin - g = sys.stdout - else: - # File replacement mode - try: - f = open(filename, 'r') - except IOError, msg: - err(filename + ': cannot open: ' + str(msg) + '\n') - return 1 - head, tail = os.path.split(filename) - tempname = os.path.join(head, '@' + tail) - g = None - # If we find a match, we rewind the file and start over but - # now copy everything to a temp file. - lineno = 0 - initfixline() - while 1: - line = f.readline() - if not line: break - lineno = lineno + 1 - while line[-2:] == '\\\n': - nextline = f.readline() - if not nextline: break - line = line + nextline - lineno = lineno + 1 - newline = fixline(line) - if newline != line: - if g is None: - try: - g = open(tempname, 'w') - except IOError, msg: - f.close() - err(tempname+': cannot create: '+ - str(msg)+'\n') - return 1 - f.seek(0) - lineno = 0 - initfixline() - rep(filename + ':\n') - continue # restart from the beginning - rep(`lineno` + '\n') - rep('< ' + line) - rep('> ' + newline) - if g is not None: - g.write(newline) +## dbg('fix(' + `filename` + ')\n') + if filename == '-': + # Filter mode + f = sys.stdin + g = sys.stdout + else: + # File replacement mode + try: + f = open(filename, 'r') + except IOError, msg: + err(filename + ': cannot open: ' + str(msg) + '\n') + return 1 + head, tail = os.path.split(filename) + tempname = os.path.join(head, '@' + tail) + g = None + # If we find a match, we rewind the file and start over but + # now copy everything to a temp file. + lineno = 0 + initfixline() + while 1: + line = f.readline() + if not line: break + lineno = lineno + 1 + while line[-2:] == '\\\n': + nextline = f.readline() + if not nextline: break + line = line + nextline + lineno = lineno + 1 + newline = fixline(line) + if newline != line: + if g is None: + try: + g = open(tempname, 'w') + except IOError, msg: + f.close() + err(tempname+': cannot create: '+ + str(msg)+'\n') + return 1 + f.seek(0) + lineno = 0 + initfixline() + rep(filename + ':\n') + continue # restart from the beginning + rep(`lineno` + '\n') + rep('< ' + line) + rep('> ' + newline) + if g is not None: + g.write(newline) - # End of file - if filename == '-': return 0 # Done in filter mode - f.close() - if not g: return 0 # No changes + # End of file + if filename == '-': return 0 # Done in filter mode + f.close() + if not g: return 0 # No changes - # Finishing touch -- move files + # Finishing touch -- move files - # First copy the file's mode to the temp file - try: - statbuf = os.stat(filename) - os.chmod(tempname, statbuf[ST_MODE] & 07777) - except os.error, msg: - err(tempname + ': warning: chmod failed (' + str(msg) + ')\n') - # Then make a backup of the original file as filename~ - try: - os.rename(filename, filename + '~') - except os.error, msg: - err(filename + ': warning: backup failed (' + str(msg) + ')\n') - # Now move the temp file to the original file - try: - os.rename(tempname, filename) - except os.error, msg: - err(filename + ': rename failed (' + str(msg) + ')\n') - return 1 - # Return succes - return 0 + # First copy the file's mode to the temp file + try: + statbuf = os.stat(filename) + os.chmod(tempname, statbuf[ST_MODE] & 07777) + except os.error, msg: + err(tempname + ': warning: chmod failed (' + str(msg) + ')\n') + # Then make a backup of the original file as filename~ + try: + os.rename(filename, filename + '~') + except os.error, msg: + err(filename + ': warning: backup failed (' + str(msg) + ')\n') + # Now move the temp file to the original file + try: + os.rename(tempname, filename) + except os.error, msg: + err(filename + ': rename failed (' + str(msg) + ')\n') + return 1 + # Return succes + return 0 # Tokenizing ANSI C (partly) @@ -221,98 +221,98 @@ InsideCommentPattern = '\(' + string.joinfields(InsideComment, '\|') + '\)' InsideCommentProgram = regex.compile(InsideCommentPattern) def initfixline(): - global Program - Program = OutsideCommentProgram + global Program + Program = OutsideCommentProgram def fixline(line): - global Program -## print '-->', `line` - i = 0 - while i < len(line): - i = Program.search(line, i) - if i < 0: break - found = Program.group(0) -## if Program is InsideCommentProgram: print '...', -## else: print ' ', -## print found - if len(found) == 2: - if found == '/*': - Program = InsideCommentProgram - elif found == '*/': - Program = OutsideCommentProgram - n = len(found) - if Dict.has_key(found): - subst = Dict[found] - if Program is InsideCommentProgram: - if not Docomments: - print 'Found in comment:', found - i = i + n - continue - if NotInComment.has_key(found): -## print 'Ignored in comment:', -## print found, '-->', subst -## print 'Line:', line, - subst = found -## else: -## print 'Substituting in comment:', -## print found, '-->', subst -## print 'Line:', line, - line = line[:i] + subst + line[i+n:] - n = len(subst) - i = i + n - return line + global Program +## print '-->', `line` + i = 0 + while i < len(line): + i = Program.search(line, i) + if i < 0: break + found = Program.group(0) +## if Program is InsideCommentProgram: print '...', +## else: print ' ', +## print found + if len(found) == 2: + if found == '/*': + Program = InsideCommentProgram + elif found == '*/': + Program = OutsideCommentProgram + n = len(found) + if Dict.has_key(found): + subst = Dict[found] + if Program is InsideCommentProgram: + if not Docomments: + print 'Found in comment:', found + i = i + n + continue + if NotInComment.has_key(found): +## print 'Ignored in comment:', +## print found, '-->', subst +## print 'Line:', line, + subst = found +## else: +## print 'Substituting in comment:', +## print found, '-->', subst +## print 'Line:', line, + line = line[:i] + subst + line[i+n:] + n = len(subst) + i = i + n + return line Docomments = 0 def setdocomments(): - global Docomments - Docomments = 1 + global Docomments + Docomments = 1 Reverse = 0 def setreverse(): - global Reverse - Reverse = (not Reverse) + global Reverse + Reverse = (not Reverse) Dict = {} NotInComment = {} def addsubst(substfile): - try: - fp = open(substfile, 'r') - except IOError, msg: - err(substfile + ': cannot read substfile: ' + str(msg) + '\n') - sys.exit(1) - lineno = 0 - while 1: - line = fp.readline() - if not line: break - lineno = lineno + 1 - try: - i = string.index(line, '#') - except string.index_error: - i = -1 # Happens to delete trailing \n - words = string.split(line[:i]) - if not words: continue - if len(words) == 3 and words[0] == 'struct': - words[:2] = [words[0] + ' ' + words[1]] - elif len(words) <> 2: - err(substfile + ':' + `lineno` + - ': warning: bad line: ' + line) - continue - if Reverse: - [value, key] = words - else: - [key, value] = words - if value[0] == '*': - value = value[1:] - if key[0] == '*': - key = key[1:] - NotInComment[key] = value - if Dict.has_key(key): - err(substfile + ':' + `lineno` + - ': warning: overriding: ' + - key + ' ' + value + '\n') - err(substfile + ':' + `lineno` + - ': warning: previous: ' + Dict[key] + '\n') - Dict[key] = value - fp.close() + try: + fp = open(substfile, 'r') + except IOError, msg: + err(substfile + ': cannot read substfile: ' + str(msg) + '\n') + sys.exit(1) + lineno = 0 + while 1: + line = fp.readline() + if not line: break + lineno = lineno + 1 + try: + i = string.index(line, '#') + except string.index_error: + i = -1 # Happens to delete trailing \n + words = string.split(line[:i]) + if not words: continue + if len(words) == 3 and words[0] == 'struct': + words[:2] = [words[0] + ' ' + words[1]] + elif len(words) <> 2: + err(substfile + ':' + `lineno` + + ': warning: bad line: ' + line) + continue + if Reverse: + [value, key] = words + else: + [key, value] = words + if value[0] == '*': + value = value[1:] + if key[0] == '*': + key = key[1:] + NotInComment[key] = value + if Dict.has_key(key): + err(substfile + ':' + `lineno` + + ': warning: overriding: ' + + key + ' ' + value + '\n') + err(substfile + ':' + `lineno` + + ': warning: previous: ' + Dict[key] + '\n') + Dict[key] = value + fp.close() main() |