git/t/t4018
Stephen Boyd 8da56a4848 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>
2019-10-21 17:44:12 +09:00
..
cpp-c++-function
cpp-class-constructor
cpp-class-constructor-mem-init
cpp-class-definition
cpp-class-definition-derived
cpp-class-destructor
cpp-function-returning-global-type
cpp-function-returning-nested
cpp-function-returning-pointer
cpp-function-returning-reference
cpp-gnu-style-function
cpp-namespace-definition
cpp-operator-definition
cpp-skip-access-specifiers
cpp-skip-comment-block
cpp-skip-labels
cpp-struct-definition
cpp-struct-single-line
cpp-template-function-definition
cpp-union-definition
cpp-void-c-function
css-brace-in-col-1
css-colon-eol
css-colon-selector
css-common
css-long-selector-list
css-prop-sans-indent
css-short-selector-list
css-trailing-space
custom1-pattern
custom2-match-to-end-of-line
custom3-alternation-in-pattern
dts-labels userdiff: add a builtin pattern for dts files 2019-08-21 15:09:34 -07:00
dts-node-unitless userdiff: add a builtin pattern for dts files 2019-08-21 15:09:34 -07:00
dts-nodes userdiff: add a builtin pattern for dts files 2019-08-21 15:09:34 -07:00
dts-nodes-boolean-prop userdiff: fix some corner cases in dts regex 2019-10-21 17:44:12 +09:00
dts-nodes-comment1 userdiff: add a builtin pattern for dts files 2019-08-21 15:09:34 -07:00
dts-nodes-comment2 userdiff: add a builtin pattern for dts files 2019-08-21 15:09:34 -07:00
dts-nodes-multiline-prop userdiff: fix some corner cases in dts regex 2019-10-21 17:44:12 +09:00
dts-reference userdiff: add a builtin pattern for dts files 2019-08-21 15:09:34 -07:00
dts-root userdiff: fix some corner cases in dts regex 2019-10-21 17:44:12 +09:00
dts-root-comment userdiff: fix some corner cases in dts regex 2019-10-21 17:44:12 +09:00
fountain-scene
golang-complex-function
golang-func
golang-interface
golang-long-func
golang-struct
java-class-member-function
matlab-class-definition userdiff: add Octave 2019-05-19 10:45:28 +09:00
matlab-function userdiff: add Octave 2019-05-19 10:45:28 +09:00
matlab-octave-section-1 userdiff: add Octave 2019-05-19 10:45:28 +09:00
matlab-octave-section-2 userdiff: add Octave 2019-05-19 10:45:28 +09:00
matlab-section userdiff: add Octave 2019-05-19 10:45:28 +09:00
perl-skip-end-of-heredoc
perl-skip-forward-decl
perl-skip-sub-in-pod
perl-sub-definition
perl-sub-definition-kr-brace
php-abstract-class userdiff: support new keywords in PHP hunk header 2018-07-06 14:59:28 -07:00
php-class
php-final-class userdiff: support new keywords in PHP hunk header 2018-07-06 14:59:28 -07:00
php-function
php-interface userdiff: support new keywords in PHP hunk header 2018-07-06 14:59:28 -07:00
php-method
php-trait userdiff: support new keywords in PHP hunk header 2018-07-06 14:59:28 -07:00
README
rust-fn userdiff: add built-in pattern for rust 2019-05-17 12:54:02 +09:00
rust-impl userdiff: add built-in pattern for rust 2019-05-17 12:54:02 +09:00
rust-struct userdiff: add built-in pattern for rust 2019-05-17 12:54:02 +09:00
rust-trait userdiff: add built-in pattern for rust 2019-05-17 12:54:02 +09:00

How to write RIGHT test cases
=============================

Insert the word "ChangeMe" (exactly this form) at a distance of
at least two lines from the line that must appear in the hunk header.

The text that must appear in the hunk header must contain the word
"right", but in all upper-case, like in the title above.

To mark a test case that highlights a malfunction, insert the word
BROKEN in all lower-case somewhere in the file.

This text is a bit twisted and out of order, but it is itself a
test case for the default hunk header pattern. Know what you are doing
if you change it.

BTW, this tests that the head line goes to the hunk header, not the line
of equal signs.