1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-25 04:43:33 +00:00

* Update to 2.05a.

* Split failglob patch into per-file patches.

Reviewed by:	obrien
This commit is contained in:
Christian Weisgerber 2001-11-21 01:40:39 +00:00
parent fcb81602de
commit 452e627854
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=50311
39 changed files with 567 additions and 618 deletions

View File

@ -7,7 +7,7 @@
#
PORTNAME= bash
PORTVERSION= 2.05
PORTVERSION= 2.05a
CATEGORIES= shells
MASTER_SITES= ${MASTER_SITE_GNU} \
ftp://ftp.cwru.edu/pub/bash/

View File

@ -1,2 +1,2 @@
MD5 (bash-2.05.tar.gz) = fe40d1633203c1ca6f2a6dfc6d097c48
MD5 (bash-doc-2.05.tar.gz) = 9bb3026e0a7cafcf592eea8f357e9f14
MD5 (bash-2.05a.tar.gz) = eeabc3f624861c4a8a687f7701db3d06
MD5 (bash-doc-2.05a.tar.gz) = c86e07eb43c3a1a9b2c830b6bff1331d

View File

@ -1,21 +0,0 @@
*** doc/Makefile.in.bak Fri Jan 31 00:12:33 1997
--- doc/Makefile.in Sat Jun 28 02:23:01 1997
***************
*** 155,161 ****
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
! install-info --dir-file=$(infodir)/dir $(infodir)/bash.info; \
else true; fi
uninstall:
--- 155,163 ----
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
! install-info \
! --entry="* BASH: (bash). Bash Reference Manual." \
! --dir-file=$(infodir)/dir $(infodir)/bash.info; \
else true; fi
uninstall:

View File

@ -1,11 +1,24 @@
--- Makefile.in.orig Wed Mar 1 22:52:12 2000
+++ Makefile.in Mon May 8 00:05:03 2000
@@ -582,7 +582,7 @@
$FreeBSD$
--- Makefile.in.orig Mon Nov 12 17:42:45 2001
+++ Makefile.in Wed Nov 21 00:08:16 2001
@@ -59,6 +59,7 @@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
INSTALLMODE= -m 0755
INSTALLMODE2 = -m 0555
@@ -627,8 +628,8 @@
@${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(infodir)
install: .made installdirs
$(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(bindir)/$(Program)
- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(bindir)/bashbug
+ $(INSTALL) $(INSTALLMODE2) bashbug $(bindir)/bashbug
- $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
+ $(INSTALL_PROGRAM) $(Program) $(DESTDIR)$(bindir)/$(Program)
+ $(INSTALL_SCRIPT) bashbug $(DESTDIR)$(bindir)/bashbug
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \

View File

@ -1,14 +1,14 @@
$FreeBSD$
--- configure.orig Tue Jan 23 19:57:28 2001
+++ configure Tue Apr 10 12:17:23 2001
@@ -763,7 +763,7 @@
--- configure.orig Mon Nov 19 18:27:10 2001
+++ configure Mon Nov 19 18:27:17 2001
@@ -1108,7 +1108,7 @@
mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
-#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
+*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
+*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
*-aix*) opt_bash_malloc=no ;; # AIX machines
*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
*-macos*) opt_bash_malloc=no ;; # Apple MacOS X

View File

