• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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