@@ -9,7 +9,23 @@ static int drivers_alloc;
9
9
10
10
#define PATTERNS (name , pattern , word_regex ) \
11
11
{ name, NULL, -1, { pattern, REG_EXTENDED }, word_regex }
12
+ #define IPATTERN (name , pattern , word_regex ) \
13
+ { name, NULL, -1, { pattern, REG_EXTENDED | REG_ICASE }, word_regex }
12
14
static struct userdiff_driver builtin_drivers [] = {
15
+ IPATTERN ("fortran" ,
16
+ "!^([C*]|[ \t]*!)\n"
17
+ "!^[ \t]*MODULE[ \t]+PROCEDURE[ \t]\n"
18
+ "^[ \t]*((END[ \t]+)?(PROGRAM|MODULE|BLOCK[ \t]+DATA"
19
+ "|([^'\" \t]+[ \t]+)*(SUBROUTINE|FUNCTION))[ \t]+[A-Z].*)$" ,
20
+ /* -- */
21
+ "[a-zA-Z][a-zA-Z0-9_]*"
22
+ "|\\.([Ee][Qq]|[Nn][Ee]|[Gg][TtEe]|[Ll][TtEe]|[Tt][Rr][Uu][Ee]|[Ff][Aa][Ll][Ss][Ee]|[Aa][Nn][Dd]|[Oo][Rr]|[Nn]?[Ee][Qq][Vv]|[Nn][Oo][Tt])\\."
23
+ /* numbers and format statements like 2E14.4, or ES12.6, 9X.
24
+ * Don't worry about format statements without leading digits since
25
+ * they would have been matched above as a variable anyway. */
26
+ "|[-+]?[0-9.]+([AaIiDdEeFfLlTtXx][Ss]?[-+]?[0-9.]*)?(_[a-zA-Z0-9][a-zA-Z0-9_]*)?"
27
+ "|//|\\*\\*|::|[/<>=]="
28
+ "|[^[:space:]]|[\x80-\xff]+" ),
13
29
PATTERNS ("html" , "^[ \t]*(<[Hh][1-6][ \t].*>.*)$" ,
14
30
"[^<>= \t]+|[^[:space:]]|[\x80-\xff]+" ),
15
31
PATTERNS ("java" ,
@@ -101,6 +117,7 @@ PATTERNS("csharp",
101
117
{ "default" , NULL , -1 , { NULL , 0 } },
102
118
};
103
119
#undef PATTERNS
120
+ #undef IPATTERN
104
121
105
122
static struct userdiff_driver driver_true = {
106
123
"diff=true" ,
0 commit comments