Commit d56a9a1c authored by Radim Marek's avatar Radim Marek

Correct position of the newly imported tokens

parent d1216f40
...@@ -198,12 +198,23 @@ func (p *parser) doImport() error { ...@@ -198,12 +198,23 @@ func (p *parser) doImport() error {
return p.Errf("No files matching the import pattern %s", importPattern) return p.Errf("No files matching the import pattern %s", importPattern)
} }
// Splice out the import directive and its argument (2 tokens total)
// and insert the imported tokens in their place.
tokensBefore := p.tokens[:p.cursor-1]
tokensAfter := p.tokens[p.cursor+1:]
// cursor was advanced one position to read filename; rewind it
p.cursor--
p.tokens = tokensBefore
for _, importFile := range matches { for _, importFile := range matches {
if err := p.doSingleImport(importFile); err != nil { if err := p.doSingleImport(importFile); err != nil {
return err return err
} }
} }
p.tokens = append(p.tokens, append(tokensAfter)...)
return nil return nil
} }
...@@ -222,10 +233,7 @@ func (p *parser) doSingleImport(importFile string) error { ...@@ -222,10 +233,7 @@ func (p *parser) doSingleImport(importFile string) error {
// Splice out the import directive and its argument (2 tokens total) // Splice out the import directive and its argument (2 tokens total)
// and insert the imported tokens in their place. // and insert the imported tokens in their place.
tokensBefore := p.tokens[:p.cursor-1] p.tokens = append(p.tokens, append(importedTokens)...)
tokensAfter := p.tokens[p.cursor+1:]
p.tokens = append(tokensBefore, append(importedTokens, tokensAfter...)...)
p.cursor-- // cursor was advanced one position to read the filename; rewind it
return nil return nil
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment