Se puede crear el archivo temporal de flymake en el directorio temporal del sistema?

Actualmente estoy usando el siguiente código para conectar flymake y Pyflakes en emacs:

(defun flymake-create-temp-in-system-tempdir (filename prefix)
  (make-temp-file (or prefix "flymake")))

y luego paso esta función aflymake-init-create-temp-buffer-copy. (Tomado dehttp: //hustoknow.blogspot.com/2010/09/emacs-and-pyflakes-using-tmp-directory.htm).

Este código funcionó bien hasta ayer. Cuando visito ciertos archivos de Python, aparece el siguiente error:

switched OFF Flymake mode for buffer admin.py due to fatal status
CFGERR, warning Configuration error has occured while running    
(pyflakes ../../../../../../../tmp/flymake28459SVv)

¿Por qué Flymake pasa lo que parece un nombre de archivo incorrecto a pyflakes? Espero que pase algo como "/ tmp / efe234234" y no he modificado ninguna de las configuraciones del directorio tmp.

No recuerdo que emacs se haya actualizado recientemente para Ubuntu y no puedo pensar en nada que pueda haber causado que esto se estropee (los archivos .emacs están versionados).

El único problema que se me ocurre es que este es un directorio muy anidado vinculado a un directorio en mi directorio ~ / Dropbox, pero esto no le sucede a otros enlaces simbólicos de manera similar.

¿Como puedo solucionar este problema

ACTUALIZA

He realizado algunas depuraciones y ahora veo que no está pasando la ruta correcta como argumento. Necesita un directorio padre más insertado en la ruta para que funcione, lo que me hace pensar que se está estropeando debido a los enlaces simbólicos.

Aquí hay un ejemplo de sesión de shell para mostrar lo que quiero decir. Estoy haciendo esto desde el directorio relativo correcto:

$ pyflakes ../../../../../tmp/flymake13382xHi 
../../../../../tmp/flymake13382xHi: No such file or directory

Ese es el comando que flymake está intentando ejecutar. Si lo cambio:

$ pyflakes ../../../../../../tmp/flymake13382xHi

No obtengo salida (como se esperaba). Tenga en cuenta el ".." extra en la ruta.

¿Cómo puedo hacer que Flymake pase un camino absoluto en lugar de estos caminos relativos locos?

UPDATE 2

Tengo todo para trabajar. Básicamente existe esta función:

(defun flymake-pyflakes-init ()
     ; Make sure it's not a remote buffer or flymake would not work
     (when (not (subsetp (list (current-buffer)) (tramp-list-remote-buffers)))
      (let* ((temp-file (flymake-init-create-temp-buffer-copy
                    'flymake-create-temp-in-system-tempdir))
             (local-file (file-relative-name
                      temp-file
                      (file-name-directory buffer-file-name))))
    (list "pyflakes" (list temp-file)))))

En la última parte tuve que cambiar el argumento alist desdelocal-file atemp-file porquelocal-file era el camino relativo loco que no quería. ¿Por qué el autor de ese fragmento usólocal-file ¿en primer lugar

Gracias, Ryan

Respuestas a la pregunta(4)

Su respuesta a la pregunta