let add_selection project set =
let add_selection prev selection =
let kf = !Slicing.Select.get_function selection in
let r = match prev with
None -> !Slicing.Request.apply_all_internal project ; Some (kf)
| Some prev_kf -> if prev_kf == kf then prev else None
and make_request slice =
!Slicing.Request.add_slice_selection_internal project slice selection
and slices =
let slices = !Slicing.Slice.get_all project kf
in if slices = [] then [!Slicing.Slice.create project kf] else slices
in List.iter make_request slices ;
r
in ignore (Slicing.Select.fold_selects_internal add_selection None set)