#!/bin/sh
#
#  This is a part of ChiTeX.
#  This script is created by 
#    Hung-Yih Chen ()  (yih@math.ncu.edu.tw)
#               (Dept. of Mathematics, National Central Univ.)
#           Last updated  April. 19, 2000
# 
#                All rights preserved   
#

#quickmode="y"

export LC_CTYPE=zh_TW.Big5

gawkbin="gawk"

searchtexmf="y"
if test "$searchtexmf" = "y"; then
texmfcnffile=`kpsexpand -w cnf texmf.cnf`
TEXMFCNF=`
$gawkbin  '
{texmfcnfloc=index(texmfcnffile,"/texmf.cnf")
 print substr(texmfcnffile,1,texmfcnfloc-1)
}' texmfcnffile=$texmfcnffile tmp@ `

echo $TEXMFCNF > tmp@
TEXMF=`
$gawkbin '
{
  inline=$0
  gsub(/web2c/,"",inline)
  inline=substr(inline,1,length(inline)-1)
  print inline
}' tmp@ `
fi

export TEXMF

texmffile=`kpsexpand '$TEXMFDIST' `
if test "$texmffile" != ""; then
TEXMFDIR=` gawk '
   {lbr=index(texmffile,"{")
    sep=index(texmffile,",")
    dash=index(texmffile,"-")
    texmfpre=substr(texmffile,1,dash)
    if (lbr > 0)
       {texlive=substr(texmffile,lbr+1,sep-lbr-1) 
        texmf =texmfpre texlive
       }
    else
       {if (dash > 0)
           {texlive=substr(texmffile,dash+1) 
            texmf =texmfpre texlive
           } 
       }    
    print texmf
   }' texmffile=$texmffile tmp@ `
fi

if test "$TEXMFDIR" != "" -a -d "$TEXMFDIR"; then
   TEXMF=$TEXMFDIR
fi


filename=$1

if test "$filename" = ".tex"; then 
   exit
fi


unadd=`echo $filename|fgrep "@unadd"`
if test "$unadd" != ""; then
   addperc=0
else
   add=`echo $filename|fgrep "@add"`
   if test "$add" != ""; then
      addperc=1
   fi
fi
export addperc

filename=`echo "$filename"|\
  sed -e 's#.@unadd##' -e 's#.@add##'`


if test ! -s $filename.tex
then
 if test ! -s $filename; then 
   filename=`find $TEXMF/tex -follow -name $filename -print`
   if test "$filename" = ""; then
      filename=`find $TEXMF/tex/ -follow -name $filename.tex -print`
      if test "$filename" = ""; then
         exit
      fi
   fi
 else
   filename=$filename
 fi
else 
 filename=$filename.tex
fi

stexf=`
$gawkbin  '
BEGIN{}
{if (index($0,filename) > 0)
  {print "yes"}
 else
  {print ""}
}
END{}' filename=$filename texfile@`

#echo $inputpath".tmp00"

outfilename=`echo "$filename"|sed 's#/#c#g'`
#outfilename=".tmp00/$outfilename"


if test "$inputpath" != "" -a "$stexf" = "" -a -s $outfilename; then
   outfilename=$inputpath".tmp00/$outfilename"
else
   outfilename=$inputpath".tmp00/$outfilename"
fi
if test ! -d $inputpath".tmp00"; then
   mkdir -p $inputpath".tmp00"
fi


echo "yes" > tmp@

test1=""


  bname=`basename $filename`                    

  filea=`echo $bname|cut -d. -f 1` 

rm -f maintemp*@ maintmpb@

  echoprompt=`echo -n "."`
  if test "$echoprompt" = "."; then
     echomode="-n ."
  else
     echoprompt=`echo  ".\c"`
     if test "$echoprompt" = "."; then
        echomode=" .\c"
     else 
        echomode="-e .\c"
     fi
  fi

echo $echomode


cp $filename maintemp@


rm -f *.tmp@@
if test -s "ask@"; then rm -f ask@; fi

# begin to manage \begin{filecontents} ...\end{filecontents}
# 


# ask overwrite old files


