From 571b427753f8e469f777fbc1f7d1cbe247f48840 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Sun, 13 Mar 2016 12:20:01 -0700 Subject: [PATCH] Improve diff hunk headers when maintaining Emacs * .gitattributes: Improve diff hunk header support for makefiles, shell scripts, Ada, C, C++, Objective C, HTML, SHTML, XML, Java, Perl, PHP, Python, Ruby, and TeX, all of which are used in Emacs somewhere (sometimes just in test cases). * autogen.sh: Add regexes for makefiles and shell scripts. --- .gitattributes | 46 ++++++++++++++++++++++++++++++++++++++++++++++ autogen.sh | 5 +++++ 2 files changed, 51 insertions(+) diff --git a/.gitattributes b/.gitattributes index 5ccf9a5..13e58a8 100644 --- a/.gitattributes +++ b/.gitattributes @@ -47,6 +47,52 @@ doc/misc/texinfo.tex -whitespace=blank-at-eol *.tiff binary etc/e/eterm-color binary +# Git's builtin diff hunk header styles. +*.ada diff=ada +*.[ch] diff=cpp +*.cc diff=cpp +*.cpp diff=cpp +*.hh diff=cpp +*.for diff=fortran +*.html diff=html +*.shtml diff=html +*.xml diff=html +*.java diff=java +*.m diff=objc +*.perl diff=perl +*.pl diff=perl +*.php diff=php +*.py diff=python +*.rb diff=ruby +*.ruby diff=ruby +*.tex diff=tex + # Hooks for non-default diff hunk headers; see autogen.sh. *.el diff=elisp +*.ac diff=m4 +*.m4 diff=m4 +*.mk diff=make +*[Mm]akefile diff=make +Makefile.in diff=make +*.sh diff=shell *.texi diff=texinfo +# +# Diff hunk header special-case file names. +admin/build-configs diff=perl +admin/charsets/mapconv diff=shell +admin/diff-tar-files diff=shell +admin/make-emacs diff=perl +admin/merge-gnulib diff=shell +admin/merge-pkg-config diff=shell +admin/quick-install-emacs diff=shell +admin/update-copyright diff=shell +admin/update_autogen diff=shell +build-aux/git-hooks/commit-msg diff=shell +build-aux/git-hooks/pre-commit diff=shell +build-aux/gitlog-to-emacslog diff=shell +build-aux/make-info-dir diff=shell +build-aux/move-if-change diff=shell +build-aux/msys-to-w32 diff=shell +build-aux/update-subdirs diff=shell +lib-src/rcs2log diff=shell +/make-dist diff=shell diff --git a/autogen.sh b/autogen.sh index ac728cc..9042465 100755 --- a/autogen.sh +++ b/autogen.sh @@ -281,6 +281,11 @@ git_config () git_config diff.elisp.xfuncname \ '^\(def[^[:space:]]+[[:space:]]+([^()[:space:]]+)' +git_config 'diff.m4.xfuncname' '^((m4_)?define|A._DEFUN(_ONCE)?)\([^),]*' +git_config 'diff.make.xfuncname' \ + '^([$.[:alnum:]_].*:|[[:alnum:]_]+[[:space:]]*([*:+]?[:?]?|!?)=|define .*)' +git_config 'diff.shell.xfuncname' \ + '^([[:space:]]*[[:alpha:]_][[:alnum:]_]*[[:space:]]*\(\)|[[:alpha:]_][[:alnum:]_]*=)' git_config diff.texinfo.xfuncname \ '^@node[[:space:]]+([^,[:space:]][^,]+)' -- 2.5.0