net/dict: parse response correctly + typo
* SHOW DB responds with a
"110 n databases present - text follows" -- parse it.
* Doing a Define() on a non-existing word gives error
"invalid definition count: no", when we really
want "552 no match".
R=rsc
CC=golang-dev
https://golang.org/cl/2211041
diff --git a/src/pkg/net/dict/dict.go b/src/pkg/net/dict/dict.go
index 474c483..42f6553 100644
--- a/src/pkg/net/dict/dict.go
+++ b/src/pkg/net/dict/dict.go
@@ -55,6 +55,10 @@
c.text.StartResponse(id)
defer c.text.EndResponse(id)
+ _, _, err = c.text.ReadCodeLine(110)
+ if err != nil {
+ return nil, err
+ }
lines, err := c.text.ReadDotLines()
if err != nil {
return nil, err
@@ -85,9 +89,9 @@
// The argument dict names the dictionary to use,
// the Name field of a Dict returned by Dicts.
//
-// The special dictionary name "!" means to look in all the
-// server's dictionaries.
// The special dictionary name "*" means to look in all the
+// server's dictionaries.
+// The special dictionary name "!" means to look in all the
// server's dictionaries in turn, stopping after finding the word
// in one of them.
func (c *Client) Define(dict, word string) ([]*Defn, os.Error) {
@@ -100,6 +104,9 @@
defer c.text.EndResponse(id)
_, line, err := c.text.ReadCodeLine(150)
+ if err != nil {
+ return nil, err
+ }
a, _ := fields(line)
if len(a) < 1 {
return nil, textproto.ProtocolError("malformed response: " + line)