For reference the tool I worked on (gdelta) is about roughly 700 sloc: https://github.com/i404788/gdelta
I also don't see robust error handling in your code, which usually costs lines of code (especially in C) too.
The difference in delta technique is certainly not negligible, as my code still uses Colin Percival's algorithm, while you seem to have settled on something else. It's also important to point out that being "better than xdelta" means pretty much the same as "having more than nothing", because xdelta has already been superseded 20 years ago by bsdiff[1], which in turn would ideally be superseded by my project.
[1]: https://www.daemonology.net/bsdiff/