NTactics.rewrite_tac ~dir ~what:(text,prefix_len,what)
~where:(text,prefix_len,where)
;;
+
+let subst_metasenv_and_fix_names s =
+ let u,h,metasenv, subst,o = s.NTacStatus.istatus.NTacStatus.pstatus in
+ let o =
+ NCicUntrusted.map_obj_kind ~skip_body:true
+ (NCicUntrusted.apply_subst subst []) o
+ in
+ { s with NTacStatus.istatus =
+ { s.NTacStatus.istatus with NTacStatus.pstatus =
+ u,h,NCicUntrusted.apply_subst_metasenv subst metasenv,subst,o}}
+;;
let rec eval_command = {ec_go = fun ~disambiguate_command opts status
(text,prefix_len,cmd) ->
let obj =
prerr_endline "CSC: here we should fix the height!!!";
(uri,height,[],[],
- NCicUntrusted.map_obj_kind (NCicUntrusted.apply_subst subst)
+ NCicUntrusted.map_obj_kind
+ (NCicUntrusted.apply_subst subst [])
obj) in
NCicTypeChecker.typecheck_obj obj;
NCicLibrary.add_obj uri obj;
{ status with
GrafiteTypes.ng_status =
GrafiteTypes.ProofMode
- { NTacStatus.gstatus = ninitial_stack;
- istatus = { NTacStatus.pstatus = obj; lstatus = lexicon_status}}
- }
+ (subst_metasenv_and_fix_names
+ { NTacStatus.gstatus = ninitial_stack;
+ istatus = { NTacStatus.pstatus = obj; lstatus = lexicon_status}})
+ }
in
(match nmenv with
[] ->
| GrafiteTypes.CommandMode _ -> assert false
| GrafiteTypes.ProofMode nstatus ->
let nstatus = eval_ng_tac (text,prefix_len,tac) nstatus in
+ let nstatus = subst_metasenv_and_fix_names nstatus in
let nstatus = eval_ng_punct (text,prefix_len,punct) nstatus in
NTacStatus.pp_tac_status nstatus;
{ status with GrafiteTypes.ng_status= GrafiteTypes.ProofMode nstatus },