I have an issue with GNU-diff which uses
this Gnulib function 'add_exclude_file()'.
A command like:
diff -X exclude new old > x.diff
or
diff --exclude-from=exclude new old > x.diff
Adding some trace in 'diff.c', I see that 'add_exclude_file()'
returns -1 and 'errno = 22' (EINVAL).
But this works:
cat exclude | diff --exclude-from=- new old > x.diff
GNU-diff has not changed in ages WRT to this function.
So I patched 'exclude.c' like this:
--- a/lib/exclude.c 2021-03-17 21:03:14
+++ b/lib/exclude.c 2021-05-24 13:33:05
@@ -683,7 +683,7 @@
if (use_stdin)
in = stdin;
- else if (! (in = fopen (file_name, "re")))
+ else if (! (in = fopen (file_name, "r")))
return -1;
a presto! GNU-diff now works fine. So what is
this mode "re" that fails on Windows?
--
--gv