]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/getter/http_getter.ml
removed debug prerr_endline
[helm.git] / helm / ocaml / getter / http_getter.ml
index e0a1a4658c500f3f74ed06820657138828cd3594..d0ecf9ba22d241851933a343fd6406a82cc390cb 100644 (file)
@@ -464,6 +464,7 @@ let basepart_RE =
     
 let (slash_RE, til_slash_RE, no_slashes_RE) =
   (Pcre.regexp "/", Pcre.regexp "^.*/", Pcre.regexp "^[^/]*$")
+let fix_regexp_RE = Pcre.regexp ("^" ^ (Pcre.quote "(cic|theory)"))
   
 let ls regexp =
   if remote () then
@@ -475,6 +476,15 @@ let ls regexp =
       Pcre.regexp (pat ^ "/"), Pcre.regexp "[^/]+/[^/]*",
       Pcre.regexp (pat ^ "(\\.|$)"), Pcre.regexp "/.*"
     in
+    let exists_theory regexp =
+      let theory =
+        Pcre.replace ~rex:fix_regexp_RE ~templ:"theory" regexp ^ "index.theory"
+      in
+      try
+        ignore (resolve theory);
+        true
+      with Key_not_found _ -> false
+    in
     let toplevel_theory =
       match List.rev (Pcre.split ~rex:slash_RE pat) with
       | dir :: _ -> Some (dir ^ ".theory")
@@ -606,7 +616,7 @@ let ls regexp =
             (index_not_generated_yet := false ;
              store_obj "index.theory"));
  *)
-    store_obj "index.theory";
+    if exists_theory regexp then store_obj "index.theory";
     List.iter
      (fun localpart ->
        if not (List.mem localpart !valid_candidates) then
@@ -646,5 +656,6 @@ let init () =
     Helm_registry.get_opt_default Helm_registry.get_bool false "getter.prefetch"
   in
   if is_prefetch_set then
-    ignore (Thread.create sync_with_map ())
+    (* ignore (Thread.create sync_with_map ()) *)
+    sync_with_map ()