File: dictl.in

package info (click to toggle)
dictd 1.12.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 3,764 kB
  • sloc: ansic: 13,038; sh: 4,041; yacc: 491; makefile: 446; cpp: 277; lex: 255; perl: 175; awk: 12
file content (83 lines) | stat: -rwxr-xr-x 1,859 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/bin/sh

# by Aleksey Cheusov <vle@gmx.net>

sysconfdir=@sysconfdir@

#####################################
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
}

#####################################

cmd='dict'
while test $# -ne 0; do
    cmd="$cmd '$1'"
    shift
done
cmd=$(echo $cmd | charset2charset $DICTL_CHARSET $DICTL_SERVER_CHARSET)

eval $cmd -P - | charset2charset $DICTL_SERVER_CHARSET $DICTL_CHARSET