Merge branch 'sb/userdiff-dts'

Device-tree files learned their own userdiff patterns.

* sb/userdiff-dts:
  userdiff: add a builtin pattern for dts files
This commit is contained in:
Junio C Hamano 2019-09-09 12:26:39 -07:00
commit d49c2c3466
14 changed files with 168 additions and 0 deletions

View File

@ -810,6 +810,8 @@ patterns are available:
- `css` suitable for cascading style sheets.
- `dts` suitable for devicetree (DTS) files.
- `fortran` suitable for source code in the Fortran language.
- `fountain` suitable for Fountain documents.

View File

@ -31,6 +31,7 @@ diffpatterns="
cpp
csharp
css
dts
fortran
fountain
golang

9
t/t4018/dts-labels Normal file
View File

@ -0,0 +1,9 @@
/ {
label_1: node1@ff00 {
label2: RIGHT {
vendor,some-property;
ChangeMe = <0x45-30>;
};
};
};

View File

@ -0,0 +1,8 @@
/ {
label_1: node1 {
RIGHT {
prop-array = <1>, <4>;
ChangeMe = <0xffeedd00>;
};
};
};

8
t/t4018/dts-nodes Normal file
View File

@ -0,0 +1,8 @@
/ {
label_1: node1@ff00 {
RIGHT@deadf00,4000 {
#size-cells = <1>;
ChangeMe = <0xffeedd00>;
};
};
};

View File

@ -0,0 +1,8 @@
/ {
label_1: node1@ff00 {
RIGHT@deadf00,4000 /* &a comment */ {
#size-cells = <1>;
ChangeMe = <0xffeedd00>;
};
};
};

View File

@ -0,0 +1,8 @@
/ {
label_1: node1@ff00 {
RIGHT@deadf00,4000 { /* a trailing comment */
#size-cells = <1>;
ChangeMe = <0xffeedd00>;
};
};
};

9
t/t4018/dts-reference Normal file
View File

@ -0,0 +1,9 @@
&label_1 {
TEST = <455>;
};
&RIGHT {
vendor,some-property;
ChangeMe = <0x45-30>;
};

5
t/t4018/dts-root Normal file
View File

@ -0,0 +1,5 @@
/RIGHT { /* Technically just supposed to be a slash */
#size-cells = <1>;
ChangeMe = <0xffeedd00>;
};

View File

@ -303,6 +303,7 @@ test_language_driver bibtex
test_language_driver cpp
test_language_driver csharp
test_language_driver css
test_language_driver dts
test_language_driver fortran
test_language_driver html
test_language_driver java

37
t/t4034/dts/expect Normal file
View File

@ -0,0 +1,37 @@
<BOLD>diff --git a/pre b/post<RESET>
<BOLD>index b6a9051..7803aee 100644<RESET>
<BOLD>--- a/pre<RESET>
<BOLD>+++ b/post<RESET>
<CYAN>@@ -1,32 +1,32 @@<RESET>
/ {<RESET>
<RED>this_handle<RESET><GREEN>HANDLE_2<RESET>: <RED>node<RESET><GREEN>new-node<RESET>@<RED>f00<RESET><GREEN>eeda<RESET> {
compatible = "<RED>mydev<RESET><GREEN>vendor,compat<RESET>";
string-prop = <RED>start<RESET><GREEN>end<RESET>: "hello <RED>world!<RESET><GREEN>world?<RESET>" <RED>end<RESET><GREEN>start<RESET>: ;
<RED>#size-cells<RESET><GREEN>#address-cells<RESET> = <<RED>0+0<RESET><GREEN>0+40<RESET>>;
reg = <<RED>0xf00<RESET><GREEN>0xeeda<RESET>>;
prop = <<GREEN>(<RESET>1<GREEN>)<RESET>>;
prop = <<GREEN>(<RESET>-1e10<GREEN>)<RESET>>;
prop = <(!<RED>3<RESET><GREEN>1<RESET>)>;
prop = <(~<RED>3<RESET><GREEN>1<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>*<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>&<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>*<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>/<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>%<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3+4<RESET><GREEN>1+2<RESET>)>;
prop = <(<RED>3-4<RESET><GREEN>1-2<RESET>)>;
prop = /bits/ <RED>64<RESET><GREEN>32<RESET> <(<RED>3<RESET><GREEN>1<RESET><<<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>>><RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>&<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>^<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>|<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>&&<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>3<RESET><GREEN>1<RESET>||<RED>4<RESET><GREEN>2<RESET>)>;
prop = <(<RED>4?5<RESET><GREEN>1?2<RESET>:3)>;
list = <&<RED>this_handle<RESET><GREEN>HANDLE_2<RESET>>, <0 0 0 <RED>0<RESET><GREEN>1<RESET>>;
};<RESET>
&<RED>phandle<RESET><GREEN>phandle2<RESET> {
<RED>pre-phandle<RESET><GREEN>prop_handle<RESET> = <&<RED>this_handle<RESET><GREEN>HANDLE_2<RESET>>;
};<RESET>
};<RESET>