@ -1,151 +0,0 @@
diff -ru ../work/bash-2.04/builtins/shopt.def ./builtins/shopt.def
--- ../work/bash-2.04/builtins/shopt.def Tue Sep 21 17:20:01 1999
+++ ./builtins/shopt.def Wed May 24 12:18:31 2000
@@ -56,7 +56,7 @@
#define OPTFMT "%-15s\t%s\n"
-extern int allow_null_glob_expansion, glob_dot_filenames;
+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;
@@ -137,6 +137,7 @@
#endif
{ "nocaseglob", &glob_ignore_case, (Function *)NULL },
{ "nullglob", &allow_null_glob_expansion, (Function *)NULL },
+ { "failglob", &fail_glob_expansion, (Function *)NULL },
#if defined (PROGRAMMABLE_COMPLETION)
{ "progcomp", &prog_completion_enabled, (Function *)NULL },
#endif
diff -ru ../work/bash-2.04/doc/bash.1 ./doc/bash.1
--- ../work/bash-2.04/doc/bash.1 Tue Mar 14 17:37:56 2000
+++ ./doc/bash.1 Wed May 24 12:17:39 2000
@@ -2414,6 +2414,10 @@
.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 -ru ../work/bash-2.04/doc/bashref.texi ./doc/bashref.texi
--- ../work/bash-2.04/doc/bashref.texi Tue Mar 14 17:38:33 2000
+++ ./doc/bashref.texi Wed May 24 12:17:39 2000
@@ -1679,7 +1679,8 @@
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.
+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
@@ -1692,8 +1693,8 @@
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},
+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}
@@ -3319,6 +3320,10 @@
@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 ../work/bash-2.04/lib/readline/doc: Makefile
diff -ru ../work/bash-2.04/subst.c ./subst.c
--- ../work/bash-2.04/subst.c Tue Mar 14 16:42:02 2000
+++ ./subst.c Wed May 24 12:17:39 2000
@@ -106,6 +106,9 @@
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. */
@@ -6018,6 +6021,11 @@
{
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 -ru ../work/bash-2.04/tests/shopt.right ./tests/shopt.right
--- ../work/bash-2.04/tests/shopt.right Tue Sep 21 17:55:58 1999
+++ ./tests/shopt.right Wed May 24 12:17:23 2000
@@ -21,6 +21,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
@@ -56,6 +57,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -u restricted_shell
shopt -u shift_verbose
shopt -u xpg_echo
@@ -75,6 +77,7 @@
no_empty_cmd_completion off
nocaseglob off
nullglob off
+failglob off
restricted_shell off
shift_verbose off
xpg_echo off
@@ -198,3 +201,5 @@
--
./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 -ru ../work/bash-2.04/tests/shopt.tests ./tests/shopt.tests
--- ../work/bash-2.04/tests/shopt.tests Tue Sep 21 17:49:32 1999
+++ ./tests/shopt.tests Wed May 24 12:17:39 2000
@@ -21,6 +21,7 @@
shopt -u mailwarn
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s promptvars
shopt -u shift_verbose
shopt -s sourcepath
@@ -92,3 +93,11 @@
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

View File

@ -0,0 +1,22 @@
$FreeBSD$
--- builtins/shopt.def.orig Tue Sep 11 21:55:06 2001
+++ builtins/shopt.def Tue Nov 20 23:52:45 2001
@@ -56,7 +56,7 @@
#define OPTFMT "%-15s\t%s\n"
-extern int allow_null_glob_expansion, glob_dot_filenames;
+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;
@@ -140,6 +140,7 @@
#endif
{ "nocaseglob", &glob_ignore_case, (shopt_set_func_t *)NULL },
{ "nullglob", &allow_null_glob_expansion, (shopt_set_func_t *)NULL },
+ { "failglob", &fail_glob_expansion, (Function *)NULL },
#if defined (PROGRAMMABLE_COMPLETION)
{ "progcomp", &prog_completion_enabled, (shopt_set_func_t *)NULL },
#endif

View File

@ -0,0 +1,16 @@
$FreeBSD$
--- doc/bash.1.orig Tue Nov 13 18:55:59 2001
+++ doc/bash.1 Tue Nov 20 23:52:45 2001
@@ -2473,6 +2473,10 @@
.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

View File

@ -0,0 +1,37 @@
$FreeBSD$
--- doc/bashref.texi.orig Tue Nov 13 18:55:03 2001
+++ doc/bashref.texi Tue Nov 20 23:52:45 2001
@@ -1700,7 +1700,8 @@
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.
+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
@@ -1713,8 +1714,8 @@
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},
+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 @env{GLOBIGNORE}
@@ -3372,6 +3373,10 @@
@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

