]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Better check to avoid executables.
authorGuido van Rossum <guido@python.org>
Wed, 18 Dec 1991 13:39:16 +0000 (13:39 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 18 Dec 1991 13:39:16 +0000 (13:39 +0000)
Tools/scripts/xxci.py

index 253ad2dce9aa2d8f5c23e4347b0044172655c797..ef4ff11d9b2a01073447697003646a1025c097c5 100755 (executable)
@@ -11,6 +11,8 @@ import stat
 import path
 import commands
 
+EXECMAGIC = '\001\140\000\010'
+
 MAXSIZE = 200*1024 # Files this big must be binaries and are skipped.
 
 def getargs():
@@ -30,7 +32,8 @@ def getargs():
 badnames = ['tags', 'TAGS', 'xyzzy', 'nohup.out', 'core']
 badprefixes = ['.', ',', '@', '#', 'o.']
 badsuffixes = \
-       ['~', '.a', '.o', '.old', '.bak', '.orig', '.new', '.prev', '.not']
+       ['~', '.a', '.o', '.old', '.bak', '.orig', '.new', '.prev', '.not', \
+        '.pyc', '.elc']
 # XXX Should generalize even more to use fnmatch!
 
 def skipfile(file):
@@ -43,7 +46,14 @@ def skipfile(file):
                st = posix.stat(file)
        except posix.error:
                return 1 # Doesn't exist -- skip it
-       return st[stat.ST_SIZE] >= MAXSIZE
+       if st[stat.ST_SIZE] >= MAXSIZE: return 1
+       # Skip executables
+       try:
+               data = open(file, 'r').read(len(EXECMAGIC))
+               if data = EXECMAGIC: return 1
+       except:
+               pass
+       return 0
 
 def badprefix(file):
        for bad in badprefixes: