10 REM > BLib.Suffix 1.00 11-Jan-2009
   20 :
   30 REM Ensure filename extension
   40 REM =========================
   50 REM Requires: sfx%=>block of memory holding suffixes file
   60 REM           FNlc(), FNuc()
   70 :
   80 REM FNfn_sfx(file$,type%)
   90 REM ---------------------
  100 REM On entry: file$=filename to add suffix to
  110 REM           type%=filetype to match
  120 REM On exit:  Returns filename with extended file extension if truncated on entry
  130 REM           eg "main/h" -> "main/h", but "mainpage/h" -> "mainpage/htm" if type%=&FAF
  140 :
  150 DEFFNfn_sfx(n$,t%):LOCALe%,f%,sp%,xt$:IFLENn$<10ORsfx%=0:=n$
  160 A%=0:REPEATe%=A%+1:A%=INSTR(n$,".",e%):UNTILA%=0:IFLENn$-e%<9:=n$ELSEe%=INSTR(n$,"/",e%):IFe%=0:=n$
  170 xt$=FNlc(MID$(n$,e%+1)):sp%=sfx%:REPEAT:f%=LEFT$($sp%,LENxt$)=xt$:IFsp%?3=44:f%=f%ANDt%=EVAL("&"+$(sp%+4))
  180 A%=sp%:sp%=sp%+1+LEN$sp%:UNTIL?sp%=13ORf%:IFf%:xt$=LEFT$($A%,3)
  190 IFRIGHT$(n$,1)<="_":IFRIGHT$(n$,1)<>"/":xt$=FNuc(xt$)
  200 =LEFT$(n$,e%-1)+"/"+xt$
  210 :