Re: ed.ex :: file backup routine
- Posted by K_D_R Jan 17, 2012
- 1141 views
Lets see if this version can pass muster:
-- sequence backup_file_history added to the following code block -- early in the ed.ex code: sequence file_history, command_history, search_history, replace_history, backup_file_history --<---- file_history = {} command_history = {} search_history = {} replace_history = {} backup_file_history = {} --<--- --------------------------------------------------------------------------- elsif command[1] = '~' then status = 0 -- declared as integer at beginning of procedure get_escape if not file_exists(file_name) then -- in "ed.ex" parlance "write" file: save_file(file_name) stop = FALSE end if sequence backup_file_name = file_name & "~" if not file_exists(backup_file_name) then status = eu_filesys:copy_file(file_name, backup_file_name, 0) save_file(file_name) stop = FALSE set_top_line(" ") set_top_line(file_name & " <backed up as> " & backup_file_name) else set_top_line(" ") set_top_line("Backup file " & backup_file_name & " already exists - overwrite? ") first_bold("y or ") first_bold("n : ") answer = key_gets("yn", {}) if find('y', answer) then -- overwrite existing back-up file: status = eu_filesys:copy_file(file_name, backup_file_name, 1) save_file(file_name) stop = FALSE set_top_line(file_name & " <backed up as> " & backup_file_name) else loop do set_top_line("rename or overwrite existing ~ file: " & backup_file_name & " ? : ") sequence backup_files = dir("*.*~") for x = 3 to length(backup_files) do backup_file_history = update_history(backup_file_history, backup_files[x][D_NAME]) end for -- this code allows you to select existing back up files or enter -- a completely new file name: backup_file_name = delete_trailing_white(key_gets("", backup_file_history)) if find(backup_file_name, backup_file_history)then set_top_line("overwrite file: " & backup_file_name & " ? ") first_bold("y or ") first_bold("n : ") answer = key_gets("yn", {}) if find('y', answer) then status = eu_filesys:copy_file(file_name, backup_file_name, 1) save_file(file_name) stop = FALSE set_top_line(file_name & " <backed up as> " & backup_file_name) end if else status = eu_filesys:copy_file(file_name, backup_file_name, 0) save_file(file_name) stop = FALSE set_top_line(" ") set_top_line(file_name & " <backed up as> " & backup_file_name) end if until status = 1 end loop end if end if
Regards, Kenneth Rhodes