32
t/t4034/dts/post Normal file
View File

@ -0,0 +1,32 @@
/ {
HANDLE_2: new-node@eeda {
compatible = "vendor,compat";
string-prop = end: "hello world?" start: ;
#address-cells = <0+40>;
reg = <0xeeda>;
prop = <(1)>;
prop = <(-1e10)>;
prop = <(!1)>;
prop = <(~1)>;
prop = <(1*2)>;
prop = <(1&2)>;
prop = <(1*2)>;
prop = <(1/2)>;
prop = <(1%2)>;
prop = <(1+2)>;
prop = <(1-2)>;
prop = /bits/ 32 <(1<<2)>;
prop = <(1>>2)>;
prop = <(1&2)>;
prop = <(1^2)>;
prop = <(1|2)>;
prop = <(1&&2)>;
prop = <(1||2)>;
prop = <(1?2:3)>;
list = <&HANDLE_2>, <0 0 0 1>;
};
&phandle2 {
prop_handle = <&HANDLE_2>;
};
};

32
t/t4034/dts/pre Normal file
View File

@ -0,0 +1,32 @@
/ {
this_handle: node@f00 {
compatible = "mydev";
string-prop = start: "hello world!" end: ;
#size-cells = <0+0>;
reg = <0xf00>;
prop = <1>;
prop = <-1e10>;
prop = <(!3)>;
prop = <(~3)>;
prop = <(3*4)>;
prop = <(3&4)>;
prop = <(3*4)>;
prop = <(3/4)>;
prop = <(3%4)>;
prop = <(3+4)>;
prop = <(3-4)>;
prop = /bits/ 64 <(3<<4)>;
prop = <(3>>4)>;
prop = <(3&4)>;
prop = <(3^4)>;
prop = <(3|4)>;
prop = <(3&&4)>;
prop = <(3||4)>;
prop = <(4?5:3)>;
list = <&this_handle>, <0 0 0 0>;
};
&phandle {
pre-phandle = <&this_handle>;
};
};

View File

@ -23,6 +23,14 @@ IPATTERN("ada",
"[a-zA-Z][a-zA-Z0-9_]*"
"|[-+]?[0-9][0-9#_.aAbBcCdDeEfF]*([eE][+-]?[0-9_]+)?"
"|=>|\\.\\.|\\*\\*|:=|/=|>=|<=|<<|>>|<>"),
PATTERNS("dts",
"!;\n"
/* lines beginning with a word optionally preceded by '&' or the root */
"^[ \t]*((/|&?[a-zA-Z_]).*)",
/* -- */
/* Property names and math operators */
"[a-zA-Z0-9,._+?#-]+"
"|[-+*/%&^|!~]|>>|<<|&&|\\|\\|"),
IPATTERN("fortran",
"!^([C*]|[ \t]*!)\n"
"!^[ \t]*MODULE[ \t]+PROCEDURE[ \t]\n"