let files_diffs f1 f2 =
let com = Printf.sprintf "diff %s %s"
(Filename.quote f1) (Filename.quote f2)
in
let ic =
try Unix.open_process_in com
with
Unix.Unix_error (e,s1,s2) ->
failwith (Printf.sprintf "%s: %s %s" (Unix.error_message e) s1 s2)
in
let final () = try ignore(Unix.close_process_in ic) with _ -> () in
try_finalize from_channel ic final ()