tree_store#get ~row:iter ~column:interp_no_col
end
+exception UseLibrary;;
let rec interactive_error_interp ~all_passes
(source_buffer:GSourceView.source_buffer) notify_exn offset errorll filename
return ()
);
connect_button dialog#disambiguationErrorsMoreErrors
- (fun _ -> return () ;
- interactive_error_interp ~all_passes:true source_buffer
- notify_exn offset errorll filename);
+ (fun _ -> return () ; raise UseLibrary);
connect_button dialog#disambiguationErrorsCancelButton fail;
dialog#disambiguationErrors#show ();
GtkThread.main ()
let thread_main =
fun () ->
lock_world ();
+ let saved_use_library= !MultiPassDisambiguator.use_library in
try
+ MultiPassDisambiguator.use_library := !all_disambiguation_passes;
f ();
+ MultiPassDisambiguator.use_library := saved_use_library;
unlock_world ()
with
| MultiPassDisambiguator.DisambiguationError (offset,errorll) ->
~all_passes:!all_disambiguation_passes source_buffer
notify_exn offset errorll (s())#filename
with
- exc -> notify_exn exc);
+ | UseLibrary ->
+ MultiPassDisambiguator.use_library := true;
+ (try f ()
+ with
+ | MultiPassDisambiguator.DisambiguationError (offset,errorll) ->
+ interactive_error_interp ~all_passes:true source_buffer
+ notify_exn offset errorll (s())#filename
+ | exc ->
+ notify_exn exc);
+ | exc -> notify_exn exc);
+ MultiPassDisambiguator.use_library := saved_use_library;
unlock_world ()
| exc ->
notify_exn exc;