From 35e3abe55c73df65a7003f554fbdfbe17a327c32 Mon Sep 17 00:00:00 2001 From: Martin Rudalics Date: Mon, 15 Sep 2008 09:23:45 +0000 Subject: [PATCH] (file-truename): Don't raise args-out-of-range error when filename has no separator on windows-nt. (Bug#982) --- lisp/ChangeLog | 5 +++++ lisp/files.el | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4bbc8597270..c3c4835ad9e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2008-09-15 Martin Rudalics + + * files.el (file-truename): Don't raise args-out-of-range error + when filename has no separator on windows-nt. (Bug#982) + 2008-09-14 Stefan Monnier * diff-mode.el (diff-find-file-name): Rename `batch' to `noprompt' and diff --git a/lisp/files.el b/lisp/files.el index 76e50247d6f..2773c9f14b0 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -856,10 +856,14 @@ containing it, until no links are left at any level. missing rest) (if longname (setq filename longname) - ;; include the preceding directory separator in the missing + ;; Include the preceding directory separator in the missing ;; part so subsequent recursion on the rest works. (setq missing (concat "/" (file-name-nondirectory filename))) - (setq rest (substring filename 0 (* -1 (length missing)))) + (let ((length (length missing))) + (setq rest + (if (> length (length filename)) + "" + (substring filename 0 (- length))))) (setq filename (concat (file-truename rest) missing)))))) (setq done t))) -- 2.39.5