src/Pure/Thy/sessions.scala
changeset 66987 352b23c97ac8
parent 66984 a1d3e5df0c95
child 66988 7f8c1dd7576a
--- a/src/Pure/Thy/sessions.scala	Wed Nov 01 22:13:38 2017 +0100
+++ b/src/Pure/Thy/sessions.scala	Thu Nov 02 10:16:22 2017 +0100
@@ -338,6 +338,7 @@
   def base_info(options: Options, session: String,
     dirs: List[Path] = Nil,
     all_known: Boolean = false,
+    focus_session: Boolean = false,
     required_session: Boolean = false): Base_Info =
   {
     val full_sessions = load(options, dirs = dirs)
@@ -387,7 +388,12 @@
     val full_sessions1 =
       if (infos1.isEmpty) full_sessions
       else load(options, dirs = dirs, infos = infos1)
-    val selected_sessions1 = full_sessions1.selection(Selection(sessions = List(session1)))._2
+
+    val select_sessions1 =
+      if (focus_session) full_sessions1.imports_descendants(List(session1))
+      else List(session1)
+    val selected_sessions1 =
+      full_sessions1.selection(Selection(sessions = select_sessions1))._2
 
     val sessions1 = if (all_known) full_sessions1 else selected_sessions1
     val deps1 = Sessions.deps(sessions1, global_theories)