From 236ac5fcb19a88c43de00e2ab309f57cb3e2d912 Mon Sep 17 00:00:00 2001 From: John Marino Date: Mon, 17 Aug 2015 00:54:44 +0200 Subject: [PATCH] locale gen tools: Set all UTF-8 to same rollup CTYPE The CLDR CTYPE definitions are still used for non-UTF8 encodings, but all UTF-8 locales now share a single "master" CTYPE that knows all reasonable character sets. --- tools/tools/locale/etc/charmaps.xml | 3 - tools/tools/locale/tools/cldr2def.pl | 84 ++++++++++++---------------- tools/tools/locale/tools/finalize | 31 +++++----- 3 files changed, 49 insertions(+), 69 deletions(-) diff --git a/tools/tools/locale/etc/charmaps.xml b/tools/tools/locale/etc/charmaps.xml index a4ea28452f..052ccefdf7 100644 --- a/tools/tools/locale/etc/charmaps.xml +++ b/tools/tools/locale/etc/charmaps.xml @@ -181,9 +181,6 @@ - ) { - if ((/^comment_char\s/) || (/^escape_char\s/)){ - push @lines, $_; - } - if (/^LC_CTYPE/../^END LC_CTYPE/) { - push @lines, $_; - } + push @lines, $_; } close(FIN); $shex = sha1_hex(join("\n", @lines)); $languages{$l}{$f}{data}{$c}{$DEFENCODING} = $shex; $hashtable{$shex}{"${l}_${f}_${c}.$DEFENCODING"} = 1; open(FOUT, ">$TYPE.draft/$actfile.$DEFENCODING.src"); - print FOUT <\n"; - print FOUT "print\t\n\n"; + @lines = (); + open(FIN, "$filename"); + while () { + if ((/^comment_char\s/) || (/^escape_char\s/)){ + push @lines, $_; + } + if (/^LC_CTYPE/../^END LC_CTYPE/) { + push @lines, $_; } } - next if ($category eq 'print'); - print FOUT $line; - } - close(FOUT); - - foreach my $enc (sort keys(%{$languages{$l}{$f}{data}{$c}})) { - next if ($enc eq $DEFENCODING); - copy ("$TYPE.draft/$actfile.$DEFENCODING.src", - "$TYPE.draft/$actfile.$enc.src"); + close(FIN); $uhex = sha1_hex(join("\n", @lines) . $enc); $languages{$l}{$f}{data}{$c}{$enc} = $uhex; $hashtable{$uhex}{"${l}_${f}_${c}.$enc"} = 1; + open(FOUT, ">$TYPE.draft/$actfile.$enc.src"); + print FOUT < ${TEMP2} -linx=$(cat ${TEMP2} | awk '!/UTF-8/ { print $2 }') -for original in ${linx} +keep=$(awk '{ if ($1 != last1) print $2; last1 = $1; }' ${TEMP2}) +for original in ${keep} do -linkhash=$(fgrep "${original}" ${TEMP2} | awk '{ print $1 }') -utf8file=$(fgrep "${linkhash}" ${TEMP2} | fgrep 'UTF-8' | awk '{ print $2 }') -ln -s ${utf8file} ${new}/${original} + cp ${old}/${original} ${new}/ done +linx=$(awk '{ if ($1 == last1) { print "ln -s " last2 " ${new}/" $2 ";"} \ +else {last1 = $1; last2 = $2}}' ${TEMP2}) +eval $linx rm -f ${TEMP2} /usr/bin/sed -E -e 's/[ ]+/ /g' \ ${CLDRDIR}/posix/UTF-8.cm \ @@ -80,6 +69,14 @@ fi echo map ${map} converted. done +else # below is everything but ctypedef + +keep=$(cat ${TEMP} | awk '{ print $2 }') +for original in ${keep} +do + cp ${old}/${original}.src ${new}/ +done + fi grep -v '^LOCALES+' ${old}/Makefile | awk "${AWKCMD}" > ${new}/Makefile -- 2.41.0