#!/bin/sh
# Copyright (C) 1999-2001 Red Hat, Inc.
#
# XIM( X Input Method ) script
#
# Korean part,etc contributed by
#	Won-kyu Park <wkpark@chem.skku.ac.kr>
#

tmplang="en_US"
if test x$LC_ALL != x ; then
    tmplang=$LC_ALL
elif test x$LC_CTYPE != x ; then
    tmplang=$LC_CTYPE
elif test x$LANG != x ; then
    tmplang=$LANG
fi

#
# check to see if the user has a preferred desktop
#

PREFERRED=
if [ -f /etc/sysconfig/desktop ]; then
 if grep -q "GNOME" /etc/sysconfig/desktop 2>/dev/null; then
	 PREFERRED=gnome
 elif grep -q "KDE" /etc/sysconfig/desktop 2>/dev/null; then
	 PREFERRED=kde
 fi
fi

if [ -z "$PREFERRED" ]; then

 GSESSION=gnome-session
 STARTKDE=startkde

 # by default, we run GNOME.
 if which $GSESSION >/dev/null 2>&1; then
 	PREFERRED=gnome
 fi

 # if GNOME isn't installed, try KDE.
 if which $STARTKDE >/dev/null 2>&1; then
 	PREFERRED=kde
 fi
fi

#
# check $XIM and set a default $XIM value.
#
if [ -z "$XIM" ]; then
    case $tmplang in 
        ko*)
            if [ -e /usr/bin/ami ]; then
		    XIM="Ami"
            elif [ -e /usr/bin/hanIM ]; then
		    XIM="hanIM"
            fi
        ;;
        ja*)
	    if [ -e /usr/X11R6/bin/kinput2 ]; then
		    XIM="kinput2"
	    fi
        ;;
        zh_CN*)
	    if [ -e /usr/X11R6/bin/xcin ]; then
		export LC_CTYPE=zh_CN.GB2312
		XIM="xcin-zh_CN.GB2312"
	    fi
        ;;
        zh_TW*)
	    if [ -e /usr/X11R6/bin/xcin ]; then
		export LC_CTYPE=zh_TW.Big5
		XIM="xcin"
	    fi
        ;;
        *)
	    XIM="none"
        ;;
    esac
fi

#
# set a proper XIM program with respect to $XIM
#
if [ -z "$XIM_PROGRAM" ]; then
   case "$XIM" in
      Ami)
	case "$PREFERRED" in
	   gnome)
		if which ami_applet >/dev/null 2>&1 ; then
			XIM_PROGRAM=ami_applet
			XIM_ARGS="--activate-goad-server ami_applet"
		elif which ami >/dev/null 2>&1 ; then
			XIM_PROGRAM=ami
		fi
		if [ "$XIM_PROGRAM" = "ami_applet" ] && grep -q "=ami_applet" $HOME/.gnome/panel.d/default/Applet_Config 2>/dev/null; then
			XIM_PROGRAM=/bin/true
			XIM_ARGS=
		fi
	  ;;
	  kde)
		if which wmami >/dev/null 2>&1 ; then
			XIM_PROGRAM=wmami
		elif which ami >/dev/null 2>&1 ; then
			XIM_PROGRAM=ami
		fi
          ;;
	  *)
		if which ami >/dev/null 2>&1 ; then
			XIM_PROGRAM=ami
		fi
          ;;
	esac
	;;
      hanIM)
	if which hanIM >/dev/null 2>&1 ; then
		XIM_PROGRAM=hanIM
	fi
	;;
      xcin*)
	XIM_PROGRAM=xcin ;;
      kinput2)
	XIM_PROGRAM=kinput2
	if [ X"`ldd /usr/X11R6/bin/kinput2 | grep libcanna`" = X ] ; then
		XIM_ARGS="-wnnenvrc /etc/FreeWnn/ja/wnnenvrc"
	else
		XIM_ARGS="-canna"
	fi
	 ;;
      *)
	XIM_PROGRAM=/bin/true ;;
   esac
fi
[ -z "$XMODIFIERS" -a -n "$XIM" ] && export XMODIFIERS="@im=$XIM"

# execute XIM_PROGRAM

if which $XIM_PROGRAM >/dev/null 2>&1 ; then
	$XIM_PROGRAM $XIM_ARGS&
fi

# echo for testing :-)
#echo $PREFERRED
#echo $XMODIFIERS
#echo $XIM
#echo $XIM_PROGRAM $XIM_ARGS
