check_GNU_style.py: Read stdin if file argument is '-'
authorTom de Vries <tom@codesourcery.com>
Mon, 29 May 2017 07:31:02 +0000 (07:31 +0000)
committerTom de Vries <vries@gcc.gnu.org>
Mon, 29 May 2017 07:31:02 +0000 (07:31 +0000)
2017-05-29  Tom de Vries  <tom@codesourcery.com>

* check_GNU_style_lib.py (check_GNU_style_file): Treat file argument as
file handle.  Add and handle file_encoding argument.
* check_GNU_style.py (main): Handle '-' file argument.  Call
check_GNU_style_file with file handle as argument.

From-SVN: r248555

contrib/ChangeLog
contrib/check_GNU_style.py
contrib/check_GNU_style_lib.py

index 582850857a86b168d8c314161d9d3190b4a1f137..d5b390c8c86a0750ae13b0e6ce2e70f313c211e1 100644 (file)
@@ -1,3 +1,10 @@
+2017-05-29  Tom de Vries  <tom@codesourcery.com>
+
+       * check_GNU_style_lib.py (check_GNU_style_file): Treat file argument as
+       file handle.  Add and handle file_encoding argument.
+       * check_GNU_style.py (main): Handle '-' file argument.  Call
+       check_GNU_style_file with file handle as argument.
+
 2017-05-29  Tom de Vries  <tom@codesourcery.com>
 
        * check_GNU_style_lib.py: Use import_pip3 to import pip3 packages.
index 6970ddfe1f4cbb667c5c7d41e1ecbbd1e8f427ab..61faa290fa101521431918d3911ad0c73c9b957d 100755 (executable)
@@ -21,6 +21,7 @@
 # <http://www.gnu.org/licenses/>.  */
 
 import argparse
+import sys
 from check_GNU_style_lib import check_GNU_style_file
 
 def main():
@@ -30,6 +31,13 @@ def main():
         help = 'Display format',
         choices = ['stdio', 'quickfix'])
     args = parser.parse_args()
-    check_GNU_style_file(args.file, args.format)
+    filename = args.file
+    format = args.format
+
+    if filename == '-':
+        check_GNU_style_file(sys.stdin, None, format)
+    else:
+        with open(filename, 'rb') as diff_file:
+            check_GNU_style_file(diff_file, 'utf-8', format)
 
 main()
index d924e68ecbc07c868d6aaf98d2706ab58864d67d..e1031dfcd929678479a381ae518f367192f32b23 100755 (executable)
@@ -223,7 +223,7 @@ class LineLengthTest(unittest.TestCase):
         self.assertEqual(r.console_error,
             self.check.limit * 'a' + error_string(' = 123;'))
 
-def check_GNU_style_file(file, format):
+def check_GNU_style_file(file, file_encoding, format):
     checks = [LineLengthCheck(), SpacesCheck(), TrailingWhitespaceCheck(),
         SentenceSeparatorCheck(), SentenceEndOfCommentCheck(),
         SentenceDotEndCheck(), FunctionParenthesisCheck(),
@@ -231,8 +231,7 @@ def check_GNU_style_file(file, format):
         BracesOnSeparateLineCheck(), TrailinigOperatorCheck()]
     errors = []
 
-    with open(file, 'rb') as diff_file:
-        patch = PatchSet(diff_file, encoding = 'utf-8')
+    patch = PatchSet(file, encoding=file_encoding)
 
     for pfile in patch.added_files + patch.modified_files:
         t = pfile.target_file.lstrip('b/')