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 2011 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 /usr/bin/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 /usr/bin/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. Conversions
77 between some fromcode-tocode pairs might not be available.
78 Some of these code set names have aliases, which are shown
79 after the canonical name.
80
81 EOF
82
83 for i in "${!all[@]}"
84 do
85 echo "$i ${all[$i]}"
86 done