From 57e79459fa872c4fc1724e34b9d2f90d53aac818 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Sun, 8 Sep 2002 20:43:59 +0000 Subject: [PATCH] shutil.copyfile(src,dst) was clobbering the file when the src and dst were the same. Added check to verify the two names are not the same. Does not check the actual files to see if there is a symbolic link. Closes SF bug 490165 and Tzot's patch 604600. --- Lib/shutil.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Lib/shutil.py b/Lib/shutil.py index 3076be92e16..0e60870957c 100644 --- a/Lib/shutil.py +++ b/Lib/shutil.py @@ -24,6 +24,11 @@ def copyfile(src, dst): """Copy data from src to dst""" fsrc = None fdst = None + # check for same pathname; all platforms + _src = os.path.normcase(os.path.abspath(src)) + _dst = os.path.normcase(os.path.abspath(dst)) + if _src == _dst: + return try: fsrc = open(src, 'rb') fdst = open(dst, 'wb')