• John Keeping's avatar
    difftool: always honor fatal error exit codes · 45a4f5d9
    John Keeping authored
    At the moment difftool's "trust exit code" logic always suppresses the
    exit status of the diff utility we invoke.  This is useful because we
    don't want to exit just because diff returned "1" because the files
    differ, but it's confusing if the shell returns an error because the
    selected diff utility is not found.
    
    POSIX specifies 127 as the exit status for "command not found", 126 for
    "command found but is not executable" and values greater than 128 if the
    command terminated because it received a signal [1] and at least bash
    and dash follow this specification, while diff utilities generally use
    "1" for the exit status we want to ignore.
    
    Handle any value of 126 or greater as a special value indicating that
    some form of fatal error occurred.
    
    [1] http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_08_02Signed-off-by: John Keeping's avatarJohn Keeping <john@keeping.me.uk>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    45a4f5d9
git-difftool--helper.sh 2.19 KB