Resolves: #432579. Added check for "command_not_found_handler" shell
function.
This commit is contained in:
parent
0314d4fed5
commit
e96c4c2deb
49
bash-3.2-command_not_found.patch
Normal file
49
bash-3.2-command_not_found.patch
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
diff -up bash-3.2/config-top.h.command_not_found bash-3.2/config-top.h
|
||||||
|
--- bash-3.2/config-top.h.command_not_found 2008-12-04 15:45:21.000000000 +0100
|
||||||
|
+++ bash-3.2/config-top.h 2008-12-04 15:45:55.000000000 +0100
|
||||||
|
@@ -87,3 +87,7 @@
|
||||||
|
/* Define this if you want bash to try to check whether it's being run by
|
||||||
|
sshd and source the .bashrc if so (like the rshd behavior). */
|
||||||
|
#define SSH_SOURCE_BASHRC
|
||||||
|
+
|
||||||
|
+/* Define this if you want bash to try to find command_not_found_handler
|
||||||
|
+ shell function */
|
||||||
|
+#define COMMAND_NOT_FOUND_HANDLER
|
||||||
|
diff -up bash-3.2/execute_cmd.c.command_not_found bash-3.2/execute_cmd.c
|
||||||
|
--- bash-3.2/execute_cmd.c.command_not_found 2008-12-04 15:34:48.000000000 +0100
|
||||||
|
+++ bash-3.2/execute_cmd.c 2008-12-04 15:34:52.000000000 +0100
|
||||||
|
@@ -3737,10 +3737,33 @@ execute_disk_command (words, redirects,
|
||||||
|
|
||||||
|
if (command == 0)
|
||||||
|
{
|
||||||
|
+#if defined (COMMAND_NOT_FOUND_HANDLER)
|
||||||
|
+ SHELL_VAR *f, *v;
|
||||||
|
+ WORD_LIST *cmdlist;
|
||||||
|
+ WORD_DESC *w;
|
||||||
|
+ int fval;
|
||||||
|
+ if ( (posixly_correct || interactive_shell == 0) ||
|
||||||
|
+ ( f = find_function ("command_not_found_handler")) == 0)
|
||||||
|
+ {
|
||||||
|
+ internal_error (_("%s: command not found"), pathname);
|
||||||
|
+ exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */
|
||||||
|
+ }
|
||||||
|
+ w = make_word("command_not_found_handler");
|
||||||
|
+ cmdlist = make_word_list(w, (WORD_LIST*)NULL);
|
||||||
|
+
|
||||||
|
+ w = make_word(pathname);
|
||||||
|
+ cmdlist->next = make_word_list(w, (WORD_LIST*)NULL);
|
||||||
|
+
|
||||||
|
+ fval = execute_shell_function (f, cmdlist);
|
||||||
|
+ if (fval == EX_NOTFOUND)
|
||||||
|
+ internal_error (_("%s: command not found"), pathname);
|
||||||
|
+ exit(fval);
|
||||||
|
+ }
|
||||||
|
+#else
|
||||||
|
internal_error (_("%s: command not found"), pathname);
|
||||||
|
exit (EX_NOTFOUND); /* Posix.2 says the exit status is 127 */
|
||||||
|
}
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
/* Execve expects the command name to be in args[0]. So we
|
||||||
|
leave it there, in the same format that the user used to
|
||||||
|
type it in. */
|
@ -1,7 +1,7 @@
|
|||||||
Version: 3.2
|
Version: 3.2
|
||||||
Name: bash
|
Name: bash
|
||||||
Summary: The GNU Bourne Again shell (bash) version %{version}
|
Summary: The GNU Bourne Again shell (bash) version %{version}
|
||||||
Release: 29%{?dist}
|
Release: 30%{?dist}
|
||||||
Group: System Environment/Shells
|
Group: System Environment/Shells
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Url: http://www.gnu.org/software/bash
|
Url: http://www.gnu.org/software/bash
|
||||||
@ -76,6 +76,7 @@ Patch140: bash-3.2-man-page-suspend.patch
|
|||||||
Patch141: bash-3.2-patch035.patch
|
Patch141: bash-3.2-patch035.patch
|
||||||
Patch142: bash-3.2-execve_catch_signals.patch
|
Patch142: bash-3.2-execve_catch_signals.patch
|
||||||
Patch143: bash-3.2-ssh_source_bash.patch
|
Patch143: bash-3.2-ssh_source_bash.patch
|
||||||
|
Patch144: bash-3.2-command_not_found.patch
|
||||||
|
|
||||||
Requires(post): ncurses-libs
|
Requires(post): ncurses-libs
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||||
@ -163,6 +164,7 @@ compliance over previous versions.
|
|||||||
%patch140 -p1 -b .man-page-suspend
|
%patch140 -p1 -b .man-page-suspend
|
||||||
%patch142 -p1 -b .execve_catch_signals
|
%patch142 -p1 -b .execve_catch_signals
|
||||||
%patch143 -p1 -b .ssh_source_bash
|
%patch143 -p1 -b .ssh_source_bash
|
||||||
|
%patch144 -p1 -b .command_not_found
|
||||||
|
|
||||||
echo %{version} > _distribution
|
echo %{version} > _distribution
|
||||||
echo %{release} > _patchlevel
|
echo %{release} > _patchlevel
|
||||||
@ -304,6 +306,10 @@ fi
|
|||||||
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
%doc doc/*.ps doc/*.0 doc/*.html doc/article.txt
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Dec 04 2008 Roman Rakus <rrakus@redhat.com> - 3.2-30
|
||||||
|
- Added check for `command_not_found_handler' shell function
|
||||||
|
Resolves: #432579
|
||||||
|
|
||||||
* Tue Oct 28 2008 Jesse Keating <jkeating@redhat.com> - 3.2-29
|
* Tue Oct 28 2008 Jesse Keating <jkeating@redhat.com> - 3.2-29
|
||||||
- Add the Requires(post) back for ncurses-libs, so that rpm knows
|
- Add the Requires(post) back for ncurses-libs, so that rpm knows
|
||||||
where to break the loop. The post actually does require the curses
|
where to break the loop. The post actually does require the curses
|
||||||
|
Loading…
Reference in New Issue
Block a user