#!/bin/sh filter_deleted() { local rc_file="$1" shift local cand for cand in "$@"; do grep -q "^R ./$cand/" $rc_file && continue echo $cand done } list_dirents() { local dirs=`sed '/^D\// !d; s%^D/%%; s%/.*%%' $1/CVS/Entries` dirs="`filter_deleted $1/CVS/Entries $dirs`" local cands if [ -f $1/CVS/Entries.Log ]; then cands="`sed '/^A D\// !d; s%^A D/%%; s%/.*%%' $1/CVS/Entries.Log`" dirs="$dirs `filter_deleted $1/CVS/Entries.Log $cands`" fi local files=`sed '/^\// !d; s%/%%; s%/.*%%; s%^%%' $1/CVS/Entries` files="`filter_deleted $1/CVS/Entries $files`" local d f for f in $files; do echo $1/$f done for d in $dirs; do [ "$opt_only_regular_files" != 1 ] && echo $1/$d list_dirents $1/$d done } set -- `getopt f "$@"` while [ "$1" != -- ]; do case $1 in -f) opt_only_regular_files=1 ;; esac shift done shift list_dirents .