No newline at end of file

おお、diff の「No newline at end of file」はエラーメッセージの類ではないのか。はずい。
Cygwin にて実験。

% echo aa > a
% echo -n aa > b
% LANG=C diff -u a b
--- a   2007-01-18 23:14:32.078125000 -0500
+++ b   2007-01-18 23:14:36.437500000 -0500
@@ -1 +1 @@
-aa
+aa
\ No newline at end of file
% LANG=ja_JP.UTF-8 diff -u a b
--- a   2007-01-18 23:14:32.078125000 -0500
+++ b   2007-01-18 23:14:36.437500000 -0500
@@ -1 +1 @@
-aa
+aa
\ ファイル末尾に改行がありません 
% LANG=ja_JP.UTF-8 diff -u a b | patch a
patching file a

stderr じゃなくて stdout に出ているあたり確かに diff の出力の一部といえば一部なんだけど、locale にしたがって出力が変化しているあたり、警告メッセージくらいの意味合いではあるかも。必要なのは先頭の「\ 」の部分だけっぽい。