diff options
| author | Nick Mathewson <nickm@torproject.org> | 2010-05-18 19:07:14 +0000 |
|---|---|---|
| committer | Nick Mathewson <nickm@torproject.org> | 2010-05-18 19:07:14 +0000 |
| commit | f6712eaaa8e3e14bf8b36a7ab9b83742ffc6d570 (patch) | |
| tree | 9bfc8eb7342c29e9813bf9e4477b03971221f4c8 /BibTeX.py | |
| parent | 62f3ebac0834d0e2f58b32ae2f58c8761b5d42f6 (diff) | |
| download | anonbib-f6712eaaa8e3e14bf8b36a7ab9b83742ffc6d570.tar.gz | |
Another fix to make anonbib.bib into valid bibtex.
Apparently, when you have a crossref in a bibtex file, the thing you
refer to needs to be defined _after_ you use it. Wild!
This patch and the previous one are derived from a patch by Eugene
Vasserman.
svn:r340
Diffstat (limited to 'BibTeX.py')
| -rw-r--r-- | BibTeX.py | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -85,6 +85,9 @@ class BibTeX: seen[cr.key] = 1 del ent.entries['crossref'] + if cr.entryLine < ent.entryLine: + print "Warning: crossref %s used after declaration"%cr.key + for k in cr.entries.keys(): if ent.entries.has_key(k): print "ERROR: %s defined both in %s and in %s"%( @@ -273,6 +276,7 @@ class BibTeXEntry: self.type = type # What kind of entry is it? (@book,@injournal,etc) self.key = key # What key does it have? self.entries = entries # Map from key to value. + self.entryLine = 0 # Defined on this line number def get(self, k, v=None): return self.entries.get(k,v) def has_key(self, k): @@ -1158,6 +1162,7 @@ class Parser: for i in xrange(1,len(v),2): d[v[i].lower()] = v[i+1] ent = BibTeXEntry(self.curEntType, key, d) + ent.entryLine = self.entryLine self.result.addEntry(ent) return line |