View File

@ -1,20 +0,0 @@
--- execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
+++ execute_cmd.c Tue May 2 21:26:24 2000
@@ -2762,6 +2762,8 @@
if (tc && (flags & CMD_IGNORE_RETURN))
tc->flags |= CMD_IGNORE_RETURN;
+ old_shell_function = this_shell_function;
+
if (subshell == 0)
{
begin_unwind_frame ("function_calling");
@@ -2843,6 +2845,8 @@
if (variable_context == 0 || this_shell_function == 0)
make_funcname_visible (0);
+
+ this_shell_function = old_shell_function;
return (result);
}

View File

@ -0,0 +1,27 @@
$FreeBSD$
--- subst.c.orig Mon Nov 5 20:19:49 2001
+++ subst.c Tue Nov 20 23:52:45 2001
@@ -121,6 +121,9 @@
a null file. */
int allow_null_glob_expansion;
+/* Non-zero means to signal an error when globbing fails to match. */
+int fail_glob_expansion;
+
#if 0
/* Variables to keep track of which words in an expanded word list (the
output of expand_word_list_internal) are the result of globbing
@@ -6132,6 +6135,11 @@
{
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)
{

View File

@ -0,0 +1,35 @@
$FreeBSD$
--- tests/shopt.right.orig Wed May 9 19:40:39 2001
+++ tests/shopt.right Tue Nov 20 23:52:45 2001
@@ -22,6 +22,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
@@ -58,6 +59,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -u restricted_shell
shopt -u shift_verbose
shopt -u xpg_echo
@@ -78,6 +80,7 @@
no_empty_cmd_completion off
nocaseglob off
nullglob off
+failglob off
restricted_shell off
shift_verbose off
xpg_echo off
@@ -205,3 +208,5 @@
--
./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

View File

@ -0,0 +1,25 @@
$FreeBSD$
--- tests/shopt.tests.orig Tue Sep 21 17:49:32 1999
+++ tests/shopt.tests Tue Nov 20 23:52:45 2001
@@ -21,6 +21,7 @@
shopt -u mailwarn
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s promptvars
shopt -u shift_verbose
shopt -s sourcepath
@@ -92,3 +93,11 @@
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

View File

@ -7,7 +7,7 @@
#
PORTNAME= bash
PORTVERSION= 2.05
PORTVERSION= 2.05a
CATEGORIES= shells
MASTER_SITES= ${MASTER_SITE_GNU} \
ftp://ftp.cwru.edu/pub/bash/

View File

@ -1,2 +1,2 @@
MD5 (bash-2.05.tar.gz) = fe40d1633203c1ca6f2a6dfc6d097c48
MD5 (bash-doc-2.05.tar.gz) = 9bb3026e0a7cafcf592eea8f357e9f14
MD5 (bash-2.05a.tar.gz) = eeabc3f624861c4a8a687f7701db3d06
MD5 (bash-doc-2.05a.tar.gz) = c86e07eb43c3a1a9b2c830b6bff1331d

View File

@ -1,21 +0,0 @@
*** doc/Makefile.in.bak Fri Jan 31 00:12:33 1997
--- doc/Makefile.in Sat Jun 28 02:23:01 1997
***************
*** 155,161 ****
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
! install-info --dir-file=$(infodir)/dir $(infodir)/bash.info; \
else true; fi
uninstall:
--- 155,163 ----
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
! install-info \
! --entry="* BASH: (bash). Bash Reference Manual." \
! --dir-file=$(infodir)/dir $(infodir)/bash.info; \
else true; fi
uninstall:

View File

@ -1,11 +1,24 @@
--- Makefile.in.orig Wed Mar 1 22:52:12 2000
+++ Makefile.in Mon May 8 00:05:03 2000
@@ -582,7 +582,7 @@
$FreeBSD$
--- Makefile.in.orig Mon Nov 12 17:42:45 2001
+++ Makefile.in Wed Nov 21 00:08:16 2001
@@ -59,6 +59,7 @@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
INSTALLMODE= -m 0755
INSTALLMODE2 = -m 0555
@@ -627,8 +628,8 @@
@${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(infodir)
install: .made installdirs
$(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(bindir)/$(Program)
- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(bindir)/bashbug
+ $(INSTALL) $(INSTALLMODE2) bashbug $(bindir)/bashbug
- $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
+ $(INSTALL_PROGRAM) $(Program) $(DESTDIR)$(bindir)/$(Program)
+ $(INSTALL_SCRIPT) bashbug $(DESTDIR)$(bindir)/bashbug
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \

View File

@ -1,14 +1,14 @@
$FreeBSD$
--- configure.orig Tue Jan 23 19:57:28 2001
+++ configure Tue Apr 10 12:17:23 2001
@@ -763,7 +763,7 @@
--- configure.orig Mon Nov 19 18:27:10 2001
+++ configure Mon Nov 19 18:27:17 2001
@@ -1108,7 +1108,7 @@
mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
-#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
+*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
+*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
*-aix*) opt_bash_malloc=no ;; # AIX machines
*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
*-macos*) opt_bash_malloc=no ;; # Apple MacOS X

View File

@ -1,151 +0,0 @@
diff -ru ../work/bash-2.04/builtins/shopt.def ./builtins/shopt.def
--- ../work/bash-2.04/builtins/shopt.def Tue Sep 21 17:20:01 1999
+++ ./builtins/shopt.def Wed May 24 12:18:31 2000
@@ -56,7 +56,7 @@
#define OPTFMT "%-15s\t%s\n"
-extern int allow_null_glob_expansion, glob_dot_filenames;
+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;
@@ -137,6 +137,7 @@
#endif
{ "nocaseglob", &glob_ignore_case, (Function *)NULL },
{ "nullglob", &allow_null_glob_expansion, (Function *)NULL },
+ { "failglob", &fail_glob_expansion, (Function *)NULL },
#if defined (PROGRAMMABLE_COMPLETION)
{ "progcomp", &prog_completion_enabled, (Function *)NULL },
#endif
diff -ru ../work/bash-2.04/doc/bash.1 ./doc/bash.1
--- ../work/bash-2.04/doc/bash.1 Tue Mar 14 17:37:56 2000
+++ ./doc/bash.1 Wed May 24 12:17:39 2000
@@ -2414,6 +2414,10 @@
.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 -ru ../work/bash-2.04/doc/bashref.texi ./doc/bashref.texi
--- ../work/bash-2.04/doc/bashref.texi Tue Mar 14 17:38:33 2000
+++ ./doc/bashref.texi Wed May 24 12:17:39 2000
@@ -1679,7 +1679,8 @@
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.
+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
@@ -1692,8 +1693,8 @@
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},
+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}
@@ -3319,6 +3320,10 @@
@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 ../work/bash-2.04/lib/readline/doc: Makefile
diff -ru ../work/bash-2.04/subst.c ./subst.c
--- ../work/bash-2.04/subst.c Tue Mar 14 16:42:02 2000
+++ ./subst.c Wed May 24 12:17:39 2000
@@ -106,6 +106,9 @@
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. */
@@ -6018,6 +6021,11 @@
{
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 -ru ../work/bash-2.04/tests/shopt.right ./tests/shopt.right
--- ../work/bash-2.04/tests/shopt.right Tue Sep 21 17:55:58 1999
+++ ./tests/shopt.right Wed May 24 12:17:23 2000
@@ -21,6 +21,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
@@ -56,6 +57,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -u restricted_shell
shopt -u shift_verbose
shopt -u xpg_echo
@@ -75,6 +77,7 @@
no_empty_cmd_completion off
nocaseglob off
nullglob off
+failglob off
restricted_shell off
shift_verbose off
xpg_echo off
@@ -198,3 +201,5 @@
--
./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 -ru ../work/bash-2.04/tests/shopt.tests ./tests/shopt.tests
--- ../work/bash-2.04/tests/shopt.tests Tue Sep 21 17:49:32 1999
+++ ./tests/shopt.tests Wed May 24 12:17:39 2000
@@ -21,6 +21,7 @@
shopt -u mailwarn
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s promptvars
shopt -u shift_verbose
shopt -s sourcepath
@@ -92,3 +93,11 @@
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

View File

@ -0,0 +1,22 @@
$FreeBSD$
--- builtins/shopt.def.orig Tue Sep 11 21:55:06 2001
+++ builtins/shopt.def Tue Nov 20 23:52:45 2001
@@ -56,7 +56,7 @@
#define OPTFMT "%-15s\t%s\n"
-extern int allow_null_glob_expansion, glob_dot_filenames;
+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;
@@ -140,6 +140,7 @@
#endif
{ "nocaseglob", &glob_ignore_case, (shopt_set_func_t *)NULL },
{ "nullglob", &allow_null_glob_expansion, (shopt_set_func_t *)NULL },
+ { "failglob", &fail_glob_expansion, (Function *)NULL },
#if defined (PROGRAMMABLE_COMPLETION)
{ "progcomp", &prog_completion_enabled, (shopt_set_func_t *)NULL },
#endif

View File

@ -0,0 +1,16 @@
$FreeBSD$
--- doc/bash.1.orig Tue Nov 13 18:55:59 2001
+++ doc/bash.1 Tue Nov 20 23:52:45 2001
@@ -2473,6 +2473,10 @@
.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

View File

@ -0,0 +1,37 @@
$FreeBSD$
--- doc/bashref.texi.orig Tue Nov 13 18:55:03 2001
+++ doc/bashref.texi Tue Nov 20 23:52:45 2001
@@ -1700,7 +1700,8 @@
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.
+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
@@ -1713,8 +1714,8 @@
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},
+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 @env{GLOBIGNORE}
@@ -3372,6 +3373,10 @@
@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

