View file File name : dictl Content :#!/bin/sh # by Aleksey Cheusov <vle@gmx.net> sysconfdir=/etc/dictd ##################################### if test -z "$DICTL_SERVER_CHARSET"; then DICTL_SERVER_CHARSET=utf-8 fi if test -z "$DICTL_CHARSET"; then if which locale >/dev/null 2>&1; then DICTL_CHARSET=`locale -k LC_CTYPE | sed -n 's/charmap="\(.*\)"/\1/p'`; fi if test -z "$DICTL_CHARSET"; then DICTL_CHARSET=C fi fi internal_iconv (){ iconv -c -f $1 -t $2//TRANSLIT } internal_recode (){ recode -f $1..$2 } internal_konwert (){ sedexpr=' /(CP)?(437|8(5[0257]|6[0-69]|74))/ { s//cp\2/; q } /8859_([1-9])/ { s//iso\1/; q } /ANSI_X3.4(-19(68|86))?/ { s//ascii/; q } /(US-)?ASCII/ { s//ascii/; q } /(CP|WINDOWS-)(125[0-8])/ { s//cp\1/; q } /ISO([-_]?8859-|8859)([1-9]|1[01345])/ { s//iso\2/; q } /KOI8-?R/ { s//koi8r/; q } /KOI8-?U/ { s//koi8u/; q } /UTF-?8/ { s//utf8/; q } /VISCII/ { s//viscii/; q } /.*/ { s///; q }' from=`echo "$1" | tr a-z A-Z | sed -r -e "$sedexpr"` to=`echo "$2" | tr a-z A-Z | sed -r -e "$sedexpr"` konwert "$from-$to" } # for backward compatibility if test "$DICTL_USE_ICONV"; then DICTL_USE=internal_iconv elif test "$DICTL_USE_KONWERT"; then DICTL_USE=internal_konwert elif test -z "$DICTL_USE"; then DICTL_USE=internal_recode fi # charset2charset (){ $DICTL_USE $1 $2 } ##################################### echo apple | charset2charset $DICTL_SERVER_CHARSET $DICTL_CHARSET > /dev/null || \ { exit 1 } echo apple | charset2charset $DICTL_CHARSET $DICTL_SERVER_CHARSET > /dev/null || \ { exit 1 } ##################################### shquote (){ __cmd=`printf '%s\n' "$1" | sed "s|'|'\\\\\''|g"` printf "%s\n" "'$__cmd'" } cmd='dict' while test $# -ne 0; do cmd="$cmd "`shquote "$1"` shift done cmd=$(printf '%s\n' "$cmd" | charset2charset $DICTL_CHARSET $DICTL_SERVER_CHARSET) eval "$cmd" | charset2charset $DICTL_SERVER_CHARSET $DICTL_CHARSET