summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Cracauer <cracauer@FreeBSD.org>1999-12-03 19:50:51 +0000
committerMartin Cracauer <cracauer@FreeBSD.org>1999-12-03 19:50:51 +0000
commit77472e15015b3230a4ee1cdde17a4c239c159819 (patch)
tree9f1b63f45417bfed5a093d7bfa4187e0e74f13b1
parentUpdate to 4.pre2.500: (diff)
Add `failglob' option as announced on -ports mailing list.
Notes
Notes: svn path=/head/; revision=23565
-rw-r--r--shells/bash/files/patch-ae198
-rw-r--r--shells/bash2/files/patch-ae198
-rw-r--r--shells/bash3/files/patch-ae198
3 files changed, 594 insertions, 0 deletions
diff --git a/shells/bash/files/patch-ae b/shells/bash/files/patch-ae
new file mode 100644
index 000000000000..5b7b8a75a9a6
--- /dev/null
+++ b/shells/bash/files/patch-ae
@@ -0,0 +1,198 @@
+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
diff --git a/shells/bash2/files/patch-ae b/shells/bash2/files/patch-ae
new file mode 100644
index 000000000000..5b7b8a75a9a6
--- /dev/null
+++ b/shells/bash2/files/patch-ae
@@ -0,0 +1,198 @@
+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
diff --git a/shells/bash3/files/patch-ae b/shells/bash3/files/patch-ae
new file mode 100644
index 000000000000..5b7b8a75a9a6
--- /dev/null
+++ b/shells/bash3/files/patch-ae
@@ -0,0 +1,198 @@
+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