Remove trailing space characters (#1256)

Also add two newlines

(rebased from `aaronfranke/formatting`)

resolves #1220

Co-authored-by: Aaron Franke <arnfranke@yahoo.com>
diff --git a/.clang-tidy b/.clang-tidy
index be3d06a..99e914d 100644
--- a/.clang-tidy
+++ b/.clang-tidy
@@ -4,7 +4,7 @@
 HeaderFilterRegex: ''
 AnalyzeTemporaryDtors: false
 FormatStyle:     none
-CheckOptions:    
+CheckOptions:
   - key:             modernize-use-using.IgnoreMacros
     value:           '0'
 ...
diff --git a/.travis_scripts/run-clang-format.sh b/.travis_scripts/run-clang-format.sh
index 9197284..ded76aa 100755
--- a/.travis_scripts/run-clang-format.sh
+++ b/.travis_scripts/run-clang-format.sh
@@ -1,4 +1,4 @@
 #!/usr/bin/env bash
 
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
-python $DIR/run-clang-format.py -r $DIR/../src/**/ $DIR/../include/**/
\ No newline at end of file
+python $DIR/run-clang-format.py -r $DIR/../src/**/ $DIR/../include/**/
diff --git a/LICENSE b/LICENSE
index 89280a6..c41a1d1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,25 +1,25 @@
-The JsonCpp library's source code, including accompanying documentation, 
+The JsonCpp library's source code, including accompanying documentation,
 tests and demonstration applications, are licensed under the following
 conditions...
 
-Baptiste Lepilleur and The JsonCpp Authors explicitly disclaim copyright in all 
-jurisdictions which recognize such a disclaimer. In such jurisdictions, 
+Baptiste Lepilleur and The JsonCpp Authors explicitly disclaim copyright in all
+jurisdictions which recognize such a disclaimer. In such jurisdictions,
 this software is released into the Public Domain.
 
 In jurisdictions which do not recognize Public Domain property (e.g. Germany as of
 2010), this software is Copyright (c) 2007-2010 by Baptiste Lepilleur and
 The JsonCpp Authors, and is released under the terms of the MIT License (see below).
 
-In jurisdictions which recognize Public Domain property, the user of this 
-software may choose to accept it either as 1) Public Domain, 2) under the 
-conditions of the MIT License (see below), or 3) under the terms of dual 
+In jurisdictions which recognize Public Domain property, the user of this
+software may choose to accept it either as 1) Public Domain, 2) under the
+conditions of the MIT License (see below), or 3) under the terms of dual
 Public Domain/MIT License conditions described here, as they choose.
 
 The MIT License is about as close to Public Domain as a license can get, and is
 described in clear, concise terms at:
 
    http://en.wikipedia.org/wiki/MIT_License
-   
+
 The full text of the MIT License follows:
 
 ========================================================================
diff --git a/devtools/antglob.py b/devtools/antglob.py
index 9843765..bd2d7ae 100644
--- a/devtools/antglob.py
+++ b/devtools/antglob.py
@@ -146,7 +146,7 @@
                     entry_type = is_file and FILE_LINK or DIR_LINK
                 else:
                     entry_type = is_file and FILE or DIR
-##                print '=> type: %d' % entry_type, 
+##                print '=> type: %d' % entry_type,
                 if (entry_type & entry_type_filter) != 0:
 ##                    print ' => KEEP'
                     yield os.path.join(dir_path, entry)
diff --git a/devtools/fixeol.py b/devtools/fixeol.py
index 45252a0..11e1ce2 100644
--- a/devtools/fixeol.py
+++ b/devtools/fixeol.py
@@ -32,8 +32,8 @@
         if verbose:
             print(is_dry_run and ' NEED FIX' or ' FIXED')
     return True
-##    
-##    
+##
+##
 ##
 ##def _do_fix(is_dry_run = True):
 ##    from waftools import antglob
diff --git a/devtools/licenseupdater.py b/devtools/licenseupdater.py
index 36bdb5c..d9b662e 100644
--- a/devtools/licenseupdater.py
+++ b/devtools/licenseupdater.py
@@ -20,7 +20,7 @@
       dry_run: if True, just print the path of the file that would be updated,
                but don't change it.
       show_diff: if True, print the path of the file that would be modified,
-                 as well as the change made to the file. 
+                 as well as the change made to the file.
     """
     with open(path, 'rt') as fin:
         original_text = fin.read().replace('\r\n','\n')
@@ -51,7 +51,7 @@
       dry_run: if True, just print the path of the file that would be updated,
                but don't change it.
       show_diff: if True, print the path of the file that would be modified,
-                 as well as the change made to the file. 
+                 as well as the change made to the file.
     """
     from devtools import antglob
     prune_dirs = antglob.prune_dirs + 'scons-local* ./build* ./libs ./dist'
diff --git a/doxybuild.py b/doxybuild.py
index 862c1f4..254ab71 100644
--- a/doxybuild.py
+++ b/doxybuild.py
@@ -46,7 +46,7 @@
     with open(sourcefile, 'r') as f:
         contents = f.read()
     for (k,v) in list(dict.items()):
-        v = v.replace('\\','\\\\') 
+        v = v.replace('\\','\\\\')
         contents = re.sub(k, v, contents)
     with open(targetfile, 'w') as f:
         f.write(contents)
@@ -158,7 +158,7 @@
     Generates doxygen documentation in build/doxygen.
     Optionally makes a tarball of the documentation to dist/.
 
