Only in : .gdbinit diff -rc bash-2.03.old/builtins/shopt.def builtins/shopt.def *** bash-2.03.old/builtins/shopt.def Tue Nov 10 18:56:03 1998 --- builtins/shopt.def Mon Aug 2 17:16:36 1999 *************** *** 56,62 **** #define OPTFMT "%-15s\t%s\n" ! extern int allow_null_glob_expansion, glob_dot_filenames; extern int cdable_vars, mail_warning, source_uses_path; extern int no_exit_on_failed_exec, print_shift_error; extern int check_hashed_filenames, promptvars, interactive_comments; --- 56,62 ---- #define OPTFMT "%-15s\t%s\n" ! extern int allow_null_glob_expansion, fail_glob_expansion, glob_dot_filenames; extern int cdable_vars, mail_warning, source_uses_path; extern int no_exit_on_failed_exec, print_shift_error; extern int check_hashed_filenames, promptvars, interactive_comments; *************** *** 128,133 **** --- 128,134 ---- { "mailwarn", &mail_warning, (Function *)NULL }, { "nocaseglob", &glob_ignore_case, (Function *)NULL }, { "nullglob", &allow_null_glob_expansion, (Function *)NULL }, + { "failglob", &fail_glob_expansion, (Function *)NULL }, { "promptvars", &promptvars, (Function *)NULL }, #if defined (RESTRICTED_SHELL) { "restricted_shell", &restricted_shell, set_restricted_shell }, diff -rc bash-2.03.old/doc/bash.1 doc/bash.1 *** bash-2.03.old/doc/bash.1 Wed Jan 20 22:48:04 1999 --- doc/bash.1 Mon Aug 2 17:37:38 1999 *************** *** 2305,2310 **** --- 2305,2314 ---- .B nullglob option is set, and no matches are found, the word is removed. + If the + .B failglob + option is set, and no matches are found, an error message is printed + and the command is not executed. If the shell option .B nocaseglob is enabled, the match is performed without regard to the case diff -rc bash-2.03.old/doc/bashref.texi doc/bashref.texi *** bash-2.03.old/doc/bashref.texi Wed Jan 20 22:47:01 1999 --- doc/bashref.texi Mon Aug 2 17:35:41 1999 *************** *** 1585,1591 **** and replaced with an alphabetically sorted list of file names matching the pattern. If no matching file names are found, and the shell option @code{nullglob} is disabled, the word is left ! unchanged. If the @code{nullglob} option is set, and no matches are found, the word is removed. If the shell option @code{nocaseglob} is enabled, the match is performed --- 1585,1592 ---- and replaced with an alphabetically sorted list of file names matching the pattern. If no matching file names are found, and the shell option @code{nullglob} is disabled, the word is left ! unchanged. If the @code{failglob} option is set, an error message is ! printed and the commandline is not executed. If the @code{nullglob} option is set, and no matches are found, the word is removed. If the shell option @code{nocaseglob} is enabled, the match is performed *************** *** 1598,1605 **** matched explicitly. In other cases, the @samp{.} character is not treated specially. ! See the description of @code{shopt} in @ref{Bash Builtins}, ! for a description of the @code{nocaseglob}, @code{nullglob}, and @code{dotglob} options. The @code{GLOBIGNORE} --- 1599,1606 ---- matched explicitly. In other cases, the @samp{.} character is not treated specially. ! See the description of @code{shopt} in @ref{Bash Builtins}, for a ! description of the @code{nocaseglob}, @code{nullglob}, @code{failglob} and @code{dotglob} options. The @code{GLOBIGNORE} *************** *** 3814,3819 **** --- 3815,3824 ---- @item extglob If set, the extended pattern matching features described above (@pxref{Pattern Matching}) are enabled. + + @item failglob + If set, filenames that have globbing characters in them, but don't match + anything, will cause an error. @item histappend If set, the history list is appended to the file named by the value Only in bash-2.03.old/lib/readline/doc: Makefile diff -rc bash-2.03.old/subst.c subst.c *** bash-2.03.old/subst.c Wed Jan 20 18:13:52 1999 --- subst.c Mon Aug 2 17:17:17 1999 *************** *** 96,101 **** --- 96,104 ---- a null file. */ int allow_null_glob_expansion; + /* Non-zero means to signal an error when globbing fails to match. */ + int fail_glob_expansion; + /* Variables to keep track of which words in an expanded word list (the output of expand_word_list_internal) are the result of globbing expansions. GLOB_ARGV_FLAGS is used by execute_cmd.c. */ *************** *** 5667,5672 **** --- 5670,5680 ---- { output_list = (WORD_LIST *)list_append (glob_list, output_list); PREPEND_LIST (tlist, disposables); + } + else if (fail_glob_expansion != 0) + { + report_error ("no match: %s", tlist->word->word); + jump_to_top_level (DISCARD); } else if (allow_null_glob_expansion == 0) { diff -rc bash-2.03.old/tests/shopt.right tests/shopt.right *** bash-2.03.old/tests/shopt.right Thu Sep 3 21:16:28 1998 --- tests/shopt.right Mon Aug 2 17:31:19 1999 *************** *** 20,25 **** --- 20,26 ---- shopt -u mailwarn shopt -u nocaseglob shopt -u nullglob + shopt -u failglob shopt -s promptvars shopt -u restricted_shell shopt -u shift_verbose *************** *** 51,56 **** --- 52,58 ---- shopt -u mailwarn shopt -u nocaseglob shopt -u nullglob + shopt -u failglob shopt -u restricted_shell shopt -u shift_verbose -- *************** *** 68,73 **** --- 70,76 ---- mailwarn off nocaseglob off nullglob off + failglob off restricted_shell off shift_verbose off -- *************** *** 190,192 **** --- 193,197 ---- -- ./shopt.tests: shopt: xyz1: unknown shell option name ./shopt.tests: shopt: xyz1: unknown option name + tmp/l1 tmp/l2 tmp/*4 tmp/l3 + ./shopt.tests: no match: tmp/*4 diff -rc bash-2.03.old/tests/shopt.tests tests/shopt.tests *** bash-2.03.old/tests/shopt.tests Thu Nov 20 17:59:32 1997 --- tests/shopt.tests Mon Aug 2 17:26:43 1999 *************** *** 21,26 **** --- 21,27 ---- shopt -u mailwarn shopt -u nocaseglob shopt -u nullglob + shopt -u failglob shopt -s promptvars shopt -u shift_verbose shopt -s sourcepath *************** *** 91,93 **** --- 92,102 ---- builtin printf -- "--\n" shopt -p xyz1 shopt -o -p xyz1 + + mkdir tmp + touch tmp/l1 tmp/l2 tmp/l3 + builtin echo tmp/l[12] tmp/*4 tmp/*3 + shopt -s failglob + builtin echo tmp/l[12] tmp/*4 tmp/*3 + rm -r tmp + shopt -u failglob