print_ext_c() { echo "c h"; } print_ext_cxx() { echo "cxx cpp cc h hh hpp ipp tpp"; } locate_source_files() { local sources=($(eval print_ext_${1:1})) eval find "${@:2}" -type f \ \\\( \ -name '__blank__' \ $(printf " -o -name '*.%s'" "${sources[@]}") \ \\\) }