let copy_hdr_to_main (doc_settings : t_doc_settings) (par : tr_par_std): tr_par_std = let space : tu_txt_unit = Cu_txt_unit_wysiwyg (Cs_txt_unit_wysiwyg " ") in let lpar : tu_txt_unit = Cu_txt_unit_wysiwyg (Cs_txt_unit_wysiwyg "(") in let rpar : tu_txt_unit = Cu_txt_unit_wysiwyg (Cs_txt_unit_wysiwyg ")") in match special_tag doc_settings par.fld_par_tag_or_id, par.fld_par_hdr, par.fld_par_main with | Some (s : tu_txt_unit), Some (Cs_hdr (Cs_txt_units (h : tu_txt_unit list))), Cs_blks (Cu_blk_txt (Cs_blk_txt (Cs_txt_units (t : tu_txt_unit list)))::tl) -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = Cs_blks (Cu_blk_txt (Cs_blk_txt (Cs_txt_units ( List.concat [[s;space;lpar];h;[rpar;space;space];t])))::tl) } | None, Some (Cs_hdr (Cs_txt_units (h : tu_txt_unit list))), Cs_blks (Cu_blk_txt (Cs_blk_txt (Cs_txt_units (t : tu_txt_unit list)))::tl) -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = Cs_blks (Cu_blk_txt (Cs_blk_txt (Cs_txt_units ( List.concat [h;[space;space];t])))::tl) } | None, None, _ -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = par.fld_par_main } | Some (s : tu_txt_unit), None, Cs_blks (Cu_blk_txt (Cs_blk_txt (Cs_txt_units (t : tu_txt_unit list)))::tl) -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = Cs_blks (Cu_blk_txt (Cs_blk_txt (Cs_txt_units ( List.concat [[s;space;space];t])))::tl) } | Some (s : tu_txt_unit), Some (Cs_hdr (Cs_txt_units (h : tu_txt_unit list))), Cs_blks (blks : tu_blk list) -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = Cs_blks ((Cu_blk_txt (Cs_blk_txt (Cs_txt_units ( List.concat [[s;space;lpar];h;[rpar]]))))::blks) } | None, Some (Cs_hdr (Cs_txt_units (h : tu_txt_unit list))), Cs_blks (blks : tu_blk list) -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = Cs_blks ((Cu_blk_txt (Cs_blk_txt (Cs_txt_units h)))::blks) } | Some (s : tu_txt_unit), None, Cs_blks (blks : tu_blk list) -> { fld_par_tag_or_id = par.fld_par_tag_or_id; fld_par_hdr = par.fld_par_hdr; fld_par_main = Cs_blks ((Cu_blk_txt (Cs_blk_txt (Cs_txt_units [s])))::blks) }