7258: Fix filesystem encoding in get_dbdir_summary and DbUndoBSDDB.close.
This commit is contained in:
parent
2221dfd79a
commit
97d3ab49c4
@ -64,7 +64,7 @@ _ = glocale.translation.gettext
|
|||||||
from gramps.gen.db import DbBsddb
|
from gramps.gen.db import DbBsddb
|
||||||
from gramps.gen.plug import BasePluginManager
|
from gramps.gen.plug import BasePluginManager
|
||||||
from gramps.gen.config import config
|
from gramps.gen.config import config
|
||||||
from gramps.gen.constfunc import win, conv_to_unicode
|
from gramps.gen.constfunc import win, conv_to_unicode, UNITYPE
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# constants
|
# constants
|
||||||
@ -168,6 +168,8 @@ class CLIDbManager(object):
|
|||||||
flags = db.DB_CREATE | db.DB_PRIVATE |\
|
flags = db.DB_CREATE | db.DB_PRIVATE |\
|
||||||
db.DB_INIT_MPOOL |\
|
db.DB_INIT_MPOOL |\
|
||||||
db.DB_INIT_LOG | db.DB_INIT_TXN
|
db.DB_INIT_LOG | db.DB_INIT_TXN
|
||||||
|
if (isinstance(dirpath, UNITYPE) and win() and sys.version_info[0] < 3):
|
||||||
|
dirpath = dirpath.encode(sys.getfilesystemencoding())
|
||||||
try:
|
try:
|
||||||
env.open(dirpath, flags)
|
env.open(dirpath, flags)
|
||||||
except Exception as msg:
|
except Exception as msg:
|
||||||
|
@ -63,7 +63,7 @@ _ = glocale.translation.gettext
|
|||||||
# Gramps modules
|
# Gramps modules
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
from ..constfunc import conv_to_unicode, handle2internal
|
from ..constfunc import conv_to_unicode, handle2internal, win, UNITYPE
|
||||||
from .dbconst import *
|
from .dbconst import *
|
||||||
from . import BSDDBTxn
|
from . import BSDDBTxn
|
||||||
from ..errors import DbError
|
from ..errors import DbError
|
||||||
@ -419,7 +419,11 @@ class DbUndoBSDDB(DbUndo):
|
|||||||
"""
|
"""
|
||||||
Open the undo/redo database
|
Open the undo/redo database
|
||||||
"""
|
"""
|
||||||
self.undodb.open(self.path, db.DB_RECNO, db.DB_CREATE)
|
path = (self.path.encode(sys.getfilesystemencoding())
|
||||||
|
if (isinstance(self.path, UNITYPE) and win()
|
||||||
|
and sys.version_info[0] < 3)
|
||||||
|
else self.path)
|
||||||
|
self.undodb.open(path, db.DB_RECNO, db.DB_CREATE)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""
|
"""
|
||||||
|
@ -906,7 +906,7 @@ class DbBsddb(DbBsddbRead, DbWriteBase, UpdateCallback):
|
|||||||
Open the undo database
|
Open the undo database
|
||||||
"""
|
"""
|
||||||
if not self.readonly:
|
if not self.readonly:
|
||||||
self.undolog = _encode(os.path.join(self.full_name, DBUNDOFN))
|
self.undolog = os.path.join(self.full_name, DBUNDOFN)
|
||||||
self.undodb = DbUndo(self, self.undolog)
|
self.undodb = DbUndo(self, self.undolog)
|
||||||
self.undodb.open()
|
self.undodb.open()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user