From 5196d00cc693070da9ff8eed406921347033a1ed Mon Sep 17 00:00:00 2001 From: Jack Jansen Date: Mon, 25 Mar 1996 15:38:36 +0000 Subject: [PATCH] Compare sourcefile to hqx file (if it exists) before binhexing. This should stop us from continually updating the .hqx files, at least for resource files. --- Mac/scripts/binhextree.py | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/Mac/scripts/binhextree.py b/Mac/scripts/binhextree.py index 85b8a6c828e..fa67b9c71f2 100644 --- a/Mac/scripts/binhextree.py +++ b/Mac/scripts/binhextree.py @@ -32,13 +32,44 @@ CWDIR=':Mac:mwerks:projects' # Helper routines def binhexit(path, name): dstfile = path + '.hqx' - if os.path.exists(dstfile) and \ - os.stat(dstfile)[8] > os.stat(path)[8]: - print 'Skip', path,'- Up-to-date' - return + if os.path.exists(dstfile): + print 'Compare', path,'...', + if binhexcompare(path, dstfile): + print 'Identical, skipped.' + return + else: + print 'Not up-to-date.' print 'Binhexing', path binhex.binhex(path, dstfile) +def binhexcompare(source, hqxfile): + """(source, hqxfile) - Check whether the two files match (forks only)""" + ifp = binhex.HexBin(hqxfile) + + sfp = open(source, 'rb') + while 1: + d = ifp.read(128000) + d2 = sfp.read(128000) + if d <> d2: + return 0 + if not d: break + sfp.close() + ifp.close_data() + + d = ifp.read_rsrc(128000) + if d: + sfp = binhex.openrsrc(source, 'rb') + d2 = sfp.read(128000) + if d <> d2: + return 0 + while 1: + d = ifp.read_rsrc(128000) + d2 = sfp.read(128000) + if d <> d2: + return 0 + if not d: break + return 1 + # Project files to handle project_files = {}