#!/bin/bash
# .bashrc
# written for sh, ksh, bash compatibility

# core file limits
[ `ulimit -c` != unlimited ] && ulimit -c unlimited

# is this bash?
case "x$0" in
  x-bash | xbash | x*/bash)
    BASHRC_SHELL=bash
    ;;
  x-ksh | xksh | x*/ksh)
    BASHRC_SHELL=ksh
    ;;
  x-sh | xsh | x*/sh)
    BASHRC_SHELL=sh
    # the following tests whether the [[ shell built-in is available
    # if so, we should be ksh compatible
    type '[[' > /dev/null 2>&1 && BASHRC_SHELL=ksh
    ;;
  *)
    BASHRC_SHELL=""
    ;;
esac
export BASHRC_SHELL

# ------------------------------------------------------------------------------
# User specific aliases and functions
# ------------------------------------------------------------------------------

# buildpath: This is designed to be sh, ksh, bash compatible
buildpath ()
{
  (
    dbg=false
    if [ $# -gt 0 ]; then
      if [ x"$1" = x-d ]; then
        dbg=true
        shift
      fi
    fi
    export dbg

    if [ $# -eq 0 ]; then
      cat 1>&2 <<-EnD
buildpath [-d] directory-or-search-path [directory-or-search-path] ...
    -d    Produces debug output on the standard error stream
  Search paths are split at colons into directory path elements; these and
  any plain directory path arguments are read in order, checked to make sure
  the directory exists, and added, at most once, with colon separators, to
  the output. The result is a new colon-separated search-path, written to
  the standard output stream.
EnD

    else
      ( for dp in "$@"; do
          case "$dp" in
            *:*)
              # split args containing colons into lines on stdout
              echo "$dp" | tr : '\n'
              ;;
            *)
              # just output non-colon-containing args one per line
              echo "$dp"
              ;;
          esac
        done
      ) |
      (
        IFS=""                      # do not allow space separators inside lines
        i=0
        p=""
        while read d; do            # read a line into $d
          case ":${p}:" in
            *:${d}:*)
              # $d has already been seen: ignore duplicate
              $dbg && echo "dupl $d" 1>&2
              ;;
            *)
              if [ -d "$d" ]; then
                # $d is a directory: add it to path $p
                i=`expr $i + 1`
                # or --> i=$(($i + 1))
                $dbg && echo `printf "%4d %s" $i $d` 1>&2
                p="$p$sep$d"
                sep=":"
              else
                # $d is not a directory
                $dbg && echo "! dir $d" 1>&2
              fi
              ;;
          esac
        done
        # all done: echo the new path $p
        echo $p
      )
    fi
  )
}

# ------------------------------------------------------------------------------

### findinpath: look for a file in a set of directories
##findinpath ()
##{
##  if [ $# -eq 0 ]; then
##    cat 1>&2 <<-EnD
##findinpath [-rwxfdhLcbpugks1] search-path file ...
##    -rwxfdhLcbpugks1  Flags acceptable to test(1) or 1; default is -x
##    search-path      A colon-separated list of directories
##  Looks for each file in the search path by taking each directory in the path
##  and concatenating "/" and the file name to it then testing the result using
##  the test flags. Each successfully found file path is written to stdout.
##  If flags are present, all tests must succeed for a file to be considered
##  "found". The flag 1 causes the search for a file to quit when one successful
##  occurrence is found.
##EnD
##    return 1
##  fi
##
##  (
##    flags=
##    while true; do
##      case "x$1" in
##        x--)    shift
##                break
##                ;;
##        x-*)    flags="$flags `echo -- $1 | sed -e 's/-//g' -e 's/./& /g'` "
##                shift
##                ;;
##        *)      break
##                ;;
##      esac
##    done
##    flags="`echo $flags`"
##    [ -z "$flags" -o "$flags" = 1 ] && flags="x $flags"
##
##    if [ $# = 0 ]; then
##      findinpath
##      exit 1
##    fi
##
##    flags=`echo $flags|tr ' ' :`
##    dpath="$1"
##    shift
##
##    #: echo flags="$flags" 1>&2
##    #: echo dpath="$dpath" 1>&2
##
##    IFS=:
##    res=1
##    for f in "$@"; do
##      br=n
##      for d in $dpath; do
##        ok=y
##        for q in $flags; do
##          if [ $q = 1 ]; then
##            br=y
##          elif [ ! -$q $d/$f ]; then
##            ok=n
##            break
##          fi
##        done
##        if [ $ok = y ] && echo "$d/$f" && [ $br = y ]; then
##          res=0
##          break
##        fi
##      done
##    done
##
##    exit $res
##  )
##}

