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)
}