diffutils: Incomplete Lines

 
 3 Incomplete Lines
 ******************
 
 When an input file ends in a non-newline character, its last line is
 called an "incomplete line" because its last character is not a newline.
 All other lines are called "full lines" and end in a newline character.
 Incomplete lines do not match full lines unless differences in white
 space are ignored (⇒White Space).
 
    An incomplete line is normally distinguished on output from a full
 line by a following line that starts with '\'.  However, the RCS format
 (⇒RCS) outputs the incomplete line as-is, without any trailing
 newline or following line.  The side by side format normally represents
 incomplete lines as-is, but in some cases uses a '\' or '/' gutter
 marker.  ⇒Side by Side.  The if-then-else line format preserves a
 line's incompleteness with '%L', and discards the newline with '%l'.
 ⇒Line Formats.  Finally, with the 'ed' and forward 'ed' output
 formats (⇒Output Formats) 'diff' cannot represent an incomplete
 line, so it pretends there was a newline and reports an error.
 
    For example, suppose 'F' and 'G' are one-byte files that contain just
 'f' and 'g', respectively.  Then 'diff F G' outputs
 
      1c1
      < f
      \ No newline at end of file
      ---
      > g
      \ No newline at end of file
 
 (The exact message may differ in non-English locales.)  'diff -n F G'
 outputs the following without a trailing newline:
 
      d1 1
      a1 1
      g
 
 'diff -e F G' reports two errors and outputs the following:
 
      1c
      g
      .