> This might be unintuitive, but it is specified by POSIX. > > Open > > https://pubs.opengroup.org/onlinepubs/9699919799/ > > and look for "@@". > > "@@-%s+%s@@", <file1 range>, <file2 range> > > Each <range> field shall be of the form: > > "%1d", <beginning line number> > > or: > > "%1d,1", <beginning line number> > > if the range contains exactly one line, and: > > "%1d,%1d", <beginning line number>, <number of lines> > > otherwise. > > If a range is empty, its beginning line number shall be the > number of the line just before the range, or 0 if the empty > range starts the file. > > So a patch that adds lines to an empty file would look like > > $ diff -U0 /dev/null test1 > --- /dev/null 2023-04-29 22:24:54.395999895 -0700 > +++ test1 2023-05-03 14:02:27.718960038 -0700 > @@ -0,0 +1,3 @@ > +A > +B > +C > > just as specified. Note "-0,0" that says "there was no line before > this hunk before this change". That is indeed fairly unintuitive, but I appreciate the detailed response. I shall adapt my scripts. Thanks and best wishes, Lukas