diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2016-02-21 21:30:12 -0500 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2016-02-21 21:30:12 -0500 |
| commit | 061b85376e76c3b28afa488369dff76241cc5c7c (patch) | |
| tree | effd6945c7eac205598c136afc8bdf9edb3547a0 /parser.go | |
| parent | c488ccf95be73c2e1ed3ed537891d8bc75e64555 (diff) | |
| download | bibtex-061b85376e76c3b28afa488369dff76241cc5c7c.tar.gz | |
Warn about existing key as soon as it starts
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 } |
