let path_and_context_of_string s =
if Pathname.is_implicit s then
let b = Pathname.basename s in
let d = Pathname.dirname s in
if d <> Pathname.current_dir_name then
let () = Pathname.define_context d [d] in
[s]
else
let include_dirs = Pathname.include_dirs_of d in
List.map (fun include_dir -> include_dir/b) include_dirs
else [s]