| #!/usr/bin/qsh |
| # Copyright (C) 2016 and later: Unicode, Inc. and others. |
| # License & terms of use: http://www.unicode.org/copyright.html |
| # Copyright (C) 2000-2011, International Business Machines |
| # Corporation and others. All Rights Reserved. |
| # |
| # Authors: |
| # Ami Fixler |
| # Barry Novinger |
| # Steven R. Loomis |
| # George Rhoten |
| # Jason Spieth |
| # |
| # |
| # This script detects if any UTF-8 files were incorrectly converted to EBCDIC, and |
| # converts them back. |
| |
| if [ -z "$QSH_VERSION" ]; |
| then |
| QSH=0 |
| echo "QSH not detected (QSH_VERSION not set) - just testing." |
| else |
| QSH=1 |
| #echo "QSH version $QSH_VERSION" |
| fi |
| export QSH |
| |
| tar_file=$1 |
| echo "" |
| echo "Determining binary files by BOM ..." |
| echo "" |
| bin_count=0 |
| binary_files="" |
| # Process BOMs |
| for file in `find ./icu/source/data/unidata \( -name \*.txt -print \)`; do |
| bom8=`od -t x1 -N 3 $file|\ |
| head -n 1|\ |
| cut -c10-18`; |
| #Find a converted UTF-8 BOM |
| echo "file $file bom /${bom8}/" |
| if [ "$bom8" = "57 8b ab" ] |
| then |
| file="`echo $file | cut -d / -f2-`" |
| echo "converting ${file}" |
| if [ `echo $binary_files | wc -w` -lt 200 ] |
| then |
| bin_count=`expr $bin_count + 1` |
| binary_files="$binary_files $file"; |
| else |
| echo "Restoring binary files by BOM ($bin_count)..." |
| rm $binary_files; |
| pax -C 819 -rvf $tar_file $binary_files; |
| echo "Determining binary files by BOM ($bin_count)..." |
| binary_files="$file"; |
| bin_count=`expr $bin_count + 1` |
| fi |
| fi |
| done |
| if [ `echo $binary_files | wc -w` -gt 0 ] |
| then |
| echo restoring |
| rm $binary_files |
| pax -C 819 -rvf $tar_file $binary_files |
| fi |
| |
| |
| |