Octave pattern is almost the same as matlab, except that '%%%' and '##' can also be used to begin code sections, in addition to '%%' that is understood by both. Signed-off-by: Boxuan Li <liboxuan@xxxxxxxxxxxxxx> --- Thanks to all the reviewers above, this is the fourth version: v1: use matlab pattern for octave v2: add a new octave pattern v3: fix indentation problem of v2 v4: improve doc and commit message --- Documentation/gitattributes.txt | 2 ++ userdiff.c | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/Documentation/gitattributes.txt b/Documentation/gitattributes.txt index 4fb20cd0e9..45374c7dd3 100644 --- a/Documentation/gitattributes.txt +++ b/Documentation/gitattributes.txt @@ -821,6 +821,8 @@ patterns are available: - `matlab` suitable for source code in the MATLAB language. +- `octave` suitable for source code in the Octave language. + - `objc` suitable for source code in the Objective-C language. - `pascal` suitable for source code in the Pascal/Delphi language. diff --git a/userdiff.c b/userdiff.c index 3a78fbf504..1127a4c6b1 100644 --- a/userdiff.c +++ b/userdiff.c @@ -60,6 +60,11 @@ PATTERNS("java", PATTERNS("matlab", "^[[:space:]]*((classdef|function)[[:space:]].*)$|^%%[[:space:]].*$", "[a-zA-Z_][a-zA-Z0-9_]*|[-+0-9.e]+|[=~<>]=|\\.[*/\\^']|\\|\\||&&"), +PATTERNS("octave", + /* Mostly the same as matlab, except that '%%%' and '##' can also be used + * to begin code sections, in addition to '%%' that is understood by both. */ + "^[[:space:]]*((classdef|function)[[:space:]].*)$|^(%%%?|##)[[:space:]].*$", + "[a-zA-Z_][a-zA-Z0-9_]*|[-+0-9.e]+|[=~<>]=|\\.[*/\\^']|\\|\\||&&"), PATTERNS("objc", /* Negate C statements that can look like functions */ "!^[ \t]*(do|for|if|else|return|switch|while)\n" -- 2.21.0.777.g83232e3864