#!/bin/bash # `unicode_lint.sh' determines whether source files under the ./lib/, ./tests/ and ./programs/ directories # contain Unicode characters, and fails if any do. # # See https://github.com/lz4/lz4/issues/1018 echo "Ensure no unicode character is present in source files *.{c,h}" pass=true # Scan ./lib/ for Unicode in source (*.c, *.h) files echo "Scanning lib/" result=$( find ./lib/ -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \; ) if [[ $result ]]; then echo "$result" pass=false fi # Scan ./programs/ for Unicode in source (*.c, *.h) files echo "Scanning programs/" result=$( find ./programs/ -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \; ) if [[ $result ]]; then echo "$result" pass=false fi # Scan ./tests/ for Unicode in source (*.c, *.h) files echo "Scanning tests/" result=$( find ./tests/ -regex '.*\.\(c\|h\)$' -exec grep -P -n "[^\x00-\x7F]" {} \; -exec echo "{}: FAIL" \; ) if [[ $result ]]; then echo "$result" pass=false fi if [ "$pass" = true ]; then echo "All tests successful: no unicode character detected" echo "Result: PASS" exit 0 else echo "Result: FAIL" exit 1 fi