#! /bin/sh

# Based on previous version of lslR
# Modified by Tomas Novak <tnovak@ipex.cz>   April 2000
#   (to allow spaces in filenames)

ZCAT="gunzip -c"
CAT="cat"

mclslRfs_list () {
case "$1" in
  *.gz) MYCAT="$ZCAT";;
  *.z)  MYCAT="$ZCAT";;
  *.Z)  MYCAT="$ZCAT";;
  *)	MYCAT="$CAT";;
esac

$MYCAT "$1" | gawk '
BEGIN { dir="" }
/^total\ [0-9]*$/ { next }
/^$/ { next }
/^[^ 	].*:$/ {
  if ($0 ~ /^\//) dir=substr($0, 2);
  else dir=$0;
  if (dir ~ /\/:$/) sub(/:$/, "", dir);
  else sub(/:$/, "/", dir);
  next;
}
/:/ {
  # gensub is not portable.
  name=$0
  sub(/^[^:]+:[^ 	]+[ 	]+/, "", name)
  attr=substr($0, 1, length($0)-length(name))
  printf "%s%s%s\n", attr, dir, name
}' 2>/dev/null
}

case "$1" in
  list) mclslRfs_list "$2"; exit 0;;
esac
exit 1
