]> Repositorios git - scryer-prolog.git/commitdiff
adjust default cwd
authorBennet Bleßmann <[email protected]>
Sat, 19 Jul 2025 23:25:16 +0000 (01:25 +0200)
committerBennet Bleßmann <[email protected]>
Fri, 1 Aug 2025 18:20:41 +0000 (20:20 +0200)
src/lib/process.pl
src/machine/system_calls.rs

index 6215355f572b9ff8572594a53d7dfd638737204a..06e82a292981ea29ec1b307162bc6a3ff467d86f 100644 (file)
@@ -17,7 +17,7 @@ process_create(Exe, Args, Options) :-
             ([stderr], valid_stdio, stderr(std), stderr(Stderr)),
             ([env, environment], valid_env, environment([]), Env),
             ([pid], valid_pid, pid(_), pid(Pid)),
-            ([cwd], valid_cwd, cwd(_), cwd(Cwd))
+            ([cwd], valid_cwd, cwd("."), cwd(Cwd))
         ],
         Options
     ),
index ecffbdb79ee16c12c972de4d9ecc740cdfa2c8ba..1ec6c9880921ed2a56b9c2ff2d3a1f749ef15bc9 100644 (file)
@@ -8409,7 +8409,7 @@ impl Machine {
         let stderr_r = self.deref_register(5);
         // [env | environment, [[String, String],...]]
         let env_r = self.deref_register(6);
-        // Var | String
+        // String ("." for keep current cwd)
         let cwd_r = self.deref_register(7);
         // Var
         let pid_r = self.deref_register(8);
@@ -8469,12 +8469,12 @@ impl Machine {
             })
             .collect::<Result<Vec<_>, MachineStub>>()?;
 
-        let cwd = self.machine_st.value_to_str_like(cwd_r);
+        let cwd = self.machine_st.value_to_str_like(cwd_r).unwrap();
 
         let mut command = std::process::Command::new(&*exe.as_str());
         command.args(args);
 
-        if let Some(cwd) = cwd {
+        if &*cwd.as_str() != "." {
             command.current_dir(&*cwd.as_str());
         }