Linux server.edchosting.com 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
LiteSpeed
Server IP : 75.98.162.185 & Your IP : 216.73.216.1
Domains :
Cant Read [ /etc/named.conf ]
User : goons4good
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
lib64 /
python2.7 /
Tools /
scripts /
Delete
Unzip
Name
Size
Permission
Date
Action
analyze_dxp.py
4.11
KB
-rwxr-xr-x
2026-02-23 12:35
analyze_dxp.pyc
4.64
KB
-rw-r--r--
2026-02-23 12:36
analyze_dxp.pyo
4.64
KB
-rw-r--r--
2026-02-23 12:36
byext.py
3.85
KB
-rwxr-xr-x
2026-02-23 12:35
byext.pyc
4.42
KB
-rw-r--r--
2026-02-23 12:36
byext.pyo
4.42
KB
-rw-r--r--
2026-02-23 12:36
byteyears.py
1.6
KB
-rwxr-xr-x
2026-02-23 12:35
byteyears.pyc
1.37
KB
-rw-r--r--
2026-02-23 12:36
byteyears.pyo
1.37
KB
-rw-r--r--
2026-02-23 12:36
checkappend.py
4.55
KB
-rwxr-xr-x
2026-02-23 12:35
checkappend.pyc
4.77
KB
-rw-r--r--
2026-02-23 12:36
checkappend.pyo
4.77
KB
-rw-r--r--
2026-02-23 12:36
checkpyc.py
1.96
KB
-rwxr-xr-x
2026-02-23 12:35
checkpyc.pyc
1.93
KB
-rw-r--r--
2026-02-23 12:36
checkpyc.pyo
1.93
KB
-rw-r--r--
2026-02-23 12:36
classfix.py
5.81
KB
-rwxr-xr-x
2026-02-23 12:35
classfix.pyc
4.09
KB
-rw-r--r--
2026-02-23 12:36
classfix.pyo
4.09
KB
-rw-r--r--
2026-02-23 12:36
cleanfuture.py
8.38
KB
-rwxr-xr-x
2026-02-23 12:35
cleanfuture.pyc
7.22
KB
-rw-r--r--
2026-02-23 12:36
cleanfuture.pyo
7.19
KB
-rw-r--r--
2026-02-23 12:36
combinerefs.py
4.28
KB
-rwxr-xr-x
2026-02-23 12:35
combinerefs.pyc
4.16
KB
-rw-r--r--
2026-02-23 12:36
combinerefs.pyo
4.12
KB
-rw-r--r--
2026-02-23 12:36
copytime.py
664
B
-rwxr-xr-x
2026-02-23 12:35
copytime.pyc
937
B
-rw-r--r--
2026-02-23 12:36
copytime.pyo
937
B
-rw-r--r--
2026-02-23 12:36
crlf.py
611
B
-rwxr-xr-x
2026-02-23 12:35
crlf.pyc
855
B
-rw-r--r--
2026-02-23 12:36
crlf.pyo
855
B
-rw-r--r--
2026-02-23 12:36
cvsfiles.py
1.75
KB
-rwxr-xr-x
2026-02-23 12:35
cvsfiles.pyc
2.11
KB
-rw-r--r--
2026-02-23 12:36
cvsfiles.pyo
2.11
KB
-rw-r--r--
2026-02-23 12:36
db2pickle.py
3.49
KB
-rwxr-xr-x
2026-02-23 12:35
db2pickle.pyc
3.42
KB
-rw-r--r--
2026-02-23 12:36
db2pickle.pyo
3.42
KB
-rw-r--r--
2026-02-23 12:36
diff.py
1.98
KB
-rwxr-xr-x
2026-02-23 12:35
diff.pyc
2.29
KB
-rw-r--r--
2026-02-23 12:36
diff.pyo
2.29
KB
-rw-r--r--
2026-02-23 12:36
dutree.py
1.58
KB
-rwxr-xr-x
2026-02-23 12:35
dutree.pyc
2.18
KB
-rw-r--r--
2026-02-23 12:36
dutree.pyo
2.18
KB
-rw-r--r--
2026-02-23 12:36
eptags.py
1.45
KB
-rwxr-xr-x
2026-02-23 12:35
eptags.pyc
1.83
KB
-rw-r--r--
2026-02-23 12:36
eptags.pyo
1.83
KB
-rw-r--r--
2026-02-23 12:36
find_recursionlimit.py
3.39
KB
-rwxr-xr-x
2026-02-23 12:35
find_recursionlimit.pyc
5.54
KB
-rw-r--r--
2026-02-23 12:36
find_recursionlimit.pyo
5.54
KB
-rw-r--r--
2026-02-23 12:36
finddiv.py
2.46
KB
-rwxr-xr-x
2026-02-23 12:35
finddiv.pyc
3.22
KB
-rw-r--r--
2026-02-23 12:36
finddiv.pyo
3.22
KB
-rw-r--r--
2026-02-23 12:36
findlinksto.py
1.04
KB
-rwxr-xr-x
2026-02-23 12:35
findlinksto.pyc
1.39
KB
-rw-r--r--
2026-02-23 12:36
findlinksto.pyo
1.39
KB
-rw-r--r--
2026-02-23 12:36
findnocoding.py
2.64
KB
-rwxr-xr-x
2026-02-23 12:35
findnocoding.pyc
3.03
KB
-rw-r--r--
2026-02-23 12:36
findnocoding.pyo
3.03
KB
-rw-r--r--
2026-02-23 12:36
fixcid.py
9.75
KB
-rwxr-xr-x
2026-02-23 12:35
fixcid.pyc
7.67
KB
-rw-r--r--
2026-02-23 12:36
fixcid.pyo
7.67
KB
-rw-r--r--
2026-02-23 12:36
fixdiv.py
13.57
KB
-rwxr-xr-x
2026-02-23 12:35
fixdiv.pyc
13.7
KB
-rw-r--r--
2026-02-23 12:36
fixdiv.pyo
13.62
KB
-rw-r--r--
2026-02-23 12:36
fixheader.py
1.16
KB
-rwxr-xr-x
2026-02-23 12:35
fixheader.pyc
1.44
KB
-rw-r--r--
2026-02-23 12:36
fixheader.pyo
1.44
KB
-rw-r--r--
2026-02-23 12:36
fixnotice.py
2.98
KB
-rwxr-xr-x
2026-02-23 12:35
fixnotice.pyc
3.42
KB
-rw-r--r--
2026-02-23 12:36
fixnotice.pyo
3.42
KB
-rw-r--r--
2026-02-23 12:36
fixps.py
894
B
-rwxr-xr-x
2026-02-23 12:35
fixps.pyc
969
B
-rw-r--r--
2026-02-23 12:36
fixps.pyo
969
B
-rw-r--r--
2026-02-23 12:36
ftpmirror.py
12.55
KB
-rwxr-xr-x
2026-02-23 12:35
ftpmirror.pyc
10.81
KB
-rw-r--r--
2026-02-23 12:36
ftpmirror.pyo
10.81
KB
-rw-r--r--
2026-02-23 12:36
google.py
520
B
-rwxr-xr-x
2026-02-23 12:35
google.pyc
792
B
-rw-r--r--
2026-02-23 12:36
google.pyo
792
B
-rw-r--r--
2026-02-23 12:36
gprof2html.py
2.12
KB
-rwxr-xr-x
2026-02-23 12:35
gprof2html.pyc
2.22
KB
-rw-r--r--
2026-02-23 12:36
gprof2html.pyo
2.22
KB
-rw-r--r--
2026-02-23 12:36
h2py.py
5.82
KB
-rwxr-xr-x
2026-02-23 12:35
h2py.pyc
4.3
KB
-rw-r--r--
2026-02-23 12:36
h2py.pyo
4.3
KB
-rw-r--r--
2026-02-23 12:36
hotshotmain.py
1.45
KB
-rwxr-xr-x
2026-02-23 12:35
hotshotmain.pyc
1.82
KB
-rw-r--r--
2026-02-23 12:36
hotshotmain.pyo
1.82
KB
-rw-r--r--
2026-02-23 12:36
ifdef.py
3.63
KB
-rwxr-xr-x
2026-02-23 12:35
ifdef.pyc
2.21
KB
-rw-r--r--
2026-02-23 12:36
ifdef.pyo
2.21
KB
-rw-r--r--
2026-02-23 12:36
lfcr.py
619
B
-rwxr-xr-x
2026-02-23 12:35
lfcr.pyc
880
B
-rw-r--r--
2026-02-23 12:36
lfcr.pyo
880
B
-rw-r--r--
2026-02-23 12:36
linktree.py
2.37
KB
-rwxr-xr-x
2026-02-23 12:35
linktree.pyc
1.98
KB
-rw-r--r--
2026-02-23 12:36
linktree.pyo
1.98
KB
-rw-r--r--
2026-02-23 12:36
lll.py
747
B
-rwxr-xr-x
2026-02-23 12:35
lll.pyc
947
B
-rw-r--r--
2026-02-23 12:36
lll.pyo
947
B
-rw-r--r--
2026-02-23 12:36
logmerge.py
5.45
KB
-rwxr-xr-x
2026-02-23 12:35
logmerge.pyc
4.96
KB
-rw-r--r--
2026-02-23 12:36
logmerge.pyo
4.96
KB
-rw-r--r--
2026-02-23 12:36
mailerdaemon.py
7.76
KB
-rwxr-xr-x
2026-02-23 12:35
mailerdaemon.pyc
7.19
KB
-rw-r--r--
2026-02-23 12:36
mailerdaemon.pyo
7.19
KB
-rw-r--r--
2026-02-23 12:36
md5sum.py
2.33
KB
-rwxr-xr-x
2026-02-23 12:35
md5sum.pyc
2.85
KB
-rw-r--r--
2026-02-23 12:36
md5sum.pyo
2.85
KB
-rw-r--r--
2026-02-23 12:36
methfix.py
5.33
KB
-rwxr-xr-x
2026-02-23 12:35
methfix.pyc
4.03
KB
-rw-r--r--
2026-02-23 12:36
methfix.pyo
4.03
KB
-rw-r--r--
2026-02-23 12:36
mkreal.py
1.59
KB
-rwxr-xr-x
2026-02-23 12:35
mkreal.pyc
1.93
KB
-rw-r--r--
2026-02-23 12:36
mkreal.pyo
1.93
KB
-rw-r--r--
2026-02-23 12:36
ndiff.py
3.72
KB
-rwxr-xr-x
2026-02-23 12:35
ndiff.pyc
3.77
KB
-rw-r--r--
2026-02-23 12:36
ndiff.pyo
3.77
KB
-rw-r--r--
2026-02-23 12:36
nm2def.py
2.39
KB
-rwxr-xr-x
2026-02-23 12:35
nm2def.pyc
2.89
KB
-rw-r--r--
2026-02-23 12:36
nm2def.pyo
2.89
KB
-rw-r--r--
2026-02-23 12:36
objgraph.py
5.88
KB
-rwxr-xr-x
2026-02-23 12:35
objgraph.pyc
4.82
KB
-rw-r--r--
2026-02-23 12:36
objgraph.pyo
4.82
KB
-rw-r--r--
2026-02-23 12:36
parseentities.py
1.68
KB
-rwxr-xr-x
2026-02-23 12:35
parseentities.pyc
2.03
KB
-rw-r--r--
2026-02-23 12:36
parseentities.pyo
2.03
KB
-rw-r--r--
2026-02-23 12:36
patchcheck.py
5.42
KB
-rwxr-xr-x
2026-02-23 12:35
patchcheck.pyc
7.24
KB
-rw-r--r--
2026-02-23 12:36
patchcheck.pyo
7.24
KB
-rw-r--r--
2026-02-23 12:36
pathfix.py
4.23
KB
-rwxr-xr-x
2026-02-23 12:35
pathfix.pyc
3.75
KB
-rw-r--r--
2026-02-23 12:36
pathfix.pyo
3.75
KB
-rw-r--r--
2026-02-23 12:36
pdeps.py
3.84
KB
-rwxr-xr-x
2026-02-23 12:35
pdeps.pyc
3.14
KB
-rw-r--r--
2026-02-23 12:36
pdeps.pyo
3.14
KB
-rw-r--r--
2026-02-23 12:36
pickle2db.py
3.85
KB
-rwxr-xr-x
2026-02-23 12:35
pickle2db.pyc
3.73
KB
-rw-r--r--
2026-02-23 12:36
pickle2db.pyo
3.73
KB
-rw-r--r--
2026-02-23 12:36
pindent.py
16.77
KB
-rwxr-xr-x
2026-02-23 12:35
pindent.pyc
11.3
KB
-rw-r--r--
2026-02-23 12:36
pindent.pyo
11.3
KB
-rw-r--r--
2026-02-23 12:36
ptags.py
1.2
KB
-rwxr-xr-x
2026-02-23 12:35
ptags.pyc
1.37
KB
-rw-r--r--
2026-02-23 12:36
ptags.pyo
1.37
KB
-rw-r--r--
2026-02-23 12:36
pysource.py
3.76
KB
-rwxr-xr-x
2026-02-23 12:35
pysource.pyc
3.92
KB
-rw-r--r--
2026-02-23 12:36
pysource.pyo
3.92
KB
-rw-r--r--
2026-02-23 12:36
redemo.py
5.66
KB
-rwxr-xr-x
2026-02-23 12:35
redemo.pyc
5.16
KB
-rw-r--r--
2026-02-23 12:36
redemo.pyo
5.16
KB
-rw-r--r--
2026-02-23 12:36
reindent-rst.py
278
B
-rwxr-xr-x
2026-02-23 12:35
reindent-rst.pyc
481
B
-rw-r--r--
2026-02-23 12:36
reindent-rst.pyo
481
B
-rw-r--r--
2026-02-23 12:36
reindent.py
10.58
KB
-rwxr-xr-x
2026-02-23 12:35
reindent.pyc
8.77
KB
-rw-r--r--
2026-02-23 12:36
reindent.pyo
8.74
KB
-rw-r--r--
2026-02-23 12:36
rgrep.py
1.46
KB
-rwxr-xr-x
2026-02-23 12:35
rgrep.pyc
1.84
KB
-rw-r--r--
2026-02-23 12:36
rgrep.pyo
1.84
KB
-rw-r--r--
2026-02-23 12:36
serve.py
1.12
KB
-rwxr-xr-x
2026-02-23 12:35
serve.pyc
1.56
KB
-rw-r--r--
2026-02-23 12:36
serve.pyo
1.56
KB
-rw-r--r--
2026-02-23 12:36
setup.py
421
B
-rwxr-xr-x
2026-02-23 12:35
setup.pyc
548
B
-rw-r--r--
2026-02-23 12:36
setup.pyo
548
B
-rw-r--r--
2026-02-23 12:36
suff.py
622
B
-rwxr-xr-x
2026-02-23 12:35
suff.pyc
904
B
-rw-r--r--
2026-02-23 12:36
suff.pyo
904
B
-rw-r--r--
2026-02-23 12:36
svneol.py
2.86
KB
-rwxr-xr-x
2026-02-23 12:35
svneol.pyc
2.83
KB
-rw-r--r--
2026-02-23 12:36
svneol.pyo
2.76
KB
-rw-r--r--
2026-02-23 12:36
texcheck.py
9.04
KB
-rwxr-xr-x
2026-02-23 12:35
texcheck.pyc
8.18
KB
-rw-r--r--
2026-02-23 12:36
texcheck.pyo
8.18
KB
-rw-r--r--
2026-02-23 12:36
texi2html.py
68.19
KB
-rwxr-xr-x
2026-02-23 12:35
texi2html.pyc
81.37
KB
-rw-r--r--
2026-02-23 12:36
texi2html.pyo
81.37
KB
-rw-r--r--
2026-02-23 12:36
treesync.py
5.65
KB
-rwxr-xr-x
2026-02-23 12:35
treesync.pyc
5.85
KB
-rw-r--r--
2026-02-23 12:36
treesync.pyo
5.85
KB
-rw-r--r--
2026-02-23 12:36
untabify.py
1.19
KB
-rwxr-xr-x
2026-02-23 12:35
untabify.pyc
1.55
KB
-rw-r--r--
2026-02-23 12:36
untabify.pyo
1.55
KB
-rw-r--r--
2026-02-23 12:36
which.py
1.59
KB
-rwxr-xr-x
2026-02-23 12:35
which.pyc
1.59
KB
-rw-r--r--
2026-02-23 12:36
which.pyo
1.59
KB
-rw-r--r--
2026-02-23 12:36
win_add2path.py
1.58
KB
-rwxr-xr-x
2026-02-23 12:35
win_add2path.pyc
2.02
KB
-rw-r--r--
2026-02-23 12:36
win_add2path.pyo
2.02
KB
-rw-r--r--
2026-02-23 12:36
xxci.py
2.73
KB
-rwxr-xr-x
2026-02-23 12:35
xxci.pyc
3.93
KB
-rw-r--r--
2026-02-23 12:36
xxci.pyo
3.93
KB
-rw-r--r--
2026-02-23 12:36
Save
Rename
#! /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()