#!/usr/bin/ksh93
################################################################
#### Program: fgrep_k93
#### 
#### Description: Emulation of the Unix "fgrep" command
#### 
#### Author: Dana French (dfrench@mtxia.com)
####         Copyright 2004
#### 
#### Date: 07/22/2004
#### 
################################################################
function fgrep_k93
{
  typeset TRUE="0"
  typeset FALSE="1"
  typeset FNAME=""
  typeset LINE
  typeset FLAB=""
  typeset SRCH="${1}"
  shift
  typeset STDIN="${1:+${FALSE}}"
  STDIN="${STDIN:-${TRUE}}"

  if (( STDIN == TRUE ))
  then
    printMatchLine_k93 SRCH FLAB
  else
    for FNAME in "${@}"
    do
      (( ${#} > 1 )) && FLAB="${FNAME}:"
      exec 0<"${FNAME}"
        printMatchLine_k93 SRCH FLAB
      exec 0<&-
    done
  fi
  return 0
}
################################################################
function printMatchLine_k93 {
  nameref SRCH="${1}"
  nameref FLAB="${2}"
  typeset LINE
  IFS=""
  while IFS="" read -r -- LINE
  do
    [[ "_${LINE}" = _*+(${SRCH})* ]] && print -r -- "${FLAB}${LINE}"
  done
  return 0
}
################################################################

fgrep_k93 "${@}"