Top / emacs / dired-ranger

Write error: 入力/出力エラー

ホストPC(CentOS 7)からNAS(cifsマウント)に対して, dired-ranger-pasteでファイルコピーしようとすると,しばらく(10秒くらい?)emacsが 応答しなくなった後に以下のようなエラーが出力されます.

if: Write error: 入力/出力エラーです, /mnt/storage/temp/filename

ひとまず以下で回避していますが不安です(あと,ディレクトリコピーに対応してない).

(defun dired-ranger-paste (arg)
  "Copy the items from copy ring to current directory.

With raw prefix argument \\[universal-argument], do not remove
the selection from the stack so it can be copied again.

With numeric prefix argument, copy the n-th selection from the
copy ring."
  (interactive "P")
  (let* ((index (if (numberp arg) arg 0))
         (data (ring-ref dired-ranger-copy-ring index))
         (files (cdr data))
         (target-directory (dired-current-directory))
         (copied-files 0))
    (--each files (when (file-exists-p it)
                    (if (file-directory-p it)
                        (copy-directory it target-directory)
                      (call-process "cp"
                                    nil                      ;; stdin, nil=> /dev/null
                                    "*Shell Command Output*" ;; destination
                                    nil                      ;; display
                                    ;; args
                                    "-v"
                                    it
                                    target-directory))
                    (cl-incf copied-files)))
    (dired-ranger--revert-target ?P target-directory files)
    (unless arg (ring-remove dired-ranger-copy-ring 0))
    (message (format "Pasted %d/%d item%s from copy ring."
                     copied-files
                     (length files)
                     (if (> (length files) 1) "s" "")))))

原因は,おそらくC言語の組込み関数"emacs_full_write()"の内部で writeがエラーを返しているためと予想します.ただ,返り値やerrnoを 調べるための再ビルドが面倒なので,上記で済ませています. そのうちなんとかしたい..

Site admin: kam1610, PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.2.17.