Re: [PATCH v3] userdiff.c & doc/gitattributes.txt: add Octave
From: Junio C Hamano <hidden>
Date: 2019-05-15 05:36:06
Boxuan Li [off-list ref] writes:
Octave pattern is almost the same as matlab. Besides, octave also uses '%%%' or '##' to begin code sections.
My reading of the above hiccupped at around "Besides, octave also uses...". Checking the differences in patterns, I think ... the same as matlab, except that '%%%' and '##' can also be used to begin code sections, in addition to '%%' that is understood by both. may be easier to read. It makes it clear that you'd want to stay away from %%% and ## if you want to be compatible. Thanks.
quoted hunk
Signed-off-by: Boxuan Li <redacted> --- Update from v2: fix indentation --- 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..7d07b82116 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. In addition, Octave + * supports '##' and '%%%' for code sections */ + "^[[: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"