aboutsummaryrefslogtreecommitdiff
path: root/texall
diff options
context:
space:
mode:
Diffstat (limited to 'texall')
-rwxr-xr-xtexall37
1 files changed, 24 insertions, 13 deletions
diff --git a/texall b/texall
index 75f3af3..8169429 100755
--- a/texall
+++ b/texall
@@ -162,10 +162,15 @@ class AnalyseTexBibfiles(Analyser):
def finish(self, dirname):
bibpaths = []
for bib in self.d.bibfiles:
- bibpath = texpath(dirname, bib, pathtype="bib",progname="bibtex")
- bibpath = strippath(bibpath, dirname)
- self.d.deps.append((bibpath, ("",)))
- bibpaths.append(bibpath)
+ try:
+ bibpath = texpath(dirname, bib, pathtype="bib",progname="bibtex")
+ bibpath = strippath(bibpath, dirname)
+ self.d.deps.append((bibpath, ("",)))
+ bibpaths.append(bibpath)
+ except ValueError, e:
+ error(self.d.name, str(e), warning=True)
+ bibpaths.append(bib)
+ pass
self.d.bibfiles = bibpaths
class AnalyseTexNeedsPs(Analyser):
@@ -278,7 +283,6 @@ def analyseFile(dirname, filename, analyserclasses, parsetype, fulltext=False, c
a.parse(line)
except IOError, e:
error(os.path.join(dirname, filename), "could not be analysed: %s"%e)
- data = None
else:
f.close()
if hasattr(data, "deps") and (recurse
@@ -297,7 +301,7 @@ def analyseFile(dirname, filename, analyserclasses, parsetype, fulltext=False, c
if hasattr(data, "required") and data.required:
for a in analysers:
a.finish(dirname)
- if cache and data:
+ if cache:
analysecache[(parsetype, pathname)] = data
return data
@@ -312,6 +316,8 @@ kpseproc = {}
def texpath(dirname,filename,pathtype="tex",progname="latex",extlist=("",)):
filename = os.path.expanduser(filename)
# first try files in current directory
+ if pathtype=="bib" and extlist==("",):
+ extlist=(".bib", "")
for ext in extlist:
if os.path.isfile(os.path.join(dirname,filename+ext)):
return filename+ext
@@ -330,7 +336,9 @@ def texpath(dirname,filename,pathtype="tex",progname="latex",extlist=("",)):
continue
else:
if iswindows:
- kpse=subprocess.Popen(["kpsewhich", "-format", pathtype, "-progname", progname, lookupname], stdout=subprocess.PIPE)
+ kpse=subprocess.Popen(["kpsewhich", "-format", pathtype, "-progname", progname, lookupname],
+ stdout=subprocess.PIPE,
+ cwd=dirname)
(out,err)=kpse.communicate()
if kpse.wait() == 0:
pathname = out[:-1]
@@ -354,7 +362,8 @@ def texpath(dirname,filename,pathtype="tex",progname="latex",extlist=("",)):
"-format", pathtype,
"-progname", progname, lookupname],
stdout=slave,
- stdin=slave)
+ stdin=slave,
+ cwd="/")
kpseproc[(pathtype, progname)] = (proc, master)
if select.select([master], [], [], 0.1)[0]:
pathname = os.read(master, 1024)
@@ -512,11 +521,13 @@ def needsupdate(dirname, texname, data=None):
error(os.path.join(dirname, texname), "ignored dependency: " + str(e), warning=True)
# check for errors and requests
- logdata = analyseLog(dirname, jobname + ".log")
- if logdata.errors:
- return " (because of error(s) in .log file)"
- if logdata.requests:
- return " (because of request(s) in .log file)"
+ logname = jobname + ".log"
+ if os.path.isfile(os.path.join(dirname, logname)):
+ logdata = analyseLog(dirname, jobname + ".log")
+ if logdata.errors:
+ return " (because of error(s) in .log file)"
+ if logdata.requests:
+ return " (because of request(s) in .log file)"
# verbose force
if opts.force: