aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/check_config_h.rb
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/check_config_h.rb')
-rwxr-xr-xscripts/check_config_h.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/scripts/check_config_h.rb b/scripts/check_config_h.rb
new file mode 100755
index 000000000..2619984e4
--- /dev/null
+++ b/scripts/check_config_h.rb
@@ -0,0 +1,47 @@
+#!/usr/bin/env ruby
+#
+# This script verifies that every source includes config.h first.
+# This is very important for consistent Large File Support.
+#
+
+def check_file(file)
+ first = true
+ file.each_line do |line|
+ if line =~ /^\#include\s+(\S+)/ then
+ if $1 == '"config.h"'
+ unless first
+ puts "#{file.path}: config.h included too late"
+ end
+ else
+ if first
+ puts "#{file.path}: config.h missing"
+ end
+ end
+ first = false
+ end
+ end
+end
+
+def check_path(path)
+ File.open(path) do |file|
+ check_file(file)
+ end
+end
+
+if ARGV.empty?
+ Dir["src/*.c"].each do |path|
+ check_path(path)
+ end
+
+ Dir["src/*/*.c"].each do |path|
+ check_path(path)
+ end
+
+ Dir["test/*.c"].each do |path|
+ check_path(path)
+ end
+else
+ ARGV.each do |path|
+ check_path(path)
+ end
+end