Function: trashed-restore-file

trashed-restore-file is a natively compiled function defined in trashed.el.

Signature

(trashed-restore-file FILE NEWNAME)

Documentation

Restore FILE to NEWNAME.

Return nil if it successfully restored, t if an error occurred or it was cancelled by user.

Source Code

;; Defined in /nix/store/7ppdacjhnynz276lxxnfw8sdz6r2k6h2-emacs-packages-deps/share/emacs/site-lisp/elpa/trashed-20230811.157/trashed.el
(defun trashed-restore-file (file newname)
  "Restore FILE to NEWNAME.
Return nil if it successfully restored, t if an error occurred
or it was cancelled by user."
  (let (delete-by-moving-to-trash)
    (make-directory (file-name-directory newname) t)
    (condition-case err
        (rename-file file newname)
      ((file-already-exists file-error)
       (if (or (eq (car err) 'file-already-exists)
               (and (eq (car err) 'file-error)
                    (string= (cadr err) "File is a directory")))
           (if (apply trashed-action-confirmer
                      (list (format
                             "%s already exists; overwrite it? "
                             newname)))
               (rename-file file newname t)
             t)
         (error "%s" (error-message-string err)))))))