# ------------------------------------------------------------------------------

# findinpath: look for a file in a set of directories
findinpath ()
{
  if [ $# -eq 0 ]; then
    cat 1>&2 <<-EnD
findinpath [-rwxfdhLcbpugks1] search-path file ...
    -rwxfdhLcbpugks1  Flags acceptable to test(1) or 1; default is -x
    search-path      A colon-separated list of directories
  Looks for each file in the search path by taking each directory in the path
  and concatenating "/" and the file name to it then testing the result using
  the test flags. Each successfully found file path is written to stdout.
  If flags are present, all tests must succeed for a file to be considered
  "found". The flag 1 causes the search for a file to quit when one successful
  occurrence is found.
EnD
    return 1
  fi

  (
    flags=
    while true; do
      case "x$1" in
        x--)    shift
                break
                ;;
        x-*)    flags="$flags `echo -- $1 | sed -e 's/-//g' -e 's/./& /g'` "
                shift
                ;;
        *)      break
                ;;
      esac
    done
    flags="`echo $flags`"
    [ -z "$flags" -o "$flags" = 1 ] && flags="x $flags"

    if [ $# = 0 ]; then
      findinpath
      exit 1
    fi

    # flags=`echo $flags|tr ' ' :`
    dpath="$1"
    shift

    #: echo flags="$flags" 1>&2
    #: echo dpath="$dpath" 1>&2

    res=1
    for fa in "$@"; do
      br=n
      IFS=:
      for d in $dpath; do
        ff=`echo $d/$fa`     # attempt to glob-out any wildcards
        IFS=' '
        for f in $ff; do
          ok=y
          # IFS=:
          for q in $flags; do
            if [ -z "$q" ]; then
              :
            elif [ $q = 1 ]; then
              br=y
              # return 0
            elif [ ! -$q $f ]; then
              ok=n
              break
            fi
          done
          if [ $ok = y ] && echo "$f" && [ $br = y ]; then
            res=0
          fi
        done
      done
    done

    return $res
  )
}

# ------------------------------------------------------------------------------

