1#! /bin/sh 2 3mktitmap () { 4 kmap=$1 5 map=$2 6 if egrep "ENCODE:[ ]*BIG5" $kmap 7 then 8 if iconv -f BIG5 -t UTF8 $kmap > /tmp/$map.utf 9 then 10 `dirname $0`/mkkmcxt /tmp/$map.utf 11 else echo cannot convert $kmap to UTF-8 12 fi 13 rm -f /tmp/$map.utf 14 elif egrep "ENCODE:[ ]*GB" $kmap 15 then 16 if iconv -f GB18030 -t UTF8 $kmap > /tmp/$map.utf || 17 iconv -f GBK -t UTF8 $kmap > /tmp/$map.utf || 18 iconv -f GB2312 -t UTF8 $kmap > /tmp/$map.utf 19 then 20 `dirname $0`/mkkmcxt /tmp/$map.utf 21 else echo cannot convert $kmap to UTF-8 22 fi 23 rm -f /tmp/$map.utf 24 elif egrep "ENCODE:[ ]*JIS" $kmap 25 then 26 if iconv -f UJIS -t UTF8 $kmap > /tmp/$map.utf 27 then 28 `dirname $0`/mkkmcxt /tmp/$map.utf 29 else echo cannot convert $kmap to UTF-8 30 fi 31 rm -f /tmp/$map.utf 32 elif egrep "ENCODE:[ ]*KS" $kmap 33 then 34 if iconv -f UHC -t UTF8 $kmap > /tmp/$map.utf 35 then 36 `dirname $0`/mkkmcxt /tmp/$map.utf 37 else echo cannot convert $kmap to UTF-8 38 fi 39 rm -f /tmp/$map.utf 40 else echo cannot handle encoding of $kmap 41 fi 42} 43 44while [ "$1" != "" ] 45do 46 kmap="$1" 47 48 if [ ! -d keymaps ] 49 then mkdir keymaps 50 fi 51 52 case $kmap in 53 *.kmap) `dirname $0`/mkkmyudt $kmap;; 54 *.utf) `dirname $0`/mkkmcxt $kmap;; 55 *.mim) `dirname $0`/mkkmmim $kmap;; 56 *.vim) `dirname $0`/mkkmvim $kmap;; 57 *.tit) map=`basename $kmap .tit` 58 mktitmap $kmap $map 59 ;; 60 *.cit) map=`basename $kmap .cit` 61 if cit2tit $kmap > /tmp/$map.tit 62 then mktitmap /tmp/$map.tit $map 63 else echo cannot decompile $kmap 64 fi 65 rm -f /tmp/$map.tit 66 ;; 67 *.*) echo unknown keyboard mapping file type $kmap;; 68 *) hantag=`echo $kmap | tr '[A-Z]' '[a-z]'` 69 case "$hantag" in 70 cj|cangjie) case "$2" in 71 +) ./mkkmhkscs 72 cjuni=keymaps/hkscs.uni 73 shift;; 74 *hkscs*cj*.txt) ./mkkmhkscs "$2" 75 cjuni=keymaps/hkscs.uni 76 shift;; 77 *) cjuni=;; 78 esac 79 `dirname $0`/mkkmuhan -c Cangjie cj $cjuni;; 80 mainlandtele*) `dirname $0`/mkkmuhan -c MainlandTelegraph mt;; 81 taiwantele*) `dirname $0`/mkkmuhan -c TaiwanTelegraph tt;; 82 canton*) `dirname $0`/mkkmuhan -c Cantonese ct;; 83 hanyu*|pinlu) `dirname $0`/mkkmuhan -c HanyuPinlu hp;; 84 mand*) `dirname $0`/mkkmuhan -c Mandarin md;; 85 tang) `dirname $0`/mkkmuhan -c Tang tn;; 86 kun|japanesekun) `dirname $0`/mkkmuhan -j JapaneseKun jk;; 87 on|japaneseon) `dirname $0`/mkkmuhan -j JapaneseOn jo;; 88 kor*) `dirname $0`/mkkmuhan -k Korean kr;; 89 viet*) `dirname $0`/mkkmuhan Vietnamese vn;; 90 viqr|VIQR) if make viqr 91 then ./mkkentry -U VIQR vq 92 fi;; 93 vni|VNI) if make vni 94 then ./mkkentry -U VNI vi 95 fi;; 96 vtelex|Vtelex) if make vtelex 97 then ./mkkentry -U Vtelex vt 98 fi;; 99 *) echo generating keyboard mapping for $kmap script from UnicodeData >&2 100 `dirname $0`/mkkmudat $kmap 101 ;; 102 esac;; 103 esac 104 105 shift 106done 107