from os import walk\r
from os import environ\r
import re\r
-from collections import UserDict as IterableUserDict\r
+from UserDict import IterableUserDict\r
\r
import Logger.Log as Logger\r
from Logger import StringTable as ST\r
# or not\r
#\r
def SaveFileOnChange(File, Content, IsBinaryFile=True):\r
+ if not IsBinaryFile:\r
+ Content = Content.replace("\n", linesep)\r
+\r
if os.path.exists(File):\r
try:\r
- if isinstance(Content, bytes):\r
- if Content == __FileHookOpen__(File, "rb").read():\r
- return False\r
- else:\r
- if Content == __FileHookOpen__(File, "r").read():\r
- return False\r
+ if Content == __FileHookOpen__(File, "rb").read():\r
+ return False\r
except BaseException:\r
Logger.Error(None, ToolError.FILE_OPEN_FAILURE, ExtraData=File)\r
\r
CreateDirectory(os.path.dirname(File))\r
try:\r
- if isinstance(Content, bytes):\r
- FileFd = __FileHookOpen__(File, "wb")\r
- else:\r
- FileFd = __FileHookOpen__(File, "w")\r
+ FileFd = __FileHookOpen__(File, "wb")\r
FileFd.write(Content)\r
FileFd.close()\r
except BaseException:\r
def CommonPath(PathList):\r
Path1 = min(PathList).split(os.path.sep)\r
Path2 = max(PathList).split(os.path.sep)\r
- for Index in range(min(len(Path1), len(Path2))):\r
+ for Index in xrange(min(len(Path1), len(Path2))):\r
if Path1[Index] != Path2[Index]:\r
return os.path.sep.join(Path1[:Index])\r
return os.path.sep.join(Path1)\r
if FindEdkBlockComment:\r
if FirstPos == -1:\r
FirstPos = StartPos\r
- for Index in range(StartPos, EndPos+1):\r
+ for Index in xrange(StartPos, EndPos+1):\r
LineList[Index] = ''\r
FindEdkBlockComment = False\r
elif Line.find("//") != -1 and not Line.startswith("#"):\r
FileLinesList = []\r
\r
try:\r
- FInputfile = open(FullFileName, "r")\r
+ FInputfile = open(FullFileName, "rb", 0)\r
try:\r
FileLinesList = FInputfile.readlines()\r
except BaseException:\r