Author: forenr
Date: Tue May 31 03:12:27 2011
New Revision: 38894
URL: http://www.lyx.org/trac/changeset/38894

Log:
On Windows, avoid spaces in filenames passed to latex by using the
short form of the path.

Modified:
   lyx-devel/trunk/lib/configure.py

Modified: lyx-devel/trunk/lib/configure.py
==============================================================================
--- lyx-devel/trunk/lib/configure.py    Mon May 30 09:15:21 2011        (r38893)
+++ lyx-devel/trunk/lib/configure.py    Tue May 31 03:12:27 2011        (r38894)
@@ -102,7 +102,14 @@
         from tempfile import mkstemp
         fd, tmpfname = mkstemp(suffix='.ltx')
         if os.name == 'nt':
-            inpname = tmpfname.replace('\\', '/')
+            from ctypes import windll, create_unicode_buffer
+            GetShortPathName = windll.kernel32.GetShortPathNameW
+            longname = unicode(tmpfname)
+            shortname = create_unicode_buffer(len(longname)+1)
+            if GetShortPathName(longname, shortname, len(longname)+1):
+                inpname = shortname.value.replace('\\', '/')
+            else:
+                inpname = tmpfname.replace('\\', '/')
         else:
             inpname = cmdOutput('cygpath -m ' + tmpfname)
         logname = os.path.basename(inpname.replace('.ltx', '.log'))

Reply via email to