diff --git a/.gitattributes b/.gitattributes
index 7b2913cfbf54b8f646a0385239f7a4ca9f8da0d2..39d58ea0faacbcd847a87f260c91df0724c6daa4 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -2,18 +2,22 @@
 .gitattributes  -export-ignore
 .hooks*          export-ignore
 
+# Custom attribute to mark sources as using our C code style.
+[attr]our-c-style  whitespace=tab-in-indent
+
 /GitSetup        export-ignore
 /*.sh            export-ignore eol=lf
 /*.bash          export-ignore eol=lf
 /.clang-format   export-ignore
 
-*.c              whitespace=tab-in-indent
-*.h              whitespace=tab-in-indent
-*.h.in           whitespace=tab-in-indent
-*.cxx            whitespace=tab-in-indent
-*.hxx            whitespace=tab-in-indent
-*.hxx.in         whitespace=tab-in-indent
-*.txt            whitespace=tab-in-indent
-*.cmake          whitespace=tab-in-indent
+*.c              our-c-style
+*.c.in           our-c-style
+*.cxx            our-c-style
+*.h              our-c-style
+*.h.in           our-c-style
+*.hxx            our-c-style
+*.hxx.in         our-c-style
 
+*.cmake          whitespace=tab-in-indent
 *.rst            whitespace=tab-in-indent conflict-marker-size=79
+*.txt            whitespace=tab-in-indent