# where is like which but has no csh dependencies. It uses findinpath to do the
# real work.
where ()
{
  (
  doMan=n doLib=n doType=n doHash=n doBasicType=n doCst=n doUsage=n
  opts='th'
  [ $BASHRC_SHELL != bash ] && opts='t'

  OPTIND=1
  while getopts a${opts}mlxqp: opt "$@"
  do
    case "$opt" in
      m)
        doMan=y
        [ -z "$doExe" ] && doExe=n
        [ -z "$show" ] && show=echo
        ;;
      l)
        doLib=y
        [ -z "$doExe" ] && doExe=n
        [ -z "$show" ] && show=echo
        ;;
      x)
        doExe=y
        [ -z "$show" ] && show=echo
        ;;
      t)
        doType=y
        [ -z "$doExe" ] && doExe=n
        [ -z "$show" ] && show=echo
        ;;
      h)
        doHash=y
        [ -z "$doExe" ] && doExe=n
        [ -z "$show" ] && show=echo
        ;;
      p)
        cpath="$OPTARG"
        doCst=y
        [ -z "$doExe" ] && doExe=n
        [ -z "$show" ] && show=echo
        ;;
      a)
        doExe=y doMan=y doLib=y doType=y doHash=y
        [ -z "$show" ] && show='echo'
        ;;
      q)
        show=:
        ;;
      *)
        doUsage=y
        ;;
    esac
  done
  shift `expr $OPTIND - 1`

  [ -z "$doExe" ] && doExe=y
  [ -z "$show" ] && show=:

  # need arguments!
  [ $# = 0 ] && doUsage=y

  # type -atp supported only in bash
  if [ $BASHRC_SHELL != bash ]; then
    if [ "$doType" = y ] || [ "$doHash" = y ]; then
      doType=n
      doHash=n
      doBasicType=y
    fi
  fi

  if [ "$doUsage" != y ]; then
    mans="${MANPATH:-/usr/man:/usr/contrib/man:/usr/local/man}"
    libs="${LD_LIBRARY_PATH:-/usr/lib:/usr/local/lib}"
    showsep=:
    for f in "$@"; do
      if [ "$doBasicType" = y ]; then
        res=`type "$f" 2>&1`
        [ -n "$res" ] && $showsep "" \
                      && $show "type ${f}" && echo "$res"
        showsep=$show
      fi
      if [ "$doType" = y ]; then
        res=`type -at "$f" 2>&1`
        [ -n "$res" ] && $showsep "" \
                      && $show "type -at ${f}" && echo "$res"
        showsep=$show
      fi
      if [ "$doHash" = y ]; then
        res=`type -p "$f" 2>&1`
        [ -n "$res" ] && $showsep "" \
                      && $show "type -p ${f}" && echo "$res"
        showsep=$show
      fi
      if [ "$doExe" = y ]; then
        res=`findinpath -x "$PATH" "$f"`
        [ -n "$res" ] && $showsep "" \
                      && $show "\$PATH: ${f}" && echo "$res"
        showsep=$show
      fi
      if [ "$doMan" = y ]; then
        res=`findinpath -f "$mans" "*/$f.*"`
        [ -n "$res" ] && $showsep "" \
                      && $show "\$MANPATH: ${f}" && echo "$res"
        showsep=$show
      fi
      if [ "$doLib" = y ]; then
        res=`findinpath -f "$libs" "$f" "$f.*"`
        [ -n "$res" ] && $showsep "" \
                      && $show "\$LD_LIBRARY_PATH: ${f}" && echo "$res"
        showsep=$show
      fi
      if [ "$doCst" = y ]; then
        res=`findinpath -f "$cpath" "$f"`
        [ -n "$res" ] && $showsep "" \
                      && $show "${cpath}: ${f}" && echo "$res"
        showsep=$show
      fi
    done
  fi

  if [ "$doUsage" = y ]; then
    aopts="${opts}xml"
    opts="[-a${aopts}xmlq]"
    echo "Usage: where ${opts} [-p search-path] file-name-or-prefix" 1>&2
    echo "  -a      \"all\": apply options -$aopts" 1>&2
    if [ $BASHRC_SHELL == bash ]; then
      echo "  -t      use type -at to show command interpretation" 1>&2
      echo "  -h      use type -p to show hashed path to executable file" 1>&2
    else
      echo "  -t      use the type built-in to show command interpretation" 1>&2
    fi
    echo "  -x      search for executable files in \$PATH" 1>&2
    echo "  -m      search for matching manual page files in \$MANPATH" 1>&2
    echo "  -l      search for matching files in \$LD_LIBRARY_PATH" 1>&2
    echo "  -p path search for files in path" 1>&2
    echo "  -q      quiet: do not mention which search is executing" 1>&2
    echo "File names must match exactly for -x, -p; -x is the default." 1>&2
  fi
  )
}

# ------------------------------------------------------------------------------

# Source global definitions
if [ "$BASHRC_SHELL" = bash ] && [ -f /etc/bashrc ]; then
  . /etc/bashrc
fi
if [ -f "$HOME/tmpBashSettings" ]; then
  . "$HOME/tmpBashSettings"
fi

# file creation mask
umask 022

# logname
LOGNAME=${LOGNAME:-${USER}}

    # Set local environment for users (for CVS, etc.)
    if [ -z "$CVSROOT" ]; then
      export CVS_RSH=ssh
      export CVSROOT=:ext:${USER}@cvs:/usr/local/cvs/cvsrep
      export ENGHOME=/home/tools/eng
    fi
    if [ -z "$local_env_set" ]; then
      export local_env_set=/home/tools/local-env-set
      if [ -f /home/tools/local-env-set ]; then
        . /home/tools/local-env-set
      fi
    fi

# system specifics
UNAME=`uname`
export UNAME
MAIL=/usr/mail/${LOGNAME:?}