if test -s setaddpercent@; then
:
#   chmod +x setaddpercent@
#   . ./setaddpercent@   
fi


if test "$chbold" = ""; then
 if test -s chbold@; then
   chbold=`echo "y"`
   export chbold
 fi
fi



/bin/rm -f klinetemp*@

#nochprotect="y"

  /bin/rm -f nextrun@ ch@* HaveBg5@ HaveCJK@


  gawk '
  {inline=$0
   if (bgdoc==0)
       {bgdoc=index(inline,"\\begin{document}")}
   if (bgdoc==0)       
       {bgdoc=index(inline,"\\begin {document}")}   
   if (bgdoc==0)       
       {bgdoc=index(inline,"\\begin  {document}")}   
       
   if (bgdoc == 0)
      {usepkg=index(inline,"\\usepackage{")
       if (usepkg==0)
          {usepkg=index(inline,"\\usepackage {")
           if (usepkg==0)
              {usepkg=index(inline,"\\usepackage  {")
               if (usepkg>0)
                  {add=14}
              }
           else
              {add=13}   
          }
       else
          {add=12}  
      }

   if (usepkg>0 && CJKutf8==0)
     {Rline=substr(inline,usepkg+add-1)
      rbr=index(Rline,"}")
      if (rbr>0)
         {inrbr=substr(Rline,1,rbr)
          CJKutf8=index(inrbr,"{CJKutf8}")
          if (CJKutf8==0)
             {CJKutf8=index(inrbr,"{CJKutf8,")}
          if (CJKutf8==0)
             {CJKutf8=index(inrbr,",CJKutf8,")}             
          if (CJKutf8==0)
             {CJKutf8=index(inrbr,",CJKutf8}")}             
          if (CJKutf8>0)
             {print "y"> "HaveCJKutf8@"}   
         }
     }
   
   if (usepkg>0 && CJK==0)
     {Rline=substr(inline,usepkg+add-1) 
      rbr=index(Rline,"}")
      if (rbr>0)
         {inrbr=substr(Rline,1,rbr)
          CJK=index(inrbr,"{CJK}")
          if (CJK==0)
             {CJK=index(inrbr,"{CJK,")}
          if (CJK==0)
             {CJK=index(inrbr,",CJK,")}             
          if (CJK==0)
             {CJK=index(inrbr,",CJK}")}             
          if (CJK>0)
             {print "y"> "HaveCJK@"}   
         }
     }

   if (CJK>0)
     {if (bgCJK==0)
          {bgCJK=index(inline,"\\begin{CJK")}
      
      if (bgCJK==0)   
         {bgCJK=index(inline,"\\begin {CJK")
          if (bgCJK==0)
            {bgCJK=index(inline,"\\begin  {CJK")
             if (bgCJK>0)
                {if (Haveadd==""){add=12
                     Haveadd="y"
                     bgCJKPos=1
                    }
                }
            }
          else
            {if (Haveadd=="")
                {add=11
                 Haveadd="y"
                 bgCJKPos=1
                }
             }
         }
      else
        {if (Haveadd == "")
            {
             add=10
             Haveadd ="y"
             bgCJKPos=1
            }
        }
     }   

   
   if (bgCJKPos>0)
      {bgCJKPos=0
       if (HaveBg5=="")
          {Rline=substr(inline,bgCJK+add)
           lrbr=index(Rline,"}{")
           if (lrbr>0)
              {RRline=substr(Rline,lrbr+1)
               rbr=index(RRline,"}")
               if (rbr>0)
                  {inrbr=substr(RRline,2,rbr-2)
                   if (inrbr=="Bg5")
                      {HaveBg5="y"
                       print "y" > "HaveBg5@"
                      }  
                  }
              }           
          } 
      }   
         
  } ' maintemp@


  if test -s HaveCJKutf8@; then
     HaveCJK="y"
     export HaveCJK
     HaveCJKutf8="y"
  fi

  if test -s HaveCJK@; then
     HaveCJK="y"
     export HaveCJK
  fi
