Unlike diff(1) when producing diffs containing multiple files (with -r), ditto version control systems, gendiff does not emit unified diff headers for each file in the diff. This (especially missing headers between files) causes some compatibility issues, for example with GNU Emacs' diff-mode.el. Fix against rpm.org hg attached.
Created attachment 153308 [details] Emit unified diff headers for compatibility
Do you have an example of the different behavior? Without encyclopaedic knowledge of diff, I find it hard to tell what the changed output would look like. There are also reasons to avoid bash-isms for portability of gendiff.
Which bashisms does the patch in comment 1 introduce? That wasn't intentional. The unified diff headers added by the patch are the "diff ..." lines before each hunk as seen when comparing eg. these: http://koti.welho.com/vskytta/gendiff-before.patch http://koti.welho.com/vskytta/gendiff-after.patch According to my experience, it doesn't really matter exactly what the line between hunks contains as long as it doesn't start with a space, plus or minus (and IIRC eg. GNU Arch generates empty lines there), but this patch mimicks what "diff -r ..." adds itself.
My tired old eyes say thanks! for the examples. So diff-mode.el wants an echo of the diff command that was run, easy enuf, can/will do. The bash-isms are not from your patch, apologies for muttering offhandedly. Too many diff's, so much uglix, and gendiff is just a 21 line loop with a man page.
Commited to rpm.org tree, will be in next release. Thanks for the patch