• J
    drop odd return value semantics from userdiff_config · 6680a087
    Jeff King 提交于
    When the userdiff_config function was introduced in be58e70d
    (diff: unify external diff and funcname parsing code,
    2008-10-05), it used a return value convention unlike any
    other config callback. Like other callbacks, it used "-1" to
    signal error. But it returned "1" to indicate that it found
    something, and "0" otherwise; other callbacks simply
    returned "0" to indicate that no error occurred.
    
    This distinction was necessary at the time, because the
    userdiff namespace overlapped slightly with the color
    configuration namespace. So "diff.color.foo" could mean "the
    'foo' slot of diff coloring" or "the 'foo' component of the
    "color" userdiff driver". Because the color-parsing code
    would die on an unknown color slot, we needed the userdiff
    code to indicate that it had matched the variable, letting
    us bypass the color-parsing code entirely.
    
    Later, in 8b8e8624 (ignore unknown color configuration,
    2009-12-12), the color-parsing code learned to silently
    ignore unknown slots. This means we no longer need to
    protect userdiff-matched variables from reaching the
    color-parsing code.
    
    We can therefore change the userdiff_config calling
    convention to a more normal one. This drops some code from
    each caller, which is nice. But more importantly, it reduces
    the cognitive load for readers who may wonder why
    userdiff_config is unlike every other config callback.
    
    There's no need to add a new test confirming that this
    works; t4020 already contains a test that sets
    diff.color.external.
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    6680a087
diff.c 124.6 KB