combo#set_active (aux 0 queries);
win#queryInputText#set_text input
in
+ let set_whelp_query txt =
+ let query, arg =
+ try
+ let q = Pcre.extract ~rex:whelp_query_RE txt in
+ q.(1), q.(2)
+ with Invalid_argument _ -> failwith "Malformed Whelp query"
+ in
+ activate_combo_query arg query
+ in
let toplevel = win#toplevel in
let mathView = sequentViewer ~packing:win#scrolledBrowser#add () in
let fail msg =
ignore(win#whelpResultTreeview#connect#row_activated
~callback:(fun _ _ ->
let selection = self#_getWhelpResultTreeviewSelection () in
+ let is_cic s =
+ try
+ String.sub s 0 5 = "cic:/"
+ with Invalid_argument _ -> false
+ in
let txt =
- if String.sub selection 0 5 = "cic:/" then
+ if is_cic selection then
selection
else
win#browserUri#text ^ selection
| `Cic (term, metasenv) -> self#_loadTermCic term metasenv
| `Dir dir -> self#_loadDir dir
| `Uri uri -> self#_loadUriManagerUri (UriManager.uri_of_string uri)
- | `Whelp (query, results) -> self#_loadList results);
+ | `Whelp (query, results) ->
+ set_whelp_query query;
+ self#_loadList results);
self#setEntry entry
end
with
let is_uri txt =
try
let u = UriManager.strip_xpointer (UriManager.uri_of_string txt) in
- ignore(Http_getter.resolve' u); true
+ ignore (Http_getter.resolve' u);
+ true
with
| Http_getter_types.Key_not_found _
- | Http_getter_types.Unresolvable_URI _ -> false
+ | Http_getter_types.Unresolvable_URI _
+ | UriManager.IllFormedUri ("cic:/" | "cic:") -> false
| UriManager.IllFormedUri u -> failwith ("Malformed URI '" ^ u ^ "'")
in
let is_whelp txt = Pcre.pmatch ~rex:whelp_RE txt in
if is_whelp txt then
begin
- let q = Pcre.extract ~rex:whelp_query_RE txt in
- let query, arg =
- try
- q.(1), q.(2)
- with Invalid_argument _ -> failwith "Malformed Whelp query"
- in
- activate_combo_query arg query;
+ set_whelp_query txt;
+
+
(MatitaScript.instance ())#advance ~statement:(txt^".") ()
end
else