Possible bug with --word-diff=porcelain

From: Eli Barzilay <hidden>
Date: 2016-06-15 22:51:08

It looks like there are cases where a newline is omitted in the output
of --word-diff=porcelain:

  $ cat A
  A foo B
  zzzzzzzz
  C
  $ cat B
  A bar B
  C
  $ git diff --word-diff=porcelain A B
  diff --git a/A b/B
  index dfadf3e..3e2f1ba 100644
  --- a/A
  +++ b/B
  @@ -1,3 +1,2 @@
   A 
  -foo
  +bar
    B                        /// right
  -zzzzzzzz                  \\\ here
  ~
   C
  ~

I'd expect the output to be

  --- a/A
  +++ b/B
  @@ -1,3 +1,2 @@
   A 
  -foo
  +bar
    B
  ~
  -zzzzzzzz
  ~
   C
  ~

Actually it looks like the problem is not just in the porcelain
output: I see it with other formats too, like the plain one:

  diff --git a/A b/B
  index dfadf3e..3e2f1ba 100644
  --- a/A
  +++ b/B
  @@ -1,3 +1,2 @@
  A [-foo-]{+bar+} B[-zzzzzzzz-]
  C

and with --word-diff=color:

   diff --git a/A b/B
   index dfadf3e..3e2f1ba 100644
   --- a/A
   +++ b/B
   @@ -1,3 +1,2 @@
   A foobar Bzzzzzzzz
   C

(where the colors are correct, but the newline is missing)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help