#
  if test -s HaveBg5@; then
     HaveBg5="y"
     export HaveBg5
  fi


  cp maintemp@ mmmtmp_tmp_tmp
  CVFNAME="mmmtmp_tmp_tmp"
  if test "$HaveCJK" = ""; then
     export CVFNAME
     chaddchitex
  fi   
  mv $CVFNAME maintemp@


if test ! -s /usr/bin/lambda; then 
   aleph="y"
fi
 

chitran0nn -v aleph=$aleph -v cjk=$HaveCJK -v plaintex=$plaintex -v preaddpercent=$preaddpercent -v utf8=$utf8 -v omega=$omega maintemp@ > mainfiletmp@  

#gawk -f ./chitran0nn.awk -v aleph=$aleph -v cjk=$HaveCJK -v plaintex=$plaintex -v preaddpercent=$preaddpercent -v utf8=$utf8 -v omega=$omega maintemp@ > mainfiletmp@  



if test "$HaveCJKutf8" = ""; then
chitran0nn3 -v omega=$omega -v aleph=$aleph mainfiletmp@ > mainfiletmp2@

#gawk -f /usr/bin/chitran0nn.awk -v preaddpercent=$preaddpercent -v plaintex=$plaintex -v omega=$omega maintemp@| \
#gawk -f ./chitran0nn3.awk -v omega=$omega -v aleph=$aleph mainfiletmp@ > mainfiletmp2@

#gawk -f /usr/bin/chitran0nn.awk -v preaddpercent=$preaddpercent -v plaintex=$plaintex -v omega=$omega maintemp@| \
#gawk -f /usr/bin/chitran0nn3.awk -v omega=$omega > mainfiletmp@

mv -f mainfiletmp2@ maintemp@

fi


#chitran0nn -v plaintex=$plaintex -v omega=$omega maintemp@ > mainfiletmp@  

#perl /usr/bin/chitran0nn.pl plaintex=$plaintex omega=$omega maintemp@ > mainfiletmp@  
#perl /usr/bin/chitran0nn.pl maintemp@ > mainfiletmp@  

#perl ./chitran0nn.pl  maintemp@ > mainfiletmp@  

#if test -s manification@ -o -s typesize@; then
#fi

#gawk -f /usr/bin/chitran0.awk > mainfiletmp@



#if test -s mainfiletmp@; then
#   mv -f  mainfiletmp@ maintemp@
#fi


#  /bin/rm -f nexttemp*@ 

#  /bin/rm -f nextrun@

#if test -s trancode@; then rm -f trancode@; fi
#if test -s maintemp2@;then rm -f maintemp2@; fi

#if test ! -s klinetemp@ -a ! -s klinetemp3@ -a ! -s klinetemp2@ \
#    -a ! -s klinetemp5@ ; then 


  if test "$stexf" != ""; then
     if test "$omega" != "y" -a "$utf8" != "y" -a "$HaveCJKutf8" = ""; then
        if test "$HaveBg5" = "y"; then
           sed 's/\\@@!#?@enput/\\input/g' maintemp@> maintemp2@
           mv -f maintemp2@ maintemp@
           bg5conv < maintemp@ > $filea.cjk
        else
           if test "$HaveCJK" = "y"; then
             sed 's/\\@@!#?@enput/\\input/g' maintemp@ > $filea.tmp00
           else
             sed 's/\\@@!#?@enput/\\input/g' maintemp@> maintemp2@
             mv -f maintemp2@ maintemp@             
             chicode -u maintemp@|chicodelistc > $filea.tmp00           
           fi  
        fi
     else
        sed 's/\\@@!#?@enput/\\input/g' maintemp@ > $filea.tmp00
     fi
     stexf=""
  else
     if test "$omega" != "y" -a "$HaveBg5" = ""; then  
        sed 's/\\@@!#?@enput/\\input/g' maintemp@> maintemp2@
        mv -f maintemp2@ maintemp@             
        if test "$HaveBg5" = "y"; then        
           bg5conv < maintemp@ > $filea.cjk        
        else
           chicode -u maintemp@|chicodelistc > $filea.tex
        fi   
     else
         cp maintemp@ $filea.tex
     fi   
  fi



  if test -s nextrun@; then
     chmod +x nextrun@
     ./nextrun@
  fi   

  exit

     
