Commit Briefs

Omar Polo

always cast ctype' is*() arguments to unsigned char

Almost all had already an unsigned argument (uint8_t or unsigned char), but cast anyway in case the types are changed in the future. ok stsp@



tj

Don't return errno when fread fails

fread doesn't consistently set errno on failure. - On OpenBSD fread sets errno on possible argument overflows, but this doesn't occur on other platforms. rfread doesn't set errno on EOF or other failures. - ferror does not set errno on failure. Returning errno here is possibly inconsistent. Return EIO here instead. ok stsp@


tj

Remove duplicate definitions

ok op@


tj

fread cannot return -1

fread returns a size_t and can never be -1. fread can signal parameter errors on some platforms, but this isn't portable. Remove this check and break out of the loop when fread returns 0. ok op@


tj

diff: handle missing new lines in trailing context

If there is a missing new line in the context we currently miss it and fail to print the warning. This trips up patch and leads to failures. Catch these cases in for unidiff output and add a test case. ok stsp@


tj

diff: Add API for consumers to check if diff is printable

Programs using the libdiff API they can need to know if the diff contained anything that would be printed, or would be empty. Expose the same check that the output functions do as a function call. ok stsp@




Mark Jamsek

improve accuracy of function prototype in hunk headers

Initial diff by Tom Jones with fixes from stsp. ok stsp@


Stefan Sperling

fix updating of line-offsets output info in plain output mode

reviewed by tom jones



Mark Jamsek

sync files from got.git 336075a42a5ae0fa322db734c481d21998e82bb8

ok tb@


Mark Jamsek

fix build broken in previous commit 35eae7fa6b782ae1

Macro line was wrapped without continuation character. ok tb@


Mark Jamsek

remove gcc ternary if extension

ok stsp@



Mark Jamsek

collect line type metadata when generating diff

Similar to line offsets, create an array of line types (i.e., hunk, context, minus, plus) for each line output in the diff. ok stsp@


Mark Jamsek

sync files from got.git 58e31a80da4f4a9e10eaea148672190f35107a47

ok stsp@



Omar Polo

make diff_atom_hash_update private to diff_atomize_text.c

ok stsp@


Omar Polo

reuse diff_atom_hash_update

ok stsp@


Omar Polo

less chatty regress

ok stsp@


Omar Polo

regress: look for the diff prog also inside obj/

ok stsp@


Omar Polo

adjust the expected output so that regress passes again

Note that test015 is still broken on OpenBSD with base patch(1). ok stsp@


Mark Jamsek

ARRAY_LIST allocation optimisation

Rather than realloc in fixed-sized blocks, use the 1.5 * allocated scheme when growing the array. This produces fewer allocations and up to 3x speedup on large diffs. ok stsp@