View File

@ -1,20 +0,0 @@
--- execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
+++ execute_cmd.c Tue May 2 21:26:24 2000
@@ -2762,6 +2762,8 @@
if (tc && (flags & CMD_IGNORE_RETURN))
tc->flags |= CMD_IGNORE_RETURN;
+ old_shell_function = this_shell_function;
+
if (subshell == 0)
{
begin_unwind_frame ("function_calling");
@@ -2843,6 +2845,8 @@
if (variable_context == 0 || this_shell_function == 0)
make_funcname_visible (0);
+
+ this_shell_function = old_shell_function;
return (result);
}

View File

@ -0,0 +1,27 @@
$FreeBSD$
--- subst.c.orig Mon Nov 5 20:19:49 2001
+++ subst.c Tue Nov 20 23:52:45 2001
@@ -121,6 +121,9 @@
a null file. */
int allow_null_glob_expansion;
+/* Non-zero means to signal an error when globbing fails to match. */
+int fail_glob_expansion;
+
#if 0
/* Variables to keep track of which words in an expanded word list (the
output of expand_word_list_internal) are the result of globbing
@@ -6132,6 +6135,11 @@
{
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)
{

View File

@ -0,0 +1,35 @@
$FreeBSD$
--- tests/shopt.right.orig Wed May 9 19:40:39 2001
+++ tests/shopt.right Tue Nov 20 23:52:45 2001
@@ -22,6 +22,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
@@ -58,6 +59,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -u restricted_shell
shopt -u shift_verbose
shopt -u xpg_echo
@@ -78,6 +80,7 @@
no_empty_cmd_completion off
nocaseglob off
nullglob off
+failglob off
restricted_shell off
shift_verbose off
xpg_echo off
@@ -205,3 +208,5 @@
--
./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

View File

@ -0,0 +1,25 @@
$FreeBSD$
--- tests/shopt.tests.orig Tue Sep 21 17:49:32 1999
+++ tests/shopt.tests Tue Nov 20 23:52:45 2001
@@ -21,6 +21,7 @@
shopt -u mailwarn
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s promptvars
shopt -u shift_verbose
shopt -s sourcepath
@@ -92,3 +93,11 @@
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

View File

@ -7,7 +7,7 @@
#
PORTNAME= bash
PORTVERSION= 2.05
PORTVERSION= 2.05a
CATEGORIES= shells
MASTER_SITES= ${MASTER_SITE_GNU} \
ftp://ftp.cwru.edu/pub/bash/

View File

@ -1,2 +1,2 @@
MD5 (bash-2.05.tar.gz) = fe40d1633203c1ca6f2a6dfc6d097c48
MD5 (bash-doc-2.05.tar.gz) = 9bb3026e0a7cafcf592eea8f357e9f14
MD5 (bash-2.05a.tar.gz) = eeabc3f624861c4a8a687f7701db3d06
MD5 (bash-doc-2.05a.tar.gz) = c86e07eb43c3a1a9b2c830b6bff1331d

View File

@ -1,21 +0,0 @@
*** doc/Makefile.in.bak Fri Jan 31 00:12:33 1997
--- doc/Makefile.in Sat Jun 28 02:23:01 1997
***************
*** 155,161 ****
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
! install-info --dir-file=$(infodir)/dir $(infodir)/bash.info; \
else true; fi
uninstall:
--- 155,163 ----
-$(INSTALL_DATA) $(srcdir)/bashref.info $(infodir)/bash.info
# run install-info if it is present to update the info directory
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then \
! install-info \
! --entry="* BASH: (bash). Bash Reference Manual." \
! --dir-file=$(infodir)/dir $(infodir)/bash.info; \
else true; fi
uninstall:

View File

@ -1,11 +1,24 @@
--- Makefile.in.orig Wed Mar 1 22:52:12 2000
+++ Makefile.in Mon May 8 00:05:03 2000
@@ -582,7 +582,7 @@
$FreeBSD$
--- Makefile.in.orig Mon Nov 12 17:42:45 2001
+++ Makefile.in Wed Nov 21 00:08:16 2001
@@ -59,6 +59,7 @@
INSTALL = @INSTALL@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_DATA = @INSTALL_DATA@
INSTALLMODE= -m 0755
INSTALLMODE2 = -m 0555
@@ -627,8 +628,8 @@
@${SHELL} $(SUPPORT_SRC)mkdirs $(DESTDIR)$(infodir)
install: .made installdirs
$(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(bindir)/$(Program)
- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(bindir)/bashbug
+ $(INSTALL) $(INSTALLMODE2) bashbug $(bindir)/bashbug
- $(INSTALL_PROGRAM) $(INSTALLMODE) $(Program) $(DESTDIR)$(bindir)/$(Program)
- $(INSTALL_PROGRAM) $(INSTALLMODE2) bashbug $(DESTDIR)$(bindir)/bashbug
+ $(INSTALL_PROGRAM) $(Program) $(DESTDIR)$(bindir)/$(Program)
+ $(INSTALL_SCRIPT) bashbug $(DESTDIR)$(bindir)/bashbug
-( cd $(DOCDIR) ; $(MAKE) $(MFLAGS) \
man1dir=$(man1dir) man1ext=$(man1ext) \
man3dir=$(man3dir) man3ext=$(man3ext) \

View File

@ -1,14 +1,14 @@
$FreeBSD$
--- configure.orig Tue Jan 23 19:57:28 2001
+++ configure Tue Apr 10 12:17:23 2001
@@ -763,7 +763,7 @@
--- configure.orig Mon Nov 19 18:27:10 2001
+++ configure Mon Nov 19 18:27:17 2001
@@ -1108,7 +1108,7 @@
mips-irix6*) opt_bash_malloc=no ;; # needs 8-byte alignment
m68k-sysv) opt_bash_malloc=no ;; # fixes file descriptor leak in closedir
sparc-linux*) opt_bash_malloc=no ;; # sparc running linux; requires ELF
-#*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
+*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
+*-freebsd*) opt_bash_malloc=no ;; # they claim it's better
*-openbsd*) opt_bash_malloc=no ;; # they claim it needs eight-bit alignment
*-aix*) opt_bash_malloc=no ;; # AIX machines
*-nextstep*) opt_bash_malloc=no ;; # NeXT machines running NeXTstep
*-macos*) opt_bash_malloc=no ;; # Apple MacOS X

View File

@ -1,151 +0,0 @@
diff -ru ../work/bash-2.04/builtins/shopt.def ./builtins/shopt.def
--- ../work/bash-2.04/builtins/shopt.def Tue Sep 21 17:20:01 1999
+++ ./builtins/shopt.def Wed May 24 12:18:31 2000
@@ -56,7 +56,7 @@
#define OPTFMT "%-15s\t%s\n"
-extern int allow_null_glob_expansion, glob_dot_filenames;
+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;
@@ -137,6 +137,7 @@
#endif
{ "nocaseglob", &glob_ignore_case, (Function *)NULL },
{ "nullglob", &allow_null_glob_expansion, (Function *)NULL },
+ { "failglob", &fail_glob_expansion, (Function *)NULL },
#if defined (PROGRAMMABLE_COMPLETION)
{ "progcomp", &prog_completion_enabled, (Function *)NULL },
#endif
diff -ru ../work/bash-2.04/doc/bash.1 ./doc/bash.1
--- ../work/bash-2.04/doc/bash.1 Tue Mar 14 17:37:56 2000
+++ ./doc/bash.1 Wed May 24 12:17:39 2000
@@ -2414,6 +2414,10 @@
.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 -ru ../work/bash-2.04/doc/bashref.texi ./doc/bashref.texi
--- ../work/bash-2.04/doc/bashref.texi Tue Mar 14 17:38:33 2000
+++ ./doc/bashref.texi Wed May 24 12:17:39 2000
@@ -1679,7 +1679,8 @@
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.
+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
@@ -1692,8 +1693,8 @@
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},
+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}
@@ -3319,6 +3320,10 @@
@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 ../work/bash-2.04/lib/readline/doc: Makefile
diff -ru ../work/bash-2.04/subst.c ./subst.c
--- ../work/bash-2.04/subst.c Tue Mar 14 16:42:02 2000
+++ ./subst.c Wed May 24 12:17:39 2000
@@ -106,6 +106,9 @@
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. */
@@ -6018,6 +6021,11 @@
{
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 -ru ../work/bash-2.04/tests/shopt.right ./tests/shopt.right
--- ../work/bash-2.04/tests/shopt.right Tue Sep 21 17:55:58 1999
+++ ./tests/shopt.right Wed May 24 12:17:23 2000
@@ -21,6 +21,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
@@ -56,6 +57,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -u restricted_shell
shopt -u shift_verbose
shopt -u xpg_echo
@@ -75,6 +77,7 @@
no_empty_cmd_completion off
nocaseglob off
nullglob off
+failglob off
restricted_shell off
shift_verbose off
xpg_echo off
@@ -198,3 +201,5 @@
--
./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 -ru ../work/bash-2.04/tests/shopt.tests ./tests/shopt.tests
--- ../work/bash-2.04/tests/shopt.tests Tue Sep 21 17:49:32 1999
+++ ./tests/shopt.tests Wed May 24 12:17:39 2000
@@ -21,6 +21,7 @@
shopt -u mailwarn
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s promptvars
shopt -u shift_verbose
shopt -s sourcepath
@@ -92,3 +93,11 @@
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

View File

@ -0,0 +1,22 @@
$FreeBSD$
--- builtins/shopt.def.orig Tue Sep 11 21:55:06 2001
+++ builtins/shopt.def Tue Nov 20 23:52:45 2001
@@ -56,7 +56,7 @@
#define OPTFMT "%-15s\t%s\n"
-extern int allow_null_glob_expansion, glob_dot_filenames;
+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;
@@ -140,6 +140,7 @@
#endif
{ "nocaseglob", &glob_ignore_case, (shopt_set_func_t *)NULL },
{ "nullglob", &allow_null_glob_expansion, (shopt_set_func_t *)NULL },
+ { "failglob", &fail_glob_expansion, (Function *)NULL },
#if defined (PROGRAMMABLE_COMPLETION)
{ "progcomp", &prog_completion_enabled, (shopt_set_func_t *)NULL },
#endif

View File

@ -0,0 +1,16 @@
$FreeBSD$
--- doc/bash.1.orig Tue Nov 13 18:55:59 2001
+++ doc/bash.1 Tue Nov 20 23:52:45 2001
@@ -2473,6 +2473,10 @@
.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

View File

@ -0,0 +1,37 @@
$FreeBSD$
--- doc/bashref.texi.orig Tue Nov 13 18:55:03 2001
+++ doc/bashref.texi Tue Nov 20 23:52:45 2001
@@ -1700,7 +1700,8 @@
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.
+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
@@ -1713,8 +1714,8 @@
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},
+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 @env{GLOBIGNORE}
@@ -3372,6 +3373,10 @@
@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

