Commits
- Commit:
cd0adebad14a29c84b99b67c6b68a40cff9647e0
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
update diff README; it was heavily outdated
- Commit:
edc37d001aae9784c6d575f08850d49139adf02f
- From:
- Omar Polo <op@omarpolo.com>
- Date:
fix some typos; ok tb@ stsp@
- Commit:
b5a9c15f4d68c06ec3bf839529b3ed2def0a6af6
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
print trailing 'No newline at EOF' message for final chunk only
This makes test 126 pass.
- Commit:
35d04818407d29f2e9de1c0630db561cf783d6fa
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
add a test which triggers redundant 'No newline at end of file' messages
The message appears after each hunk, but should only appear at the
end of the entire diff.
Regression introduced in commit 4125b1eff8d9dfcd961dc70ebbd5d54c97bdc3f6
"diff: handle missing new lines in trailing context"
problem noticed by op@
- Commit:
dc306c6bd88271ab911e205539974da98be82d17
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
back out "improve accuracy of function prototype in hunk headers"
which was commit 8993f42562696079866fc2dec7191877b6cc1f18
This commit introduced a regression where hunk headers would contain
lines taken from below or within a change. Reported by tb@ and sthen@.
There is some confusion around how the -p feature was documented:
-p With unified and context diffs, show with each change the first
40 characters of the last line before the context beginning with
a letter, an underscore or a dollar sign. For C source code
following standard layout conventions, this will show the
prototype of the function the change applies to.
The original behaviour matches "the last line before the context beginning
with a letter ...".
The new (reverted) behaviour sometimes matches "will show the prototype of
the function the change applies to". This did always happen as intended,
as seen when some .c files in the OpenBSD src tree were changed.
The new behaviour was also worse for Makefiles in the OpenBSD ports tree.
Let's revert to the traditional -p behaviour until a better fix is found.
Details:
https://marc.gameoftrees.org/mail/1692696001.69872_0.html
https://marc.info/?l=gameoftrees&m=169269624516330&w=2
ok tb@
- Commit:
f46fa9b5e78156c0360f508336dbe3dfa04b503f
- From:
- Christian Weisgerber <naddy@mips.inka.de>
- Date:
do not treat \r\n line endings as special
Previously, we would go out of our way to handle both \n and \r\n
line endings as equivalent. However, for files with \r\n line
endings, this results in diffs that omit the final \r and therefore
cannot be applied with patch(1) on Unix platforms.
ok stsp
- Commit:
e78a8d73c23ee314fdbdf110d5c55866c9ef9680
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
make diff_chunk_type() public and clarify comment
As discussed with stsp, reword an easily misunderstood comment, and move
diff_chunk_type() into the public diff API to improve caller efficiency.
ok stsp@
- Commit:
f26db7cd2804ebc6a3f81e7e00e008450eb42228
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
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@
- Commit:
1dce05e8f99e9ab3e9229bf59e061ad0201a08e8
- From:
- Omar Polo <op@omarpolo.com>
- Date:
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@
- Commit:
29c010c8648ec861ee463bc8fa8c66a64dd01154
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
c99-only construct is not good on OpenBSD's old gcc; patch by Ted Bullock
- Commit:
674563ab136a2aa34dc4d93043d92235a2ae98ba
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- tj <tj@enoti.me>
- Date:
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@
- Commit:
92698c5e983ce2fa59780f5567cb34283bcf1095
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- tj <tj@enoti.me>
- Date:
Remove duplicate definitions
ok op@
- Commit:
c737b93b775d30d7ec96867c4410e122e6167b95
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- tj <tj@enoti.me>
- Date:
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@
- Commit:
4125b1eff8d9dfcd961dc70ebbd5d54c97bdc3f6
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- tj <tj@enoti.me>
- Date:
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@
- Commit:
9f5da0913af47a525ab2a2422c7911cdb08866d0
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- tj <tj@enoti.me>
- Date:
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@
- Commit:
e1595dc1c75393361878450cc70fcefee131810a
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- Mark Jamsek <mark@jamsek.dev>
- Date:
add regress test for function prototype in hunk header
- Commit:
1edd9c2b609adfa7ed93dbd839b7d683e695feaa
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
sync changes from got.git to implement headers-only mode for plain output
- Commit:
8993f42562696079866fc2dec7191877b6cc1f18
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
improve accuracy of function prototype in hunk headers
Initial diff by Tom Jones with fixes from stsp.
ok stsp@
- Commit:
9230203d371721cf5bde99f526fe40740aea3b21
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
fix updating of line-offsets output info in plain output mode
reviewed by tom jones
- Commit:
810479a563ffd6176105f64cb49f9829d45d36df
- From:
- Stefan Sperling <stsp@stsp.name>
- Date:
sync diff_patience.c from got.git 336075a42a5ae0fa322db734c481d21998e82bb8
- Commit:
1f690ebe65383786882e120daa2cba81a7b7f90e
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
sync files from got.git 336075a42a5ae0fa322db734c481d21998e82bb8
ok tb@
- Commit:
7a38b3a33f8b124c9c01da154dfdf711d328b01d
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
fix build broken in previous commit 35eae7fa6b782ae1
Macro line was wrapped without continuation character.
ok tb@
- Commit:
35eae7fa6b782ae1d000183ef2efc4383dfec4cd
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
remove gcc ternary if extension
ok stsp@
- Commit:
b1aa94aab8c556c9614a18b8e13c6cc8c3005b79
- From:
- Tom Jones <thj@freebsd.org>
- Via:
- Stefan Sperling <stsp@stsp.name>
- Date:
add support for classic diff(1) output; patch by Tom Jones
- Commit:
9343b92549173e00690f24756a633423770f56d7
- From:
- Mark Jamsek <mark@jamsek.dev>
- Date:
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@