From: Tim Peters Date: Mon, 18 Aug 2003 23:52:09 +0000 (+0000) Subject: This started opening files in text mode by default in the 2.3 release, X-Git-Tag: v2.4a1~1722 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1a3abcb648565b1c521c41d49ecd7c93a45c6d97;p=python This started opening files in text mode by default in the 2.3 release, which is a disaster on Windows. Restored the binary default of all previous releases. Also minor code cleanups. Bugfix candidate! --- diff --git a/Misc/NEWS b/Misc/NEWS index 8f24d85720..ebda27debf 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -52,6 +52,12 @@ Library Tools/Demos ----------- +- md5sum.py mistakenly opened input files in text mode by default, a + silent and dangerous change from previous releases. It once again + opens input files in binary mode by default. The -t and -b flags + remain for compatibility with the 2.3 release, but -b is the default + now. + - py-electric-colon now works when pending-delete/delete-selection mode is in effect diff --git a/Tools/scripts/md5sum.py b/Tools/scripts/md5sum.py index 0711db8dea..e045f1a719 100644 --- a/Tools/scripts/md5sum.py +++ b/Tools/scripts/md5sum.py @@ -6,12 +6,12 @@ bufsize = 8096 fnfilter = None -rmode = 'r' +rmode = 'rb' usage = """ usage: sum5 [-b] [-t] [-l] [-s bufsize] [file ...] --b : read files in binary mode --t : read files in text mode (default) +-b : read files in binary mode (default) +-t : read files in text mode (you almost certainly don't want this!) -l : print last pathname component only -s bufsize: read buffer size (default %d) file ... : files to sum; '-' or no files means stdin @@ -40,7 +40,7 @@ def sum(*files): sts = sum(f, out) or sts return sts -def printsum(filename, out = sys.stdout): +def printsum(filename, out=sys.stdout): try: fp = open(filename, rmode) except IOError, msg: @@ -52,12 +52,13 @@ def printsum(filename, out = sys.stdout): fp.close() return sts -def printsumfp(fp, filename, out = sys.stdout): +def printsumfp(fp, filename, out=sys.stdout): m = md5.new() try: while 1: data = fp.read(bufsize) - if not data: break + if not data: + break m.update(data) except IOError, msg: sys.stderr.write('%s: I/O error: %s\n' % (filename, msg)) @@ -65,7 +66,7 @@ def printsumfp(fp, filename, out = sys.stdout): out.write('%s %s\n' % (m.hexdigest(), filename)) return 0 -def main(args = sys.argv[1:], out = sys.stdout): +def main(args = sys.argv[1:], out=sys.stdout): global fnfilter, rmode, bufsize try: opts, args = getopt.getopt(args, 'blts:') @@ -75,11 +76,11 @@ def main(args = sys.argv[1:], out = sys.stdout): for o, a in opts: if o == '-l': fnfilter = os.path.basename - if o == '-b': + elif o == '-b': rmode = 'rb' - if o == '-t': + elif o == '-t': rmode = 'r' - if o == '-s': + elif o == '-s': bufsize = int(a) if not args: args = ['-']