Bug 1411004 - ./mach clang-format: Better handling of relative paths r=mystor=mystor
authorSylvestre Ledru <sledru@mozilla.com>
Mon, 30 Oct 2017 18:36:28 +0100
changeset 440083 e1b4f786f584644f186a08a76413679477be99e5
parent 440082 19f207add6c8ba25e25273e807a9fff22fa41b84
child 440084 f472eced43b511e93e738714868eb141de7f5553
push id8114
push userjlorenzo@mozilla.com
push dateThu, 02 Nov 2017 16:33:21 +0000
treeherdermozilla-beta@73e0d89a540f [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmystor
bugs1411004
milestone58.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1411004 - ./mach clang-format: Better handling of relative paths r=mystor=mystor For example, this is addressing the issue: ./mach clang-format -p ./mfbt/ MozReview-Commit-ID: Le8mPTOEfA7
.clang-format-ignore
tools/mach_commands.py
--- a/.clang-format-ignore
+++ b/.clang-format-ignore
@@ -1,136 +1,136 @@
 # Uses the LLVM coding style
-^build/clang-plugin/.*
+build/clang-plugin/.*
 # The two templates cannot be formatted
-^config/gcc-stl-wrapper.template.h
-^config/msvc-stl-wrapper.template.h
-^dom/base/test/.*
-^dom/bindings/test/.*
-^dom/media/gtest/.*
-^gfx/testsd/.*
-^image/test/.*
-^ipc/ipdl/test/.*
-^ipc/testshell/.*
-^js/src/jsapi-tests/.*
+config/gcc-stl-wrapper.template.h
+config/msvc-stl-wrapper.template.h
+dom/base/test/.*
+dom/bindings/test/.*
+dom/media/gtest/.*
+gfx/testsd/.*
+image/test/.*
+ipc/ipdl/test/.*
+ipc/testshell/.*
+js/src/jsapi-tests/.*
 # See bug 1395584
-^js/src/vm/Opcodes.h
+js/src/vm/Opcodes.h
 # Ignored because of bug 1342657
-^layout/style/nsCSSPropAliasList.h
+layout/style/nsCSSPropAliasList.h
 # Ignored because of bug 1342657
-^layout/style/nsCSSPropList.h
-^media/mtransport/test/.*
-^mfbt/tests/.*
-^storage/test/.*
-^testing/gtest/.*
-^tools/profiler/tests/.*
-^uriloader/exthandler/tests/.*
+layout/style/nsCSSPropList.h
+media/mtransport/test/.*
+mfbt/tests/.*
+storage/test/.*
+testing/gtest/.*
+tools/profiler/tests/.*
+uriloader/exthandler/tests/.*
 # JNI code is generated
-^widget/android/GeneratedJNINatives.h
-^widget/android/GeneratedJNIWrappers.cpp
-^widget/android/GeneratedJNIWrappers.h
-^widget/android/fennec/FennecJNINatives.h
-^widget/android/fennec/FennecJNIWrappers.cpp
-^widget/android/fennec/FennecJNIWrappers.h
-^widget/tests/.*
-^xpcom/glue/tests/.*
-^xpcom/tests/.*
+widget/android/GeneratedJNINatives.h
+widget/android/GeneratedJNIWrappers.cpp
+widget/android/GeneratedJNIWrappers.h
+widget/android/fennec/FennecJNINatives.h
+widget/android/fennec/FennecJNIWrappers.cpp
+widget/android/fennec/FennecJNIWrappers.h
+widget/tests/.*
+xpcom/glue/tests/.*
+xpcom/tests/.*
 
 # Generated from ./tools/rewriting/ThirdPartyPaths.txt
-# awk '{print "^"$1".*"}' ./tools/rewriting/ThirdPartyPaths.txt
-^browser/components/translation/cld2/.*
-^browser/extensions/mortar/ppapi/.*
-^db/sqlite3/src/.*
-^extensions/spellcheck/hunspell/src/.*
-^gfx/angle/.*
-^gfx/cairo/.*
-^gfx/graphite2/.*
-^gfx/harfbuzz/.*
-^gfx/ots/.*
-^gfx/qcms/.*
-^gfx/sfntly/.*
-^gfx/skia/.*
-^gfx/vr/openvr/.*
-^gfx/webrender.*
-^gfx/webrender_api.*
-^gfx/ycbcr/.*
-^intl/hyphenation/hyphen/.*
-^intl/icu/.*
-^ipc/chromium/.*
-^js/src/ctypes/libffi/.*
-^js/src/dtoa.c.*
-^js/src/jit/arm64/vixl/.*
-^media/ffvpx/.*
-^media/gmp-clearkey/0.1/openaes/.*
-^media/kiss_fft/.*
-^media/libav/.*
-^media/libcubeb/.*
-^media/libjpeg/.*
-^media/libmkv/.*
-^media/libnestegg/.*
-^media/libogg/.*
-^media/libopus/.*
-^media/libpng/.*
-^media/libsoundtouch/.*
-^media/libspeex_resampler/.*
-^media/libstagefright/.*
-^media/libtheora/.*
-^media/libtremor/.*
-^media/libvorbis/.*
-^media/libvpx/.*
-^media/libyuv/.*
-^media/mtransport/third_party/.*
-^media/openmax_dl/.*
-^media/sphinxbase/.*
-^media/webrtc/signaling/src/sdp/sipcc/.*
-^media/webrtc/trunk/.*
-^mfbt/decimal/.*
-^mfbt/double-conversion/double-conversion/.*
-^mobile/android/geckoview/src/thirdparty/.*
-^mobile/android/thirdparty/.*
-^modules/brotli/.*
-^modules/fdlibm/.*
-^modules/freetype2/.*
-^modules/libbz2/.*
-^modules/libmar/.*
-^modules/pdfium/.*
-^modules/woff2/.*
-^modules/zlib/.*
-^netwerk/sctp/src/.*
-^netwerk/srtp/src/.*
-^nsprpub/.*
-^other-licenses/.*
-^parser/expat/.*
-^security/nss/.*
-^security/sandbox/chromium/.*
-^testing/gtest/gmock/.*
-^testing/gtest/gtest/.*
-^testing/talos/talos/tests/canvasmark/.*
-^testing/talos/talos/tests/dromaeo/.*
-^testing/talos/talos/tests/kraken/.*
-^testing/talos/talos/tests/v8_7/.*
-^third_party/aom/.*
-^third_party/python/blessings/.*
-^third_party/python/configobj/.*
-^third_party/python/futures/.*
-^third_party/python/jsmin/.*
-^third_party/python/mock-*/.*
-^third_party/python/psutil/.*
-^third_party/python/py/.*
-^third_party/python/pyasn1/.*
-^third_party/python/pyasn1-modules/.*
-^third_party/python/PyECC/.*
-^third_party/python/pytest/.*
-^third_party/python/pytoml/.*
-^third_party/python/pyyaml/.*
-^third_party/python/redo/.*
-^third_party/python/requests/.*
-^third_party/python/rsa/.*
-^third_party/python/six/.*
-^third_party/python/which/.*
-^third_party/rust/.*
-^toolkit/components/jsoncpp/.*
-^toolkit/components/lz4/.*
-^toolkit/components/protobuf/.*
-^toolkit/components/url-classifier/chromium/.*
-^toolkit/components/url-classifier/protobuf/.*
-^toolkit/crashreporter/google-breakpad/.*
-^tools/fuzzing/libfuzzer.*
+# awk '{print ""$1".*"}' ./tools/rewriting/ThirdPartyPaths.txt
+browser/components/translation/cld2/.*
+browser/extensions/mortar/ppapi/.*
+db/sqlite3/src/.*
+extensions/spellcheck/hunspell/src/.*
+gfx/angle/.*
+gfx/cairo/.*
+gfx/graphite2/.*
+gfx/harfbuzz/.*
+gfx/ots/.*
+gfx/qcms/.*
+gfx/sfntly/.*
+gfx/skia/.*
+gfx/vr/openvr/.*
+gfx/webrender.*
+gfx/webrender_api.*
+gfx/ycbcr/.*
+intl/hyphenation/hyphen/.*
+intl/icu/.*
+ipc/chromium/.*
+js/src/ctypes/libffi/.*
+js/src/dtoa.c.*
+js/src/jit/arm64/vixl/.*
+media/ffvpx/.*
+media/gmp-clearkey/0.1/openaes/.*
+media/kiss_fft/.*
+media/libav/.*
+media/libcubeb/.*
+media/libjpeg/.*
+media/libmkv/.*
+media/libnestegg/.*
+media/libogg/.*
+media/libopus/.*
+media/libpng/.*
+media/libsoundtouch/.*
+media/libspeex_resampler/.*
+media/libstagefright/.*
+media/libtheora/.*
+media/libtremor/.*
+media/libvorbis/.*
+media/libvpx/.*
+media/libyuv/.*
+media/mtransport/third_party/.*
+media/openmax_dl/.*
+media/sphinxbase/.*
+media/webrtc/signaling/src/sdp/sipcc/.*
+media/webrtc/trunk/.*
+mfbt/decimal/.*
+mfbt/double-conversion/double-conversion/.*
+mobile/android/geckoview/src/thirdparty/.*
+mobile/android/thirdparty/.*
+modules/brotli/.*
+modules/fdlibm/.*
+modules/freetype2/.*
+modules/libbz2/.*
+modules/libmar/.*
+modules/pdfium/.*
+modules/woff2/.*
+modules/zlib/.*
+netwerk/sctp/src/.*
+netwerk/srtp/src/.*
+nsprpub/.*
+other-licenses/.*
+parser/expat/.*
+security/nss/.*
+security/sandbox/chromium/.*
+testing/gtest/gmock/.*
+testing/gtest/gtest/.*
+testing/talos/talos/tests/canvasmark/.*
+testing/talos/talos/tests/dromaeo/.*
+testing/talos/talos/tests/kraken/.*
+testing/talos/talos/tests/v8_7/.*
+third_party/aom/.*
+third_party/python/blessings/.*
+third_party/python/configobj/.*
+third_party/python/futures/.*
+third_party/python/jsmin/.*
+third_party/python/mock-*/.*
+third_party/python/psutil/.*
+third_party/python/py/.*
+third_party/python/pyasn1/.*
+third_party/python/pyasn1-modules/.*
+third_party/python/PyECC/.*
+third_party/python/pytest/.*
+third_party/python/pytoml/.*
+third_party/python/pyyaml/.*
+third_party/python/redo/.*
+third_party/python/requests/.*
+third_party/python/rsa/.*
+third_party/python/six/.*
+third_party/python/which/.*
+third_party/rust/.*
+toolkit/components/jsoncpp/.*
+toolkit/components/lz4/.*
+toolkit/components/protobuf/.*
+toolkit/components/url-classifier/chromium/.*
+toolkit/components/url-classifier/protobuf/.*
+toolkit/crashreporter/google-breakpad/.*
+tools/fuzzing/libfuzzer.*
--- a/tools/mach_commands.py
+++ b/tools/mach_commands.py
@@ -299,17 +299,18 @@ class FormatProvider(MachCommandBase):
 
     def generate_path_list(self, paths):
         pathToThirdparty = os.path.join(self.topsrcdir, self._format_ignore_file)
         ignored_dir = []
         for line in open(pathToThirdparty):
             # Remove comments and empty lines
             if line.startswith('#') or len(line.strip()) == 0:
                 continue
-            ignored_dir.append(line.rstrip())
+            # The regexp is to make sure we are managing relative paths
+            ignored_dir.append("^[\./]*" + line.rstrip())
 
         # Generates the list of regexp
         ignored_dir_re = '(%s)' % '|'.join(ignored_dir)
         extensions = self._format_include_extensions
 
         path_list = []
         for f in paths:
             if re.match(ignored_dir_re, f):