--- /etc/init.d/xfs~	2005-01-07 06:01:10.000000000 +0900
+++ /etc/init.d/xfs	2005-07-04 00:18:28.000000000 +0900
@@ -20,21 +20,19 @@
 prog=xfs
 
 buildfontlist() {
-   for d in $(/usr/sbin/chkfontpath --list | cut -f 2 -d ':') ;do
+   for d in $(/usr/sbin/chkfontpath --list | cut -f 2 -d ':' | sort -u) ;do
       if [ -d "$d" ]; then
          cd $d
          # Check if we need to rerun mkfontdir
-         NEEDED=no
-         if ! [ -e fonts.dir ]; then
-            NEEDED=yes
-         elif [ "x$(find . -type f -newer fonts.dir 2>/dev/null)" != "x" ];then
-            NEEDED=yes
-         fi
-         if [ "$NEEDED" = "yes" ]; then
+         if if [ -e fonts.dir ]; then
+               [ -n "$(find . -mindepth 1 ! -regex '\./\(fonts\|encodings\)\..*' -newer fonts.dir 2>/dev/null)" ]
+            else
+               [ -n "$(find . -mindepth 1 ! -regex '\./\(fonts\|encodings\)\..*' 2>/dev/null)" ]
+            fi; then
             rm -f fonts.dir &>/dev/null
-            if ls | grep -i "\.tt[cf]$" &>/dev/null; then
+            if [ -n "$(find . -iname '*.tt[cf]' 2>/dev/null)" ]; then
                # TrueType fonts found...
-               if ls | grep "\.ttfconf$" &> /dev/null; then
+               if [ -n "$(find . -name '*.ttfconf' 2>/dev/null)" ]; then
                   mktcapdir $d *.ttfconf
                else
                   ttmkfdir . >fonts.scale
@@ -42,8 +40,7 @@
                mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings \
                          -e /usr/X11R6/lib/X11/fonts/encodings/large . &>/dev/null
                chmod a+r fonts.scale fonts.dir
-            fi
-            if [ "x`ls |egrep -iv '\.tt[cf]$|^fonts\.|^encodings\.'`" != "x" ]; then
+            else
                # This directory contains fonts that are not TrueType...
                mkfontdir -e /usr/X11R6/lib/X11/fonts/encodings \
                          -e /usr/X11R6/lib/X11/fonts/encodings/large . &>/dev/null
@@ -52,19 +49,18 @@
          fi
       fi
    done
+   [ -x "/usr/bin/fc-cache" ] && HOME=/ "/usr/bin/fc-cache"
 }
 
 start() {
-   if [ -L /usr/X11R6/bin/X ]; then
-      echo -n $"Starting $prog: "
-      [ -x /usr/sbin/chkfontpath ] && buildfontlist
-      rm -fr /tmp/.font-unix
-      daemon xfs -droppriv -daemon
-      ret=$?
-      [ $ret -eq 0 ] && touch /var/lock/subsys/xfs
-      echo
-      return $ret
-   fi
+   echo -n $"Starting $prog: "
+   [ -x /usr/sbin/chkfontpath ] && buildfontlist
+   rm -fr /tmp/.font-unix
+   daemon xfs -droppriv -daemon
+   ret=$?
+   [ $ret -eq 0 ] && touch /var/lock/subsys/xfs
+   echo
+   return $ret
 }	
 
 stop() {
