userdiff: fix some corner cases in dts regex
commit8da56a484800023a545d7a7c022473f5aa9e720f
authorStephen Boyd <sboyd@kernel.org>
Sun, 20 Oct 2019 18:52:30 +0000 (20 11:52 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 21 Oct 2019 08:44:12 +0000 (21 17:44 +0900)
treee4feb0d793512ff670339b210a12346fade094db
parent3c81760bc66376c3ac69c39475cbe3b13e97e798
userdiff: fix some corner cases in dts regex

While reviewing some dts diffs recently I noticed that the hunk header
logic was failing to find the containing node. This is because the regex
doesn't consider properties that may span multiple lines, i.e.

property = <something>,
   <something_else>;

and it got hung up on comments inside nodes that look like the root node
because they start with '/*'. Add tests for these cases and update the
regex to find them. Maybe detecting the root node is too complicated but
forcing it to be a backslash with any amount of whitespace up to an open
bracket seemed OK. I tried to detect that a comment is in-between the
two parts but I wasn't happy so I just dropped it.

Cc: Rob Herring <robh+dt@kernel.org>
Cc: Frank Rowand <frowand.list@gmail.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Reviewed-by: Johannes Sixt <j6t@kdbg.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t4018/dts-nodes-boolean-prop [new file with mode: 0644]
t/t4018/dts-nodes-multiline-prop [new file with mode: 0644]
t/t4018/dts-root
t/t4018/dts-root-comment [new file with mode: 0644]
userdiff.c