DeleteFile,
#[strum_discriminants(strum(props(Arity = "2", Name = "$rename_file")))]
RenameFile,
- #[strum_discriminants(strum(props(Arity = "2", Name = "$copy_file")))]
- CopyFile,
+ #[strum_discriminants(strum(props(Arity = "2", Name = "$file_copy")))]
+ FileCopy,
#[strum_discriminants(strum(props(Arity = "2", Name = "$working_directory")))]
WorkingDirectory,
#[strum_discriminants(strum(props(Arity = "1", Name = "$delete_directory")))]
&Instruction::CallMakeDirectoryPath(_) |
&Instruction::CallDeleteFile(_) |
&Instruction::CallRenameFile(_) |
- &Instruction::CallCopyFile(_) |
+ &Instruction::CallFileCopy(_) |
&Instruction::CallWorkingDirectory(_) |
&Instruction::CallDeleteDirectory(_) |
&Instruction::CallPathCanonical(_) |
&Instruction::ExecuteMakeDirectoryPath(_) |
&Instruction::ExecuteDeleteFile(_) |
&Instruction::ExecuteRenameFile(_) |
- &Instruction::ExecuteCopyFile(_) |
+ &Instruction::ExecuteFileCopy(_) |
&Instruction::ExecuteWorkingDirectory(_) |
&Instruction::ExecuteDeleteDirectory(_) |
&Instruction::ExecutePathCanonical(_) |
directory_exists/1,
delete_file/1,
rename_file/2,
- copy_file/2,
+ file_copy/2,
delete_directory/1,
make_directory/1,
make_directory_path/1,
must_be(chars, Renamed),
'$rename_file'(File, Renamed).
-copy_file(File, Copied) :-
- file_must_exist(File, copy_file/2),
+%% file_copy(+File, +Copied).
+%
+% Succeeds if File is copied to Copied
+file_copy(File, Copied) :-
+ file_must_exist(File, file_copy/2),
must_be(chars, Copied),
- '$copy_file'(File, Copied).
+ '$file_copy'(File, Copied).
%% delete_directory(+Directory).
%
self.rename_file();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
- &Instruction::CallCopyFile(_) => {
- self.copy_file();
+ &Instruction::CallFileCopy(_) => {
+ self.file_copy();
step_or_fail!(self, self.machine_st.p += 1);
}
- &Instruction::ExecuteCopyFile(_) => {
- self.copy_file();
+ &Instruction::ExecuteFileCopy(_) => {
+ self.file_copy();
step_or_fail!(self, self.machine_st.p = self.machine_st.cp);
}
&Instruction::CallWorkingDirectory(_) => {
}
#[inline(always)]
- pub(crate) fn copy_file(&mut self) {
+ pub(crate) fn file_copy(&mut self) {
if let Some(file) = self.machine_st.value_to_str_like(self.machine_st.registers[1]) {
if let Some(copied) = self.machine_st.value_to_str_like(self.machine_st.registers[2]) {
if fs::copy(file.as_str(), copied.as_str()).is_ok() {