Ошибка OSX EMACS в Dropbox - PullRequest
       5

Ошибка OSX EMACS в Dropbox

1 голос
/ 30 августа 2011

Это немного странно, и я не хочу связываться с ним, если кто-то уже нашел ответ. В OS / X (наблюдается в Snow Leopard и Lion) EMACS 23.3, когда я пытаюсь заполнить свой каталог dropbox, в ls-lisp-insert-directory

появляется следующая ошибка

ls-lisp-insert-directory: спецификатор формата не соответствует типу аргумента

отлично работает с другими каталогами.

Есть идеи?

1 Ответ

1 голос
/ 30 августа 2011

В "file-alist" есть несколько странных "файлов", возвращаемых для каталогов Dropbox функцией "ls-lisp-insert-directory" (в "ls-lisp.el"), которые не имеют всех«нормальные» атрибуты файла.Это вызывает ошибку, с которой вы сталкиваетесь.Вы должны сообщить об этом в список разработки GNU Emacs, чтобы исправить это.Тем временем вы можете обойти эту проблему, клонировав функцию «ls-lisp-insert-directory» в вашем файле инициализации Emacs и добавив следующий код «или» в существующие назначения «setq» для «fuid», «fgid»."и" file-size "(" или "гарантирует, что значения инициализируются как" "или 0 в сценарии, где значение равно nil - так как этот код только пытается найти самые большие значения, это нормально делать) следующим образом:

  ;; Find the appropriate format for displaying uid, gid, and
  ;; file size, by finding the longest strings among all the
  ;; files we are about to display.
  (dolist (elt file-alist)
    (setq attr (cdr elt)
      fuid (or (nth 2 attr) "")
      uid-len (if (stringp fuid) (string-width fuid)
            (length (format "%d" fuid)))
      fgid (or (nth 3 attr) "")
      gid-len (if (stringp fgid) (string-width fgid)
            (length (format "%d" fgid)))
      file-size (or (nth 7 attr) 0))
    (if (> uid-len max-uid-len)

Вам необходимо убедиться, что вы

(требуется 'ls-lisp)

до переопределенияФункция "ls-lisp-insert-directory".

...