if [ -z "$BASH_PATHS_SET" ]; then

    case "$UNAME" in
        SunOS)
            # Sun development tools
            [ -d /opt/SUNWspro/bin ] && SunOSPATH=/opt/SUNWspro/bin
            [ -d /opt/SUNWspro/man ] && SunOSMANPATH=/opt/SUNWspro/man
            [ -d /opt/SUNWspro/lib ] && SunOSLIBPATH=/opt/SUNWspro/lib
            ;;
    esac

    # PATH -------------------------------------------------
    PATH=`buildpath "$HOME"/.util \
                    "$HOME"/.util/"$UNAME" \
                    "$HOME"/usr/bin/"$UNAME" \
                    "$HOME"/usr/sbin \
                    "$HOME"/usr/bin \
                    $SunOSPATH \
                    "$HOME"/sqsh \
                    $SunOSPATH \
                    /usr/java4/bin \
                    /usr/xpg4/bin \
                    /usr/bin \
                    /bin \
                    /usr/sbin \
                    /sbin \
                    /usr/local/bin \
                    /usr/local/sbin \
                    . \
                    /usr/ccs/bin \
                    /usr/ucb \
                    /usr/dt/bin \
                    /usr/X/bin \
                    /usr/X/demo \
                    /opt/SUNWspro/bin \
                    /etc \
                    "$PATH"`
    export PATH
    BASH_PATHS_SET="$BASH_PATHS_SET PATH "
    export BASH_PATHS_SET

    # LD_LIBRARY_PATH --------------------------------------
    # add Hyperfeed, Tib, Triarch
    # NB for libdacs.so: /opt/triarch/ssl4.1.3.L3.sink_infra.solaris.tis.rri/lib
    LD_LIBRARY_PATH=`buildpath \
                    $LD_LIBRARY_PATH \
                    $SunOSLIBPATH \
                    /usr/local/lib \
                    /usr/lib \
                    /lib`
    export LD_LIBRARY_PATH
    BASH_PATHS_SET="$BASH_PATHS_SET LD_LIBRARY_PATH "
    export BASH_PATHS_SET

    # MANPATH ----------------------------------------------
    MANPATH=`buildpath \
                    ${HOME}/usr/man \
                    $SunOSMANPATH \
                    /usr/share/man \
                    /usr/openwin/man \
                    /usr/local/man \
                    /usr/X/man \
                    /usr/dt/man \
                    /usr/openwin/man \
                    $MANPATH`
    export MANPATH
    BASH_PATHS_SET="$BASH_PATHS_SET MANPATH "
    export BASH_PATHS_SET

    # ------------------------------------------------------
fi

# ------------------------------------------------------------------------------

today_file=`date +today=%d-%m-%Y`
(
    IFS=;
    today_files=`cd "$HOME"; ls | grep 'today=.*'`
    if [ "$today_files" != "" ]; then
        for today_file_rm in $today_files; do
            [ "$today_file" != "$today_file_rm" ] && rm -f $HOME/$today_file_rm
        done
    fi
)
[ -f "$HOME/$today_file" ] || touch "$HOME/$today_file"

if [ -d "$HOME/.app-defaults" ]; then
  XAPPLRESDIR="$HOME/.app-defaults"
  export XAPPLRESDIR
fi

# ------------------------------------------------------------------------------

# aliases and functions
if [ "$BASHRC_SHELL" = bash -o "$BASHRC_SHELL" = ksh ]; then
  [ -r ${HOME}/.util/bashaliasrc ] && . ${HOME}/.util/bashaliasrc
fi

# localised definitions
[ -r $HOME/.localrc ] && . $HOME/.localrc

# ------------------------------------------------------------------------------

if [ -f "$HOME/.bashrc.$UNAME" ]; then
  . "$HOME/.bashrc.$UNAME"
fi

# is our shell interactive?
if [ -z "$NO_INTERACTIVE_CHECK" ]; then
  case "$-" in
    *i*)
      INTERACTIVE=y
      ;;
    *)
      INTERACTIVE=
      ;;
  esac
fi

# ------------------------------------------------------------------------------

