method private lastdiff_selected_file selection () =
      let f () =
        match selection with
          [] -> ()
        | cvsi :: _ ->
            match cvsi.Ocvs_types.cvs_status with
              Ocvs_types.Up_to_date
            | Ocvs_types.Locally_added
            | Ocvs_types.Locally_removed
            | Ocvs_types.Needs_checkout
            | Ocvs_types.Needs_Patch
            | Ocvs_types.Unknown ->
                raise (Failure Ocvs_messages.no_diff_to_display)

            | Ocvs_types.Conflicts_on_merge ->
                raise (Failure Ocvs_messages.resolve_conflicts_first)

            | Ocvs_types.Locally_modified
            | Ocvs_types.Needs_Merge ->
                let filename = cvsi.Ocvs_types.cvs_file in
                let (diffs, _ ) = cvs#cvs_diff_file filename in
                Ocamlcvs.Diffs.display_diffs
                  ~title: (filename^" : "^Ocvs_messages.m_last_diff)
                  ~file: filename
                  diffs
      in
      handle_error f () ()