line = index.(*Index).Snippet(line).Line
} else {
// no line information available because
- // we don't have an index
- // TODO(gri) Fix this for remote search
+ // we don't have an index - this should
+ // never happen; be conservative and don't
+ // crash
line = 0
}
}
}
+type Result struct {
+ Result []byte
+}
+
+
type IndexServer struct{}
-func (s *IndexServer) Lookup(query *Query, result *SearchResult) os.Error {
- *result = lookup(query.Query)
+func (s *IndexServer) Lookup(query *Query, result *Result) os.Error {
+ result.Result = applyTemplate(searchText, "searchText", lookup(query.Query))
return nil
}
}
-func remoteLookup(query string) (result *SearchResult, err os.Error) {
+func remoteLookup(query string) (result *Result, err os.Error) {
var client *rpc.Client
if *serverAddr != "" {
// try server only
}
}
- result = new(SearchResult)
+ result = new(Result)
err = client.Call("IndexServer.Lookup", &Query{query}, result)
if err != nil {
return nil, err
if err != nil {
log.Exitf("remoteLookup: %s", err)
}
- if err := searchText.Execute(result, os.Stdout); err != nil {
- log.Exitf("searchText.Execute: %s", err)
- }
+ os.Stdout.Write(result.Result)
}
return
}