diff --git a/main.ml b/main.ml index e6bf24a1388..57c18b75730 100755 --- a/main.ml +++ b/main.ml @@ -1140,15 +1140,19 @@ try let file, pos = try ExtString.String.split file_pos "@" with _ -> failwith ("Invalid format : " ^ file_pos) in let file = unquote file in let pos, smode = try ExtString.String.split pos "@" with _ -> pos,"" in + let activate_special_display_mode () = + Common.define com Define.NoCOpt; + Parser.use_parser_resume := false + in let mode = match smode with | "position" -> - Common.define com Define.NoCOpt; + activate_special_display_mode(); DMPosition | "usage" -> - Common.define com Define.NoCOpt; + activate_special_display_mode(); DMUsage | "toplevel" -> - Common.define com Define.NoCOpt; + activate_special_display_mode(); DMToplevel | _ -> DMDefault diff --git a/parser.ml b/parser.ml index a8ccaf6a559..c6881403b99 100755 --- a/parser.ml +++ b/parser.ml @@ -70,6 +70,7 @@ let unquote_ident f = let cache = ref (DynArray.create()) let last_doc = ref None let use_doc = ref false +let use_parser_resume = ref true let resume_display = ref null_pos let in_macro = ref false @@ -85,7 +86,7 @@ let display e = raise (Display e) let is_resuming p = let p2 = !resume_display in - p.pmax = p2.pmin && Common.unique_full_path p.pfile = p2.pfile + p.pmax = p2.pmin && !use_parser_resume && Common.unique_full_path p.pfile = p2.pfile let set_resume p = resume_display := { p with pfile = Common.unique_full_path p.pfile }