On Windows, properly account for the encoding of the temporary directory.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40858 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Enrico Forestieri 2012-03-05 17:14:09 +00:00
parent 9c5a8b3224
commit 85ccfd240c

View File

@ -109,9 +109,13 @@ def checkTeXPaths():
from tempfile import mkstemp from tempfile import mkstemp
fd, tmpfname = mkstemp(suffix='.ltx') fd, tmpfname = mkstemp(suffix='.ltx')
if os.name == 'nt': if os.name == 'nt':
from locale import getdefaultlocale
from ctypes import windll, create_unicode_buffer from ctypes import windll, create_unicode_buffer
GetShortPathName = windll.kernel32.GetShortPathNameW GetShortPathName = windll.kernel32.GetShortPathNameW
longname = unicode(tmpfname) language, encoding = getdefaultlocale()
if encoding == None:
encoding = 'latin1'
longname = unicode(tmpfname, encoding)
shortlen = GetShortPathName(longname, 0, 0) shortlen = GetShortPathName(longname, 0, 0)
shortname = create_unicode_buffer(shortlen) shortname = create_unicode_buffer(shortlen)
if GetShortPathName(longname, shortname, shortlen): if GetShortPathName(longname, shortname, shortlen):