diff options
Diffstat (limited to 'parser.go')
| -rw-r--r-- | parser.go | 15 |
1 files changed, 8 insertions, 7 deletions
@@ -1,4 +1,4 @@ -package main +package bibtex import ( "bufio" @@ -342,6 +342,13 @@ func (p *Parser) readEntry(entry *Entry) error { p.eatSpace() key := p.readToken("," + string(close)) entry.key = key + + if _, in := p.entries[strings.ToLower(key)]; in { + p.Warning(fmt.Sprintf("Entry %q already defined, ignoring", key)) + } else { + p.entries[strings.ToLower(key)] = entry + } + for { p.eatSpace() if ch := p.read(); ch == close { @@ -388,12 +395,6 @@ func (p *Parser) readDeclaration() error { entry := NewEntry(typ) entry.line = p.lineno err = p.readEntry(entry) - if _, in := p.entries[strings.ToLower(entry.key)]; in { - p.Warning(fmt.Sprintf("Entry %q already defined, ignoring", - entry.key)) - } else { - p.entries[strings.ToLower(entry.key)] = entry - } } return err } |
