#!/bin/bash
#
# IIIM and XIM-bridge Start up script for xsession.
# Copyright (c) 2003 Sun Microsystem, Inc
#
# Hidetoshi Tajima <hidetoshi.tajima@sun.com>, 2003
#

# Determine the LC_CTYPE locale category setting
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

# iiimx should always run with -staticEventFlow option
iiimx="iiimx -staticEventFlow"

# make sure we have all the necessary directories in the path to find
# the input servers and the tools like "pidof" which are used below
OLD_PATH=$PATH
PATH=/usr/lib/iiim:/usr/local/lib/iiim:/bin:/usr/bin:/usr/X11R6/bin:

#reset XMODIFIERS
unset XMODIFIERS

# If IIIMSF and IIIMGCF are properly installed,
# we enable them for all the languages.
start_iiim() {
     # a workaround for StarOffice7/StarSuite7.
     # We'll stop setting USE_XOPENIM=true when StarSuite7 is fixed and able
     # to work with xiiimp.so.2.
     export USE_XOPENIM=true
     export SAL_DISABLE_OWN_IM_STATUS=yes

     if pidof /usr/bin/iiimd > /dev/null 2>&1
     then
        if rpm -q iiimf-gtk > /dev/null 2>&1
        then 
           # use IIIMGCF for all gtk+ applications
           export GTK_IM_MODULE=iiim
        fi
        if rpm -q iiimf-openoffice > /dev/null 2>&1
        then 
	   unset USE_XOPENIM
        fi
     fi
}

start_xim_for_atokx() {
    if [ -x /usr/bin/mozilla ]; then
	export HTT_HELP_BROWSER=/usr/bin/mozilla
    fi

    if test $tmplang == ja_JP ; then
       LANG=ja_JP.eucJP LC_ALL=ja_JP.eucJP $iiimx -if atok12 &
    else
       $iiimx -if atok12 &
    fi

    iiimx_pid="$!"
    while :
      do
      if pidof jp.co.justsystem.atok12.LookupAux > /dev/null 2>&1; then
	  iiimx_pid=
	  sleep 1
	  break
      fi
      sleep 1
      times=$[$times+1]
      if [ $times -ge "30" ]; then
	  break
      fi
    done
    if [ -n "${iiimx_pid}" ]
	then
	kill "${iiimx_pid}"
	sleep 2
	$iiimx -if atok12 &
	sleep 2
    fi
}

start_xim_for_atokx2() {
    $iiimx -if atokx2 &
}

# We enable IIIMXSF only for selectable languages.
start_xim() {
  if pidof /usr/bin/iiimd > /dev/null 2>&1 \
     && type -p iiimx > /dev/null 2>&1
  then
# set HTT_GENERATES_KANAKEY=true to support Kana-Shift mode at Japanese input mode
    export HTT_GENERATES_KANAKEY=true
    export XMODIFIERS="@im=iiimx"
    case $tmplang in 
    ja*) # Japanese
        if pidof atokx2mngdaemon > /dev/null 2>&1 ; then
	  start_xim_for_atokx2
        elif pidof atokmngdaemon > /dev/null 2>&1 ; then
	  start_xim_for_atokx
        elif pidof cannaserver >  /dev/null 2>&1 ; then
          $iiimx -if canna &
        else
	  $iiimx &
        fi
        ;;
    ko*) # Korean
        $iiimx -if kole &
        ;;
    th*) # Thai
        $iiimx -if thaile &
        ;;
    zh_HK*) # Traditional Chinese 
        $iiimx -if hkle &
        ;;
    zh_TW*) # Traditional Chinese 
        $iiimx -if twle &
        ;;
    zh_CN*) # Simplified Chinese
        $iiimx -if cle &
        ;;
    *.UTF-8) # UTF-8
        $iiimx -if unitle &
        ;;
    *.utf-8) # utf-8
        $iiimx -if unitle &
        ;;
    *)  # all other languages:
	# If you always want to use XIM-IIIM-bridge for it,
	# uncomment the following lines.
#        $iiimx &
        ;;
    esac
  fi
}

# IIim user may have own xsession
if [ -f $HOME/.iiim/xsession ]; then
  . $HOME/.iiim/xsession
else
  gnome-im-settings-daemon > /dev/null 2>&1
  start_iiim
  start_xim
fi

# restore $PATH
PATH=$OLD_PATH
