Commit Briefs
add public APIs to enable chunk byte offset retrieval
Prompted by changes to conflict marker detection in got.git, add chunk offset getters for both left- and right-hand side files. This facilitates more efficient caller diff_result use by directly seeking to a given chunk rather than counting lines. ok stsp@
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@
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@
Remove duplicate definitions
ok op@
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@
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@
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@
improve accuracy of function prototype in hunk headers
Initial diff by Tom Jones with fixes from stsp. ok stsp@
fix updating of line-offsets output info in plain output mode
reviewed by tom jones
fix build broken in previous commit 35eae7fa6b782ae1
Macro line was wrapped without continuation character. ok tb@
remove gcc ternary if extension
ok stsp@
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@
reuse diff_atom_hash_update
ok stsp@
less chatty regress
ok stsp@
adjust the expected output so that regress passes again
Note that test015 is still broken on OpenBSD with base patch(1). ok stsp@