Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> writes: [jc: redirecting the question to patch author---I am just a messenger] >> diff --git a/userdiff.c b/userdiff.c >> index 3f81a2261c..685fe712aa 100644 >> --- a/userdiff.c >> +++ b/userdiff.c >> @@ -191,6 +191,10 @@ PATTERNS("rust", >> "[a-zA-Z_][a-zA-Z0-9_]*" >> "|[0-9][0-9_a-fA-Fiosuxz]*(\\.([0-9]*[eE][+-]?)?[0-9_fF]*)?" >> "|[-+*\\/<>%&^|=!:]=|<<=?|>>=?|&&|\\|\\||->|=>|\\.{2}=|\\.{3}|::"), >> +PATTERNS("scheme", >> + "^[\t ]*(\\(define-?.*)$", > > The "define-?.*" can be simplified to just "define.*", but looking at > the tests is that the intent? From the tests it looks like "define[- ]" > is what the author wants, unless this is meant to also match > "(definements". > > Has this been tested on some real-world scheme code? E.g. I have guile > installed locally, and it has really large top-level eval-when > blocks. These rules would jump over those to whatever the function above > them is. > >> + /* whitespace separated tokens, but parentheses also can delimit words */ >> + "([^][)(\\}\\{ \t])+"), >> PATTERNS("bibtex", "(@[a-zA-Z]{1,}[ \t]*\\{{0,1}[ \t]*[^ \t\"@',\\#}{~%]*).*$", >> "[={}\"]|[^={}\" \t]+"), >> PATTERNS("tex", "^(\\\\((sub)*section|chapter|part)\\*{0,1}\\{.*)$",