mirror of
https://github.com/golang/go
synced 2024-11-25 07:57:56 -07:00
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
This commit is contained in:
parent
58e739884b
commit
dd0dec6290
@ -55,6 +55,10 @@ func (c *Client) Dicts() ([]Dict, os.Error) {
|
||||
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 @@ type Defn struct {
|
||||
// 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 @@ func (c *Client) Define(dict, word string) ([]*Defn, os.Error) {
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user