From db2717fbfffdac565e4dc4712d37bc76df5a4b4e Mon Sep 17 00:00:00 2001 From: tobigun Date: Fri, 11 Jun 2010 21:49:37 +0000 Subject: - fix execution on windows - use native line endings for file writing git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@2491 b956fd51-792f-4845-bead-9b4dfca2ff2c --- game/languages/update.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'game') diff --git a/game/languages/update.py b/game/languages/update.py index b148709e..f488b9d9 100755 --- a/game/languages/update.py +++ b/game/languages/update.py @@ -26,7 +26,7 @@ import sys import os import codecs -# buffer english file (always open binary, handle newline uniformly) +# buffer english file (always open binary, handle newline uniformly as "\n") f = open("English.ini", "rbU") english = [] for line in f: @@ -44,6 +44,10 @@ def update(lang): for line in f: translation.append(line.rstrip("\n")) f.close + # WORKAROUND: On windows the file does not seem to be closed by f.close + # as long as it is still referenced. Hence os.rename(lang, oldLang) will + # fail later as the file is still opened for reading. + f = None; outList = [] # find new fields @@ -114,7 +118,9 @@ def update(lang): f = open(lang, 'wb') for line in outList: - f.write(line + "\n") + # binary mode does not convert "\n" to the os specific line-ending. + # Use os.linesep instead. + f.write(line + os.linesep) f.close() # update ini-files -- cgit v1.2.3