Simon Leinen writes: Hi Simon, Thanks for the bug report. > From a drawin host, visit a file on a non-darwin remote host via tramp, > using C-x C-f /sshx:HOST:/DIR/FILE > > From that buffer, try to visit another file on that same host, or simply > trigger file name completion by typing e.g. C-x C-f TAB > > Instead of the desired result, you will see an error message such as > > tramp-file-name-handler: Lisp nesting exceeds ‘max-lisp-eval-depth’ > > The problem here is that tramp ((TRAMP-COMPAT-TEMPORARY-FILE-DIRECTORY)) > evaluates the standard value of TEMPORARY-FILE-DIRECTORY (defined in > cus-start.el), which calls SHELL-COMMAND-TO-STRING on the remote system, > and also FILE-DIRECTORY-P, which will be replaced by tramp's version on > the remote system. My remote systems are GNU/Linux, not Darwin, and the > "getconf DARWIN_USER_TEMP_DIR" command returns > > "getconf: Unrecognized variable `DARWIN_USER_TEMP_DIR'" > > According to a comment in cus-start.el, the FILE-DIRECTORY-P should > handle that case: > > ;; Handles "getconf: Unrecognized variable..." > (file-directory-p tmp) > > ...but in the remote case, FILE-DIRECTORY-P will end up recursively > calling TRAMP-COMPAT-TEMPORARY-FILE-DIRECTORY. > > TRAMP-COMPAT-TEMPORARY-FILE-DIRECTORY can be fixed by disabling > TRAMP-MODE around its evaluation of the TEMPORARY-FILE-DIRECTORY > expression: That would be an option, yes. But I prefer to fix it at the place the problem happens, in cus-start.el. Does the following patch cures the problem?