View File

@ -1,20 +0,0 @@
--- execute_cmd.c.shellfunc Tue Jan 25 11:29:11 2000
+++ execute_cmd.c Tue May 2 21:26:24 2000
@@ -2762,6 +2762,8 @@
if (tc && (flags & CMD_IGNORE_RETURN))
tc->flags |= CMD_IGNORE_RETURN;
+ old_shell_function = this_shell_function;
+
if (subshell == 0)
{
begin_unwind_frame ("function_calling");
@@ -2843,6 +2845,8 @@
if (variable_context == 0 || this_shell_function == 0)
make_funcname_visible (0);
+
+ this_shell_function = old_shell_function;
return (result);
}

View File

@ -0,0 +1,27 @@
$FreeBSD$
--- subst.c.orig Mon Nov 5 20:19:49 2001
+++ subst.c Tue Nov 20 23:52:45 2001
@@ -121,6 +121,9 @@
a null file. */
int allow_null_glob_expansion;
+/* Non-zero means to signal an error when globbing fails to match. */
+int fail_glob_expansion;
+
#if 0
/* Variables to keep track of which words in an expanded word list (the
output of expand_word_list_internal) are the result of globbing
@@ -6132,6 +6135,11 @@
{
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)
{

View File

@ -0,0 +1,35 @@
$FreeBSD$
--- tests/shopt.right.orig Wed May 9 19:40:39 2001
+++ tests/shopt.right Tue Nov 20 23:52:45 2001
@@ -22,6 +22,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s progcomp
shopt -s promptvars
shopt -u restricted_shell
@@ -58,6 +59,7 @@
shopt -u no_empty_cmd_completion
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -u restricted_shell
shopt -u shift_verbose
shopt -u xpg_echo
@@ -78,6 +80,7 @@
no_empty_cmd_completion off
nocaseglob off
nullglob off
+failglob off
restricted_shell off
shift_verbose off
xpg_echo off
@@ -205,3 +208,5 @@
--
./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

View File

@ -0,0 +1,25 @@
$FreeBSD$
--- tests/shopt.tests.orig Tue Sep 21 17:49:32 1999
+++ tests/shopt.tests Tue Nov 20 23:52:45 2001
@@ -21,6 +21,7 @@
shopt -u mailwarn
shopt -u nocaseglob
shopt -u nullglob
+shopt -u failglob
shopt -s promptvars
shopt -u shift_verbose
shopt -s sourcepath
@@ -92,3 +93,11 @@
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