On Thu, Jun 12, 2025 at 12:05 AM Junio C Hamano <gitster@xxxxxxxxx> wrote: > Brad Smith <brad@xxxxxxxxxxxx> writes: > > Building on Solaris I noticed the following two issues with Solaris sed. > > GEN version-def.h > > sed: Missing newline at end of file standard input. > > Perhaps it is this input line it is complaining about. sed works on > text files, and a file that ends in incomplete line was not quite > text. > > -REPLACED=$(printf "%s" "$INPUT" | sed -e "s|@GIT_VERSION@|$GIT_VERSION|" \ > +REPLACED=$(printf "%s\n" "$INPUT" | sed -e "s|@GIT_VERSION@|$GIT_VERSION|" \ > -e "s|@GIT_MAJOR_VERSION@|$GIT_MAJOR_VERSION|" \ > -e "s|@GIT_MINOR_VERSION@|$GIT_MINOR_VERSION|" \ > -e "s|@GIT_MICRO_VERSION@|$GIT_MICRO_VERSION|" \ It's curious that this is using: printf "%s" "$foo"` in the first place. Had it used the simpler: echo "$foo" this sort of problem (forgetting the "\n") would never have occurred. In fact, it seems that f6a2efdc9b (GIT-VERSION-GEN: allow running without input and output files, 2025-01-22), which introduced this problem, also introduced a few similar cases in which the `printf "%s\n"` idiom was employed when a simple `echo` would have sufficed.