• Show log

    Commit

  • Hash : 5ca3f115
    Author : Patrick Steinhardt
    Date : 2017-11-30T15:12:48

    diff_generate: fix unsetting diff flags
    
    The macro `DIFF_FLAG_SET` can be used to set or unset a flag by
    modifying the diff's bitmask. While the case of setting the flag is
    handled correctly, the case of unsetting the flag was not. Instead of
    inverting the flags, we are inverting the value which is used to decide
    whether we want to set or unset the bits.
    
    The value being used here is a simple `bool` which is `false`. As that
    is being uplifted to `int` when getting the bitwise-complement, we will
    end up retaining all bits inside of the bitmask. As that's only ever
    used to set `GIT_DIFF_IGNORE_CASE`, we were actually always ignoring
    case for generated diffs.
    
    Fix that by instead getting the bitwise-complement of `FLAG`, not `VAL`.