if [ "$INTERACTIVE" = "y" ]; then
    CDPATH=`buildpath . ${HOME}/cvs ${HOME}`
    if tty -s; then
      if [ -z "$BASHRC_SHOW_REMINDER" ] && [ -f ${HOME}/reminder ]; then
          echo "";
          echo ===== Reminder file ${HOME}/reminder: =====
          cat ${HOME}/reminder
          echo "";
          echo ===== Reminder file ${HOME}/reminder: ===== | sed -e s/./=/g
          echo "";
        fi
      BASHRC_SHOW_REMINDER="done"
      export BASHRC_SHOW_REMINDER
      # unless on Sun or DEC keyboards, with xterm we want Backspace to erase
      if [ "$TERM" = xterm ] || [ "$TERM" = vt100 ]; then
        stty erase ^H
      fi
      # use less with man if we have it
      if type less > /dev/null 2>&1; then
        PAGER=less
        LESS='-egmqsX'
        export PAGER LESS
      fi
      # if we don't have more, use less instead
      if type more > /dev/null 2>&1; then
        :
      else
        alias more=less
      fi
    fi

  # use custom cd (if we're using a terminal)
  if [ "$BASHRC_SHELL" = bash ] && tty -s; then
    [ -r ${HOME}/.util/bashcd ] && . ${HOME}/.util/bashcd && setcd c
  fi

  # ignore repeats and space-leading commands in history
  HISTCONTROL=ignoreboth      # ignorespace, ignoredups, ignoreboth

  [ -z "$tty" ] && tty=`tty | sed -e s./dev/..`

  # - try to avoid a DISPLAY with "localhost" in its name
  if [ -n "$DISPLAY" ]; then
    display="$DISPLAY"
    if [ "$display" = *localhost* ]; then
      OLD_DISPLAY="$DISPLAY"
      unset display
      export OLD_DISPLAY
    fi
  fi
  if [ -z "$display" ] && type last > /dev/null 2>&1; then
    # use last to pick up current "terminal" IP address
    #   case `uname` in
    #   SunOS)
    #       nlast="-n 1 -a"
    #       ;;
    #   *)
    #       nlast="-1 -l"
    #       ;;
    #   esac
    nlast="-n 1 -a"
    # pick up the terminal
    # take the last word of the first line of last(1) as an IP address
    last=`last $nlast $USER | awk '{ print $NF; exit }'`
    # see if we can find the same thing in who(1) (in comments field)
    if who -uT | fgrep "$tty" | fgrep "$last" >& /dev/null; then
      # looks like we have the connecting terminal (if any)
      if echo "$last" | grep '[^.0-9]' >& /dev/null; then
        # we have a name: try to resolve its address
        display=`nslookup "$last" | \
                 awk '
                 /^Name:/       { nextln = 0; if ($2 == "'"$last"'") nextln++; }
                 /^Address:/    { if (nextln) print $2; }
                 ' | head -n 1`
        if [ -n "$display" ]; then
          DISPLAY="${display}:0"
        else
          DISPLAY="${last}:0"
        fi
        unset display
      else
        DISPLAY="${last}:0"
      fi
      export DISPLAY
    fi
  fi
fi

# ------------------------------------------------------------------------------

# and X?
if [ -n "$DISPLAY" ]; then
  if [ "$INTERACTIVE" = "y" ] && [ -z "$XEDITOR" ]; then
    echo "Display: export DISPLAY=${DISPLAY}"
  fi
  # do we support CDE?
  if [ -d ~/.dt ] && [ -d /usr/dt/bin ]; then
    [ -z "$DTSCREENSAVERLIST" ] && \
        { DTSCREENSAVERLIST=`echo StartDtscreenSwarm \
                                  StartDtscreenQix \
                                  StartDtscreenFlame \
                                  StartDtscreenHop \
                                  StartDtscreenImage \
                                  StartDtscreenLife \
                                  StartDtscreenRotor \
                                  StartDtscreenPyro \
                                  StartDtscreenWorm \
                                  StartDtscreenBlank`
          export DTSCREENSAVERLIST; }
#   [ -z "$dtstart_sessionlogfile" ] && \
#       export dtstart_sessionlogfile=/dev/null
#   [ -z "$XMBINDDIR" ] && \
#       export XMBINDDIR=/usr/dt/lib/bindings
    [ -z "$DTUSERSESSION" ] && \
        export DTUSERSESSION="${USER}-`echo $DISPLAY | \
                                       sed -e s/:/-/ | sed -e s/\\.0\$/-0/`"
