diff --git a/conf_test.go b/conf_test.go index bf49180..3887b2b 100644 --- a/conf_test.go +++ b/conf_test.go @@ -15,8 +15,7 @@ active = false [service-1] port = 443 -url = http://%(host)s/something -` +url = http://%(host)s/something` type stringtest struct { section string diff --git a/read.go b/read.go index c8c09ca..f997ffa 100644 --- a/read.go +++ b/read.go @@ -48,13 +48,11 @@ func (c *ConfigFile) Read(reader io.Reader) (err os.Error) { var section, option string; section = "default" for { - l, err := buf.ReadString('\n'); // parse line-by-line - if err == os.EOF { - break - } else if err != nil { + l, buferr := buf.ReadString('\n'); // parse line-by-line + if buferr != nil && buferr != os.EOF { return err } - + l = strings.TrimSpace(l); // switch written for readability (not performance) switch { @@ -96,6 +94,11 @@ func (c *ConfigFile) Read(reader io.Reader) (err os.Error) { return ReadError{CouldNotParse, l} } } + + // Reached end of file + if buferr == os.EOF { + break + } } return nil; }