diff -up bash-4.2/builtins/evalfile.c.old bash-4.2/builtins/evalfile.c
--- bash-4.2/builtins/evalfile.c.old 2015-05-14 20:45:31.402793505 +0200
+++ bash-4.2/builtins/evalfile.c 2015-05-14 20:45:47.632794791 +0200
@@ -317,6 +317,23 @@ maybe_execute_file (fname, force_noninte
return result;
}
+int
+force_execute_file (fname, force_noninteractive)
+ const char *fname;
+ int force_noninteractive;
+{
+ char *filename;
+ int result, flags;
+
+ filename = bash_tilde_expand (fname, 0);
+ flags = 0;
+ if (force_noninteractive)
+ flags |= FEVAL_NONINT;
+ result = _evalfile (filename, flags);
+ free (filename);
+ return result;
+}
+
#if defined (HISTORY)
int
fc_execute_file (filename)
diff -up bash-4.2/configure.in.old bash-4.2/configure.in
--- bash-4.2/configure.in.old 2015-05-14 21:27:20.882449456 +0200
+++ bash-4.2/configure.in 2015-05-14 21:19:25.654612738 +0200
@@ -149,7 +149,7 @@ fi
fi
if test -z "${DEBUGGER_START_FILE}"; then
- DEBUGGER_START_FILE='${datadir}/bashdb/bashdb-main.inc'
+ DEBUGGER_START_FILE='/usr/share/bashdb/bashdb-main.inc'
fi
dnl optional shell features in config.h.in
diff -up bash-4.2/shell.c.old bash-4.2/shell.c
--- bash-4.2/shell.c.old 2015-05-14 20:42:54.379781066 +0200
+++ bash-4.2/shell.c 2015-05-14 20:43:04.966781904 +0200
@@ -1373,12 +1373,19 @@ start_debugger ()
{
#if defined (DEBUGGER) && defined (DEBUGGER_START_FILE)
int old_errexit;
+ int r;
old_errexit = exit_immediately_on_error;
exit_immediately_on_error = 0;
- maybe_execute_file (DEBUGGER_START_FILE, 1);
- function_trace_mode = 1;
+ r = force_execute_file (DEBUGGER_START_FILE, 1);
+ if (r < 0)
+ {
+ internal_warning ("cannot start debugger; debugging mode disabled");
+ debugging_mode = function_trace_mode = 0;
+ }
+ else
+ function_trace_mode = 1;
exit_immediately_on_error += old_errexit;
#endif
diff -up bash-4.2/builtins/evalfile.c.old bash-4.2/builtins/evalfile.c
--- bash-4.2/builtins/evalfile.c.old 2015-05-15 00:52:01.357266353 +0200
+++ bash-4.2/builtins/evalfile.c 2015-05-15 00:52:08.734263236 +0200
@@ -125,7 +125,7 @@ file_error_and_exit:
}
return ((flags & FEVAL_BUILTIN) ? EXECUTION_FAILURE
- : ((errno == ENOENT) ? 0 : -1));
+ : ((errno == ENOENT && (flags & FEVAL_ENOENTOK) != 0) ? 0 : -1));
}
errfunc = ((flags & FEVAL_BUILTIN) ? builtin_error : internal_error);
diff -up bash-4.2/builtins/common.h.old bash-4.2/builtins/common.h
--- bash-4.2/builtins/common.h.old 2015-05-15 00:52:01.357266353 +0200
+++ bash-4.2/builtins/common.h 2015-05-15 00:52:08.734263236 +0200
@@ -170,6 +170,7 @@
/* Functions from evalfile.c */
extern int maybe_execute_file __P((const char *, int));
+extern int force_execute_file __P((const char *, int));
extern int source_file __P((const char *, int));
extern int fc_execute_file __P((const char *));