After a fresh install of Emacs and JDE on a new machine, I found that a patch I thought I'd submitted some time ago is not in either JDE 2.3.5 or CVS.

The problem is caused by a change in behaviour of (expand-file-name ".." dir) when dir is the root directory on a Windows drive. In previous versions, the result was "D:/..", but in the current CVS code, (expand-file-name ".." "D:/") returns "D:/", which is consistent with what happens on *nix.

The following patch adds support for this in jde-root-dir-p, avoiding some infinite loops:

*** c:/site-lisp/jde-2.3.5/lisp/jde.el~ 2004-12-16 22:29:36.000000000 +0000 --- c:/site-lisp/jde-2.3.5/lisp/jde.el 2005-09-21 17:29:28.892500000 +0100
***************
*** 1595,1601 ****
       (or
        (string= parent "//") ; for paths like //host/d/prj/src
        (string= parent "\\\\") ; for paths like \\host\d\prj\src
!        (string= (substring parent -3) "/.."))) ; for paths like d:/prj/src
      ((member system-type '(cygwin32 cygwin))
       (or (string= (file-truename dir) (file-truename "/"))
       (string= parent "//") ; for paths like //host/d/prj/src
--- 1595,1602 ----
       (or
        (string= parent "//") ; for paths like //host/d/prj/src
        (string= parent "\\\\") ; for paths like \\host\d\prj\src
!        (string= (substring parent -3) "/..")
!        (string= parent dir))) ; for paths like d:/prj/src
      ((member system-type '(cygwin32 cygwin))
       (or (string= (file-truename dir) (file-truename "/"))
       (string= parent "//") ; for paths like //host/d/prj/src


Reply via email to