aboutsummaryrefslogtreecommitdiff
path: root/texall
diff options
context:
space:
mode:
Diffstat (limited to 'texall')
-rwxr-xr-xtexall30
1 files changed, 20 insertions, 10 deletions
diff --git a/texall b/texall
index c9bd3c7..bbb6e2d 100755
--- a/texall
+++ b/texall
@@ -6,6 +6,7 @@ import os
import os.path
import re
import subprocess
+import tempfile
parser = OptionParser(usage="%prog [-v] DIR/FILE [...]", version="%prog $Id: $")
parser.add_option("-n", "--dry-run",
@@ -269,9 +270,10 @@ def processtexfiles(args):
# support for pstricks/plain latex:
tex = detecttextype(dirname, texname)
- # detect usage of german/ngerman
- rmligs = detectrmligs(dirname, texname)
- realname = preparermligs(texname, dirname, tmplist)
+ # detect usage of german/ngerman and generate temporary files with rmlig
+ realname = texname
+ if detectrmligs(dirname, texname):
+ realname = preparermligs(texname, dirname, tmplist)
runtex(tex, texname, realname, dirname)
@@ -402,9 +404,9 @@ def run(arglist, dirname, reason="", stdin=None, stdout=None):
if ret:
error(dirname, "failed command: %s"%(" ".join(arglist)))
+re_include = re.compile('\\\\include\\{([^}]*)\\}')
def preparermligs(texname, dirname, tmplist):
jobname=texname[:-4]
- rmligsname=jobname+"-rmligs.tex"
if options.progress:
print " running rmligs on %s..."%texname
try:
@@ -415,10 +417,18 @@ def preparermligs(texname, dirname, tmplist):
else:
try:
if options.act:
- rmligsfile = open(os.path.join(dirname, rmligsname), "w")
+ (rmligsfd, rmligspath) = tempfile.mkstemp("-rmligs.tex", "%s-"%jobname, dirname)
+ realrmligspath = os.path.realpath(rmligspath)
+ realdirname = os.path.realpath(dirname)
+ if realrmligspath[:len(realdirname)] == realdirname:
+ rmligsname = realrmligspath[len(realdirname)+1:]
+ else:
+ rmligsname = rmligspath # should not happen
+ rmligsfile = os.fdopen(rmligsfd, "w")
else:
+ rmligsname = jobname + "-rmligs-XXXXX.tex"
rmligsfile = null
- except exceptIOError, (errno, strerror):
+ except IOError, (errno, strerror):
error(rmligsname, "could not be written: %s. Not using rmligs."%strerror)
return texname
else:
@@ -426,16 +436,16 @@ def preparermligs(texname, dirname, tmplist):
proc = subprocess.Popen([rmligs_name, "-f"], stdin=texfile, stdout=subprocess.PIPE, cwd=dirname)
def rewriteinputrmligs(m):
- name=m.group(2)
+ name=m.group(1)
if not os.path.isfile(os.path.join(dirname,name)):
name+=".tex"
if os.path.isfile(os.path.join(dirname, name)):
name = preparermligs(name, dirname, tmplist)
else:
- error(name, "File could not be located. Not using rmligs.", warning=True)
- return "\\%s{%s}"%(m.group(1), name)
+ error(texname, "%s: File could not be located. Not using rmligs."%name, warning=True)
+ return "\\include{%s}"%name
for line in proc.stdout:
- rmligsfile.write(re_inputinclude.sub(rewriteinputrmligs, line))
+ rmligsfile.write(re_include.sub(rewriteinputrmligs, line))
texfile.close()
if rmligsfile is not null:
rmligsfile.close()