Current Path : /compat/linux/usr/share/doc/bash-3.2/scripts.noah/ |
FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64 |
Current File : //compat/linux/usr/share/doc/bash-3.2/scripts.noah/source.bash |
# source.bash # Author: Noah Friedman <friedman@prep.ai.mit.edu> # Created: 1992-05-17 # Last modified: 1993-09-29 # Public domain # Commentary: # Code: #:docstring source: # Usage: source file ... # # Source forces file arguments to be considered in the current directory # only, unless there is an absolute path starting with `/'. I think it's # bad that the builtin "source" searches PATH, because PATH normally # contains directories with binary files that aren't useful for bash to # read and most people don't put "." first in their path. # # This "source" is capable of reading more than one file at a time. Return # value is number of failed source attempts. #:end docstring: # This function is not hygienic, but there's not much we can do about # variable name conflicts here. ###;;;autoload function source () { local -i _source_failure_count=0 local _source_file for _source_file ; do # Check first part of each filename. If it's not `/', `./', or # `../' then prepend "./" to the path to force the builtin `source' # not to go searching through PATH to find the file. case "${_source_file}" in /*|./*|../* ) ;; * ) _source_file="./${_source_file}" ;; esac builtin source "${_source_file}" || _source_failure_count="_source_failure_count + 1" done return ${_source_failure_count} } #:docstring .: # See "source" #:end docstring: # So that `.' will call function definition of `source' instead of builtin ###;;;autoload function . () { source "$@" } provide source # source.bash ends here