golden hour
/usr/lib64/python2.7/Tools/scripts
⬆️ Go Up
Upload
File/Folder
Size
Actions
analyze_dxp.py
4.11 KB
Del
OK
analyze_dxp.pyc
4.64 KB
Del
OK
analyze_dxp.pyo
4.64 KB
Del
OK
byext.py
3.85 KB
Del
OK
byext.pyc
4.42 KB
Del
OK
byext.pyo
4.42 KB
Del
OK
byteyears.py
1.6 KB
Del
OK
byteyears.pyc
1.37 KB
Del
OK
byteyears.pyo
1.37 KB
Del
OK
checkappend.py
4.55 KB
Del
OK
checkappend.pyc
4.77 KB
Del
OK
checkappend.pyo
4.77 KB
Del
OK
checkpyc.py
1.96 KB
Del
OK
checkpyc.pyc
1.93 KB
Del
OK
checkpyc.pyo
1.93 KB
Del
OK
classfix.py
5.81 KB
Del
OK
classfix.pyc
4.09 KB
Del
OK
classfix.pyo
4.09 KB
Del
OK
cleanfuture.py
8.38 KB
Del
OK
cleanfuture.pyc
7.22 KB
Del
OK
cleanfuture.pyo
7.19 KB
Del
OK
combinerefs.py
4.28 KB
Del
OK
combinerefs.pyc
4.16 KB
Del
OK
combinerefs.pyo
4.12 KB
Del
OK
copytime.py
664 B
Del
OK
copytime.pyc
937 B
Del
OK
copytime.pyo
937 B
Del
OK
crlf.py
611 B
Del
OK
crlf.pyc
855 B
Del
OK
crlf.pyo
855 B
Del
OK
cvsfiles.py
1.75 KB
Del
OK
cvsfiles.pyc
2.11 KB
Del
OK
cvsfiles.pyo
2.11 KB
Del
OK
db2pickle.py
3.49 KB
Del
OK
db2pickle.pyc
3.42 KB
Del
OK
db2pickle.pyo
3.42 KB
Del
OK
diff.py
1.98 KB
Del
OK
diff.pyc
2.29 KB
Del
OK
diff.pyo
2.29 KB
Del
OK
dutree.py
1.58 KB
Del
OK
dutree.pyc
2.18 KB
Del
OK
dutree.pyo
2.18 KB
Del
OK
eptags.py
1.45 KB
Del
OK
eptags.pyc
1.83 KB
Del
OK
eptags.pyo
1.83 KB
Del
OK
find_recursionlimit.py
3.39 KB
Del
OK
find_recursionlimit.pyc
5.54 KB
Del
OK
find_recursionlimit.pyo
5.54 KB
Del
OK
finddiv.py
2.46 KB
Del
OK
finddiv.pyc
3.22 KB
Del
OK
finddiv.pyo
3.22 KB
Del
OK
findlinksto.py
1.04 KB
Del
OK
findlinksto.pyc
1.39 KB
Del
OK
findlinksto.pyo
1.39 KB
Del
OK
findnocoding.py
2.64 KB
Del
OK
findnocoding.pyc
3.03 KB
Del
OK
findnocoding.pyo
3.03 KB
Del
OK
fixcid.py
9.75 KB
Del
OK
fixcid.pyc
7.67 KB
Del
OK
fixcid.pyo
7.67 KB
Del
OK
fixdiv.py
13.57 KB
Del
OK
fixdiv.pyc
13.7 KB
Del
OK
fixdiv.pyo
13.62 KB
Del
OK
fixheader.py
1.16 KB
Del
OK
fixheader.pyc
1.44 KB
Del
OK
fixheader.pyo
1.44 KB
Del
OK
fixnotice.py
2.98 KB
Del
OK
fixnotice.pyc
3.42 KB
Del
OK
fixnotice.pyo
3.42 KB
Del
OK
fixps.py
894 B
Del
OK
fixps.pyc
969 B
Del
OK
fixps.pyo
969 B
Del
OK
ftpmirror.py
12.55 KB
Del
OK
ftpmirror.pyc
10.81 KB
Del
OK
ftpmirror.pyo
10.81 KB
Del
OK
google.py
520 B
Del
OK
google.pyc
792 B
Del
OK
google.pyo
792 B
Del
OK
gprof2html.py
2.12 KB
Del
OK
gprof2html.pyc
2.22 KB
Del
OK
gprof2html.pyo
2.22 KB
Del
OK
h2py.py
5.82 KB
Del
OK
h2py.pyc
4.3 KB
Del
OK
h2py.pyo
4.3 KB
Del
OK
hotshotmain.py
1.45 KB
Del
OK
hotshotmain.pyc
1.82 KB
Del
OK
hotshotmain.pyo
1.82 KB
Del
OK
ifdef.py
3.63 KB
Del
OK
ifdef.pyc
2.21 KB
Del
OK
ifdef.pyo
2.21 KB
Del
OK
lfcr.py
619 B
Del
OK
lfcr.pyc
880 B
Del
OK
lfcr.pyo
880 B
Del
OK
linktree.py
2.37 KB
Del
OK
linktree.pyc
1.98 KB
Del
OK
linktree.pyo
1.98 KB
Del
OK
lll.py
747 B
Del
OK
lll.pyc
947 B
Del
OK
lll.pyo
947 B
Del
OK
logmerge.py
5.45 KB
Del
OK
logmerge.pyc
4.96 KB
Del
OK
logmerge.pyo
4.96 KB
Del
OK
mailerdaemon.py
7.76 KB
Del
OK
mailerdaemon.pyc
7.19 KB
Del
OK
mailerdaemon.pyo
7.19 KB
Del
OK
md5sum.py
2.33 KB
Del
OK
md5sum.pyc
2.85 KB
Del
OK
md5sum.pyo
2.85 KB
Del
OK
methfix.py
5.33 KB
Del
OK
methfix.pyc
4.03 KB
Del
OK
methfix.pyo
4.03 KB
Del
OK
mkreal.py
1.59 KB
Del
OK
mkreal.pyc
1.93 KB
Del
OK
mkreal.pyo
1.93 KB
Del
OK
ndiff.py
3.72 KB
Del
OK
ndiff.pyc
3.77 KB
Del
OK
ndiff.pyo
3.77 KB
Del
OK
nm2def.py
2.39 KB
Del
OK
nm2def.pyc
2.89 KB
Del
OK
nm2def.pyo
2.89 KB
Del
OK
objgraph.py
5.88 KB
Del
OK
objgraph.pyc
4.82 KB
Del
OK
objgraph.pyo
4.82 KB
Del
OK
parseentities.py
1.68 KB
Del
OK
parseentities.pyc
2.03 KB
Del
OK
parseentities.pyo
2.03 KB
Del
OK
patchcheck.py
5.42 KB
Del
OK
patchcheck.pyc
7.24 KB
Del
OK
patchcheck.pyo
7.24 KB
Del
OK
pathfix.py
4.23 KB
Del
OK
pathfix.pyc
3.75 KB
Del
OK
pathfix.pyo
3.75 KB
Del
OK
pdeps.py
3.84 KB
Del
OK
pdeps.pyc
3.14 KB
Del
OK
pdeps.pyo
3.14 KB
Del
OK
pickle2db.py
3.85 KB
Del
OK
pickle2db.pyc
3.73 KB
Del
OK
pickle2db.pyo
3.73 KB
Del
OK
pindent.py
16.77 KB
Del
OK
pindent.pyc
11.3 KB
Del
OK
pindent.pyo
11.3 KB
Del
OK
ptags.py
1.2 KB
Del
OK
ptags.pyc
1.37 KB
Del
OK
ptags.pyo
1.37 KB
Del
OK
pysource.py
3.76 KB
Del
OK
pysource.pyc
3.92 KB
Del
OK
pysource.pyo
3.92 KB
Del
OK
redemo.py
5.66 KB
Del
OK
redemo.pyc
5.16 KB
Del
OK
redemo.pyo
5.16 KB
Del
OK
reindent-rst.py
278 B
Del
OK
reindent-rst.pyc
481 B
Del
OK
reindent-rst.pyo
481 B
Del
OK
reindent.py
10.58 KB
Del
OK
reindent.pyc
8.77 KB
Del
OK
reindent.pyo
8.74 KB
Del
OK
rgrep.py
1.46 KB
Del
OK
rgrep.pyc
1.84 KB
Del
OK
rgrep.pyo
1.84 KB
Del
OK
serve.py
1.12 KB
Del
OK
serve.pyc
1.56 KB
Del
OK
serve.pyo
1.56 KB
Del
OK
setup.py
421 B
Del
OK
setup.pyc
548 B
Del
OK
setup.pyo
548 B
Del
OK
suff.py
622 B
Del
OK
suff.pyc
904 B
Del
OK
suff.pyo
904 B
Del
OK
svneol.py
2.86 KB
Del
OK
svneol.pyc
2.83 KB
Del
OK
svneol.pyo
2.76 KB
Del
OK
texcheck.py
9.04 KB
Del
OK
texcheck.pyc
8.18 KB
Del
OK
texcheck.pyo
8.18 KB
Del
OK
texi2html.py
68.19 KB
Del
OK
texi2html.pyc
81.37 KB
Del
OK
texi2html.pyo
81.37 KB
Del
OK
treesync.py
5.65 KB
Del
OK
treesync.pyc
5.85 KB
Del
OK
treesync.pyo
5.85 KB
Del
OK
untabify.py
1.19 KB
Del
OK
untabify.pyc
1.55 KB
Del
OK
untabify.pyo
1.55 KB
Del
OK
which.py
1.59 KB
Del
OK
which.pyc
1.59 KB
Del
OK
which.pyo
1.59 KB
Del
OK
win_add2path.py
1.58 KB
Del
OK
win_add2path.pyc
2.02 KB
Del
OK
win_add2path.pyo
2.02 KB
Del
OK
xxci.py
2.73 KB
Del
OK
xxci.pyc
3.93 KB
Del
OK
xxci.pyo
3.93 KB
Del
OK
Edit: fixcid.py
#! /usr/bin/env python # Perform massive identifier substitution on C source files. # This actually tokenizes the files (to some extent) so it can # avoid making substitutions inside strings or comments. # Inside strings, substitutions are never made; inside comments, # it is a user option (off by default). # # The substitutions are read from one or more files whose lines, # when not empty, after stripping comments starting with #, # must contain exactly two words separated by whitespace: the # old identifier and its replacement. # # The option -r reverses the sense of the substitutions (this may be # useful to undo a particular substitution). # # If the old identifier is prefixed with a '*' (with no intervening # whitespace), then it will not be substituted inside comments. # # Command line arguments are files or directories to be processed. # Directories are searched recursively for files whose name looks # like a C file (ends in .h or .c). The special filename '-' means # operate in filter mode: read stdin, write stdout. # # Symbolic links are always ignored (except as explicit directory # arguments). # # The original files are kept as back-up with a "~" suffix. # # Changes made are reported to stdout in a diff-like format. # # NB: by changing only the function fixline() you can turn this # into a program for different changes to C source files; by # changing the function wanted() you can make a different selection of # files. import sys import re import os from stat import * import getopt err = sys.stderr.write 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') 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) # Change this regular expression to select a different set of files Wanted = '^[a-zA-Z0-9_]+\.[ch]$' def wanted(name): return re.match(Wanted, name) >= 0 def recursedown(dirname): dbg('recursedown(%r)\n' % (dirname,)) 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(%r)\n' % (filename,)) 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(repr(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 # 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 success return 0 # Tokenizing ANSI C (partly) Identifier = '\(struct \)?[a-zA-Z_][a-zA-Z0-9_]+' String = '"\([^\n\\"]\|\\\\.\)*"' Char = '\'\([^\n\\\']\|\\\\.\)*\'' CommentStart = '/\*' CommentEnd = '\*/' Hexnumber = '0[xX][0-9a-fA-F]*[uUlL]*' Octnumber = '0[0-7]*[uUlL]*' Decnumber = '[1-9][0-9]*[uUlL]*' Intnumber = Hexnumber + '\|' + Octnumber + '\|' + Decnumber Exponent = '[eE][-+]?[0-9]+' Pointfloat = '\([0-9]+\.[0-9]*\|\.[0-9]+\)\(' + Exponent + '\)?' Expfloat = '[0-9]+' + Exponent Floatnumber = Pointfloat + '\|' + Expfloat Number = Floatnumber + '\|' + Intnumber # Anything else is an operator -- don't list this explicitly because of '/*' OutsideComment = (Identifier, Number, String, Char, CommentStart) OutsideCommentPattern = '(' + '|'.join(OutsideComment) + ')' OutsideCommentProgram = re.compile(OutsideCommentPattern) InsideComment = (Identifier, Number, CommentEnd) InsideCommentPattern = '(' + '|'.join(InsideComment) + ')' InsideCommentProgram = re.compile(InsideCommentPattern) def initfixline(): global Program Program = OutsideCommentProgram def fixline(line): global Program ## print '-->', repr(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 Reverse = 0 def setreverse(): 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 = line.index('#') except ValueError: i = -1 # Happens to delete trailing \n words = line[:i].split() if not words: continue if len(words) == 3 and words[0] == 'struct': words[:2] = [words[0] + ' ' + words[1]] elif len(words) <> 2: err(substfile + '%s:%r: warning: bad line: %r' % (substfile, lineno, 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('%s:%r: warning: overriding: %r %r\n' % (substfile, lineno, key, value)) err('%s:%r: warning: previous: %r\n' % (substfile, lineno, Dict[key])) Dict[key] = value fp.close() if __name__ == '__main__': main()
Save