GNU bug report logs - #4592
Bug in built-in function substitute-in-file-name

Previous Next

Package: emacs;

Reported by: Mosur Mohan <mognush <at> gmail.com>

Date: Wed, 30 Sep 2009 00:45:04 UTC

Severity: normal

Tags: moreinfo, unreproducible

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Mosur Mohan <mognush <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: bug#4592: Bug in built-in function substitute-in-file-name
Date: Tue, 29 Sep 2009 17:37:26 -0700
I am running Emacs version 21.3 on a Linux x86_64 machine.

When I start up Emacs, I go to the *scratch* buffer and eval
    (substitute-in-file-name "/~/")
and I get the expected result
    "~/"

After running for a while, I notice that filename completion starts
giving errors.  At this point, I re-try the above experiment:
    (substitute-in-file-name "/~/")
But now, I get:
    "/~/"

I am not able to figure out what happened in between to make it stop
working correctly.  A search for "substitute-in-file-name" in
bug.gnu.emacs didn't turn up anything relevant to this problem.

I narrowed the problem down to substitute-in-file-name after some
debugging.  Here's the sequence:

In the recently launched Emacs session, while editing a file, I type
C-x C-f to open another file.
In the minibuffer, I see the prompt "~/DesignDB/" (my current working directory)
I type "~/Al" so that the minibuffer now reads "~/DesignDB/~/Al"
I hit <TAB> to do completion on ~/Al
The minibuffer changes to "~/Alps/", which is correct.

In the older Emacs session where I see the problem, I carry out the
same sequence.
With the minibuffer reading "~/DesignDB/~/Al", I hit <TAB>
The minibuffer shows this message: "Opening directory: no such file or
directory, /nfs/pdx/home/mmohan/DesignDB/~*/Al"
The *Messages* window contains this message:
read-file-name-internal: Opening directory: no such file or directory,
/nfs/pdx/home/mmohan/DesignDB/~*/

I debugged this difference in complete.el and ffap.el until I reached
the above discrepancy in the behavior of built-in function
substitute-in-file-name.  I was then able to make the 2 sessions
exhibit the difference with the minimal arg "/~/" to the function.

Hope that is sufficient info.  Thanks,
--
Mosur Mohan




This bug report was last modified 14 years and 80 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.