Blob Blame Raw
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 *));