diff -r e0fb46018187 -r e9b9af6da795 src/Pure/System/isabelle_system.scala --- a/src/Pure/System/isabelle_system.scala Sat Jun 14 11:45:56 2025 +0200 +++ b/src/Pure/System/isabelle_system.scala Sat Jun 14 14:31:54 2025 +0200 @@ -30,22 +30,24 @@ object No_Env extends Env(JMap.of()) - def settings(putenv: List[(String, String)] = Nil): JMap[String, String] = { - val env0 = isabelle.setup.Environment.settings() - if (putenv.isEmpty) env0 - else { - val env = new HashMap(env0) - for ((a, b) <- putenv) env.put(a, b) - env + object Settings { + def env(putenv: List[(String, String)] = Nil): JMap[String, String] = { + val env0 = isabelle.setup.Environment.settings() + if (putenv.isEmpty) env0 + else { + val env = new HashMap(env0) + for ((a, b) <- putenv) env.put(a, b) + env + } } + + def apply(putenv: List[(String, String)] = Nil): Settings_Env = + new Env(env(putenv = putenv)) } - def settings_env(putenv: List[(String, String)] = Nil): Settings_Env = - new Env(settings(putenv = putenv)) + def getenv(name: String, env: Settings = Settings()): String = env.get(name) - def getenv(name: String, env: Settings = settings_env()): String = env.get(name) - - def getenv_strict(name: String, env: Settings = settings_env()): String = + def getenv_strict(name: String, env: Settings = Settings()): String = proper_string(getenv(name, env)) getOrElse error("Undefined Isabelle environment variable: " + quote(name)) @@ -413,7 +415,7 @@ description: String = "", ssh: SSH.System = SSH.Local, cwd: Path = Path.current, - env: JMap[String, String] = settings(), // ignored for remote ssh + env: JMap[String, String] = Settings.env(), // ignored for remote ssh redirect: Boolean = false, input: String = "", progress_stdout: String => Unit = (_: String) => (),