[r21147][Bug 6364] Fix file-opening failures due to unicode content.

svn: r21395
This commit is contained in:
John Ralls 2013-02-24 00:52:07 +00:00
parent 8cea2e239a
commit 3f408af0fa
2 changed files with 18 additions and 10 deletions

View File

@ -1094,14 +1094,22 @@ class PluginRegister(object):
full_filename = full_filename.encode(glocale.getfilesystemencoding())
local_gettext = glocale.get_addon_translator(full_filename).gettext
try:
if win() and not sys.version_info[0] < 3:
exec(compile(open(full_filename, encoding='utf-8').read(),
full_filename, 'exec'), make_environment(_=local_gettext),
{})
stream = open(full_filename).read()
except UnicodeError as err:
if sys.version_info[0] < 3:
print(_("ERROR: Failed to read file %s, %s") % (full_filename, str(err)))
continue
else:
#execfile(full_filename,
exec(compile(open(full_filename).read(), full_filename,
'exec'), make_environment(_=local_gettext), {})
try:
stream = open(full_filename, encoding = 'utf-8').read()
except ValueError as err:
print(_("ERROR: Failed to read file %s, %s") % (full_filename, str(err)))
continue
try:
#execfile(full_filename,
exec(compile(stream, full_filename, 'exec'),
make_environment(_=local_gettext),
{})
except ValueError as msg:
print(_('ERROR: Failed reading plugin registration %(filename)s') % \
{'filename' : filename})

View File

@ -339,10 +339,10 @@ class ConfigManager(object):
except OSError as exp:
if exp.errno != errno.EEXIST:
raise
if win() and not sys.version_info[0] < 3:
key_file = open(filename, "w", encoding='utf-8')
else:
if sys.version_info[0] < 3:
key_file = open(filename, "w")
else:
key_file = open(filename, "w", encoding="utf-8")
key_file.write(";; Gramps key file\n")
key_file.write((";; Automatically created at %s" %
time.strftime("%Y/%m/%d %H:%M:%S")) + "\n\n")