#   [ -z "$DTDATABASESEARCHPATH" ] && \
#       export DTDATABASESEARCHPATH=`echo ~/.dt/types \
#                                         /usr/dt/appconfig/types/%L \
#                                         /usr/dt/appconfig/types/C | \
#                                    tr ' ' ,`
#   # export DTXSERVERLOCATION=remote
#   [ -z "$XFILESEARCHPATH" ] && \
#       export XFILESEARCHPATH=`echo /usr/openwin/lib/locale/%L/%T/%N%S \
#                                    /usr/openwin/lib/%T/%N%S | \
#                               tr ' ' :`
#   [ -z "$XMICONSEARCHPATH" ] && \
#       export XMICONSEARCHPATH=`echo ~/.dt/icons/%B%M.pm \
#                                     ~/.dt/icons/%B%M.bm \
#                                     ~/.dt/icons/%B \
#                                     /usr/dt/appconfig/icons/%L/%B%M.pm \
#                                     /usr/dt/appconfig/icons/%L/%B%M.bm \
#                                     /usr/dt/appconfig/icons/%L/%B \
#                                     /usr/dt/appconfig/icons/C/%B%M.pm \
#                                     /usr/dt/appconfig/icons/C/%B%M.bm \
#                                     /usr/dt/appconfig/icons/C/%B | \
#                                tr ' ' :`
#   [ -z "$XMICONBMSEARCHPATH" ] && \
#       export XMICONBMSEARCHPATH=`echo ~/.dt/icons/%B%M.bm \
#                                       ~/.dt/icons/%B%M.pm \
#                                       ~/.dt/icons/%B \
#                                       /usr/dt/appconfig/icons/%L/%B%M.bm \
#                                       /usr/dt/appconfig/icons/%L/%B%M.pm \
#                                       /usr/dt/appconfig/icons/%L/%B \
#                                       /usr/dt/appconfig/icons/C/%B%M.bm \
#                                       /usr/dt/appconfig/icons/C/%B%M.pm \
#                                       /usr/dt/appconfig/icons/C/%B | \
#                                  tr ' ' :`
#   [ -z "$DTSOURCEPROFILE" ] && export DTSOURCEPROFILE=true
#   [ -z "$DTHELPSEARCHPATH" ] && \
#       export DTHELPSEARCHPATH=\
#           `echo ~/.dt/help/$DTUSERSESSION/%H \
#                 ~/.dt/help/$DTUSERSESSION/%H.sdl \
#                 ~/.dt/help/$DTUSERSESSION/%H.hv \
#                 ~/.dt/help/%H \
#                 ~/.dt/help/%H.sdl \
#                 ~/.dt/help/%H.hv \
#                 /usr/dt/appconfig/help/%L/%H \
#                 /usr/dt/appconfig/help/%L/%H.sdl \
#                 /usr/dt/appconfig/help/%L/%H.hv \
#                 /usr/dt/appconfig/help/C/%H \
#                 /usr/dt/appconfig/help/C/%H.sdl \
#                 /usr/dt/appconfig/help/C/%H.hv | \
#            tr ' ' :`
    [ -z "$DTAPPSEARCHPATH" ] && \
        { DTAPPSEARCHPATH=`echo $HOME/.dt/appmanager \
                                /usr/dt/appconfig/appmanager/%L \
                                /usr/dt/appconfig/appmanager/C | \
                           tr ' ' :`
          export DTAPPSEARCHPATH; }
    [ -z "$TERMINAL_EMULATOR" ] && \
        { TERMINAL_EMULATOR=xterm
           export TERMINAL_EMULATOR; }
  fi

  # use NEdit
  XEDITOR="nc -noask"
  export XEDITOR
  if [ -z "$NEDIT_INCLUDE_PATH" ]; then
    # put "standard" include paths here
    case "$UNAME" in
      SunOS)
        NEDIT_INCLUDE_PATH=`find /opt/SUNWspro/WS6U2/include/CC/ \
                                     -type d -print`
        ;;
    esac
    NEDIT_INCLUDE_PATH=`buildpath \
                         . \
                         /opt/SUNWspro/WS6U2/include/CC/Cstd \
                         $NEDIT_INCLUDE_PATH \
                         /usr/include`
    export NEDIT_INCLUDE_PATH
  fi

  if [ -d "$HOME/.app-defaults" ]; then
    app_defaults=~/.app-defaults
    XAPPLRESDIR=$app_defaults
    app_defaults=$app_defaults/%N
    if [ -n "$XUSERFILESEARCHPATH" ]; then
      case "${XUSERFILESEARCHPATH}:" in
      *:${app_defaults}:*)
          # echo not Resetting XUSERFILESEARCHPATH
          ;;
      *)
          # echo Resetting XUSERFILESEARCHPATH
          XUSERFILESEARCHPATH=${XUSERFILESEARCHPATH}:$app_defaults
          ;;
      esac
    else
      XUSERFILESEARCHPATH=$app_defaults
    fi
    export XAPPLRESDIR XUSERFILESEARCHPATH
  fi
fi
