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)
+ shortlen = GetShortPathName(longname, 0, 0)
+ shortname = create_unicode_buffer(shortlen)
+ if GetShortPathName(longname, shortname, shortlen):
+ inpname = shortname.value.replace('\\', '/')
+ else:
+ inpname = tmpfname.replace('\\', '/')
else:
inpname = cmdOutput('cygpath -m ' + tmpfname)
logname = os.path.basename(inpname.replace('.ltx', '.log'))
os.write(fd, r'\relax')
os.close(fd)
latex_out = cmdOutput(r'latex "\nonstopmode\input{%s}"' % inpname)
+ if 'Error' in latex_out:
+ latex_out = cmdOutput(r'latex "\nonstopmode\input{\"%s\"}"' % inpname)
if 'Error' in latex_out:
logger.warning("configure: TeX engine needs posix-style paths in latex files")
windows_style_tex_paths = 'false'
## configuration change.
## "ModuleName" "filename" "Description" "Packages" "Requires" "Excludes" "Category"
''')
+
# build the list of available modules
- foundClasses = []
+ seen = []
+ # note that this searches the local directory first, then the
+ # system directory. that way, we pick up the user's version first.
for file in glob.glob( os.path.join('layouts', '*.module') ) + \
glob.glob( os.path.join(srcdir, 'layouts', '*.module' ) ) :
# valid file?
logger.info(file)
if not os.path.isfile(file):
continue
- retval = processModuleFile(file, bool_docbook)
+
+ filename = file.split(os.sep)[-1]
+ filename = filename[:-7]
+ if seen.count(filename):
+ continue
+
+ seen.append(filename)
+ retval = processModuleFile(file, filename, bool_docbook)
if retval != "":
tx.write(retval)
tx.close()
logger.info('\tdone')
-def processModuleFile(file, bool_docbook):
+def processModuleFile(file, filename, bool_docbook):
''' process module file and get a line of result
The top of a module file should look like this:
modname = desc = pkgs = req = excl = catgy = ""
readingDescription = False
descLines = []
- filename = file.split(os.sep)[-1]
- filename = filename[:-7]
for line in open(file).readlines():
if readingDescription:
msg = "Checking whether TeX allows spaces in file names... "
writeToFile('a b.tex', r'\message{working^^J}' )
if LATEX != '':
- if os.name == 'nt':
+ if os.name == 'nt' or sys.platform == 'cygwin':
latex_out = cmdOutput(LATEX + r""" "\nonstopmode\input{\"a b\"}" """)
else:
latex_out = cmdOutput(LATEX + r""" '\nonstopmode\input{"a b"}' """)