1#!/usr/bin/qsh 2# Copyright (C) 2016 and later: Unicode, Inc. and others. 3# License & terms of use: http://www.unicode.org/copyright.html 4# Copyright (C) 2000-2011, International Business Machines 5# Corporation and others. All Rights Reserved. 6# 7# Authors: 8# Ami Fixler 9# Barry Novinger 10# Steven R. Loomis 11# George Rhoten 12# Jason Spieth 13# 14# 15# This script detects if any UTF-8 files were incorrectly converted to EBCDIC, and 16# converts them back. 17 18if [ -z "$QSH_VERSION" ]; 19then 20 QSH=0 21 echo "QSH not detected (QSH_VERSION not set) - just testing." 22else 23 QSH=1 24 #echo "QSH version $QSH_VERSION" 25fi 26export QSH 27 28tar_file=$1 29echo "" 30echo "Determining binary files by BOM ..." 31echo "" 32bin_count=0 33binary_files="" 34# Process BOMs 35 for file in `find ./icu/source/data/unidata \( -name \*.txt -print \)`; do 36 bom8=`od -t x1 -N 3 $file|\ 37 head -n 1|\ 38 cut -c10-18`; 39 #Find a converted UTF-8 BOM 40 echo "file $file bom /${bom8}/" 41 if [ "$bom8" = "57 8b ab" ] 42 then 43 file="`echo $file | cut -d / -f2-`" 44 echo "converting ${file}" 45 if [ `echo $binary_files | wc -w` -lt 200 ] 46 then 47 bin_count=`expr $bin_count + 1` 48 binary_files="$binary_files $file"; 49 else 50 echo "Restoring binary files by BOM ($bin_count)..." 51 rm $binary_files; 52 pax -C 819 -rvf $tar_file $binary_files; 53 echo "Determining binary files by BOM ($bin_count)..." 54 binary_files="$file"; 55 bin_count=`expr $bin_count + 1` 56 fi 57 fi 58 done 59 if [ `echo $binary_files | wc -w` -gt 0 ] 60 then 61 echo restoring 62 rm $binary_files 63 pax -C 819 -rvf $tar_file $binary_files 64 fi 65 66 67 68