Project

General

Profile

Bug #30 » iconv-l.ksh

Gordon Ross, 2011-01-17 07:18 PM

 
1
#!/bin/ksh
2
#
3
# This file and its contents are supplied under the terms of the
4
# Common Development and Distribution License ("CDDL"), version 1.0.
5
# You may only use this file in accordance with the terms of version
6
# 1.0 of the CDDL.
7
#
8
# A full copy of the text of the CDDL should have accompanied this
9
# source.  A copy of the CDDL is also available via the Internet at
10
# http://www.illumos.org/license/CDDL.
11
#
12

    
13
#
14
# Copyright 2010 Nexenta Systems, Inc.  All rights reserved.
15

    
16
# List all iconv(1) codesets
17

    
18
cd /usr/lib/iconv || exit 1
19

    
20
typeset -A all
21

    
22
ls | while read f
23
do
24
    case "$f" in
25
    geniconvtbl.so)
26
	;;
27
    *.so)
28
	IFS="%"
29
	set ${f%.so}
30
	all[$1]=" "
31
	all[$2]=" "
32
	;;
33
    *.t)
34
	IFS="."
35
	set ${f%.t}
36
	all[$1]=" "
37
	all[$2]=" "
38
	;;
39
    *)
40
    	;;
41
    esac
42
done
43

    
44
ls geniconvtbl/binarytables |
45
while read f
46
do
47
    case "$f" in
48
    *.bt)
49
	IFS="%"
50
	set ${f%.bt}
51
	all[$1]=" "
52
	all[$2]=" "
53
	;;
54
    *)
55
    	;;
56
    esac
57
done
58

    
59
# Only store aliases for names we've seen
60

    
61
IFS=" 	"
62
while read a c
63
do
64
    case "$a" in
65
    \#*)
66
	;;
67
    *)
68
	if [ "$c" -a "${all[$c]}" ] ; then
69
		all[$c]="${all[$c]} $a"
70
	fi
71
	;;
72
    esac
73
done < "alias"
74

    
75
cat <<EOF
76
The following are all supported code set names.  All combinations
77
of those names are not necessarily available for the pair of the
78
fromcode-tocode.  Some of those code set names have aliases, which
79
are case-insensitive and shown after the canonical name:
80

    
81
EOF
82

    
83
for i in "${!all[@]}"
84
do
85
	echo "$i ${all[$i]}"
86
done
(2-2/2)