-    Must be started in the project top directory.    
+    Must be started in the project top directory.
     """
     from optparse import OptionParser
     parser = OptionParser(usage=usage)
diff --git a/example/README.md b/example/README.md
index b1ae4c8..92b925c 100644
--- a/example/README.md
+++ b/example/README.md
@@ -1,8 +1,8 @@
-***NOTE*** 
+***NOTE***
 
 If you get linker errors about undefined references to symbols that involve types in the `std::__cxx11` namespace or the tag
 `[abi:cxx11]` then it probably indicates that you are trying to link together object files that were compiled with different
-values for the _GLIBCXX_USE_CXX11_ABI marco. This commonly happens when linking to a third-party library that was compiled with 
+values for the _GLIBCXX_USE_CXX11_ABI marco. This commonly happens when linking to a third-party library that was compiled with
 an older version of GCC. If the third-party library cannot be rebuilt with the new ABI, then you need to recompile your code with
 the old ABI,just like:
 **g++ stringWrite.cpp -ljsoncpp -std=c++11 -D_GLIBCXX_USE_CXX11_ABI=0 -o stringWrite**
diff --git a/test/data/legacy_test_array_06.json b/test/data/legacy_test_array_06.json
index 7f6c516..1fda03b 100644
--- a/test/data/legacy_test_array_06.json
+++ b/test/data/legacy_test_array_06.json
@@ -1,4 +1,4 @@
-[ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", 
+[ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
   "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
   "ccccccccccccccccccccccc",
   "dddddddddddddddddddddddddddddddddddddddddddddddddddd" ]
\ No newline at end of file
diff --git a/test/data/legacy_test_complex_01.json b/test/data/legacy_test_complex_01.json
index cc0f30f..2c4a869 100644
--- a/test/data/legacy_test_complex_01.json
+++ b/test/data/legacy_test_complex_01.json
@@ -1,17 +1,17 @@
-{ 
+{
 	"count" : 1234,
 	"name" : { "aka" : "T.E.S.T.", "id" : 123987 },
-	"attribute" : [ 
-		"random", 
-		"short", 
-		"bold", 
-		12, 
-		{ "height" : 7, "width" : 64 } 
+	"attribute" : [
+		"random",
+		"short",
+		"bold",
+		12,
+		{ "height" : 7, "width" : 64 }
 		],
-	"test": { "1" : 
-		{ "2" : 
-			{ "3" :  { "coord" : [ 1,2] } 
-			} 
+	"test": { "1" :
+		{ "2" :
+			{ "3" :  { "coord" : [ 1,2] }
+			}
 		}
 	}
 }
diff --git a/test/data/legacy_test_object_03.json b/test/data/legacy_test_object_03.json
index 4fcd4d8..90dba2a 100644
--- a/test/data/legacy_test_object_03.json
+++ b/test/data/legacy_test_object_03.json
@@ -1,4 +1,4 @@
-{ 
+{
 	"count" : 1234,
 	"name" : "test",
 	"attribute" : "random"
diff --git a/test/data/legacy_test_object_04.json b/test/data/legacy_test_object_04.json
index 450762d..9e43ff8 100644
--- a/test/data/legacy_test_object_04.json
+++ b/test/data/legacy_test_object_04.json
@@ -1,3 +1,3 @@
-{ 
+{
 	"" : 1234
 }
diff --git a/test/data/legacy_test_preserve_comment_01.expected b/test/data/legacy_test_preserve_comment_01.expected
index 2797aa7..d6c11b4 100644
--- a/test/data/legacy_test_preserve_comment_01.expected
+++ b/test/data/legacy_test_preserve_comment_01.expected
@@ -6,6 +6,6 @@
 /* Comment before 'second'
  */
 .second=2
-/* A comment at 
+/* A comment at
    the end of the file.
  */
diff --git a/test/data/legacy_test_preserve_comment_01.json b/test/data/legacy_test_preserve_comment_01.json
index fabd55d..21b5ea7 100644
--- a/test/data/legacy_test_preserve_comment_01.json
+++ b/test/data/legacy_test_preserve_comment_01.json
@@ -9,6 +9,6 @@
    "second" : 2
 }
 
-/* A comment at 
+/* A comment at
    the end of the file.
  */
diff --git a/test/pyjsontestrunner.py b/test/pyjsontestrunner.py
index bd749b5..8acdbd2 100644
--- a/test/pyjsontestrunner.py
+++ b/test/pyjsontestrunner.py
@@ -15,7 +15,7 @@
 if len(sys.argv) != 2:
     print("Usage: %s input-json-file", sys.argv[0])
     sys.exit(3)
-    
+
 input_path = sys.argv[1]
 base_path = os.path.splitext(input_path)[0]
 actual_path = base_path + '.actual'
@@ -23,7 +23,7 @@
 rewrite_actual_path = base_path + '.actual-rewrite'
 
 def valueTreeToString(fout, value, path = '.'):
-    ty = type(value) 
+    ty = type(value)
     if ty  is types.DictType:
         fout.write('%s={}\n' % path)
         suffix = path[-1] != '.' and '.' or ''
@@ -49,7 +49,7 @@
         fout.write('%s=null\n' % path)
     else:
         assert False and "Unexpected value type"
-        
+
 def parseAndSaveValueTree(input, actual_path):
     root = json.loads(input)
     fout = file(actual_path, 'wt')
@@ -62,7 +62,7 @@
     #rewrite = rewrite[1:-1]  # Somehow the string is quoted ! jsonpy bug ?
     file(rewrite_path, 'wt').write(rewrite + '\n')
     return rewrite
-    
+
 input = file(input_path, 'rt').read()
 root = parseAndSaveValueTree(input, actual_path)
 rewrite = rewriteValueTree(json.write(root), rewrite_path)