bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#11902: Emacs 23.2: dired rename file and file is hidden - Windows 7


From: Bernard Stumpf
Subject: bug#11902: Emacs 23.2: dired rename file and file is hidden - Windows 7
Date: Thu, 12 Jul 2012 09:30:33 -0400
User-agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)

The overwrite with "bar" was caused by me: hitting return on rename and not typing "bar1".

I will try out the Edebug and get back to you later.  As to the sequence I usually do, you are very close. I usually already have the dired buffer open from before. It is:

C-x b Bernie
down arrow to someFile
R newName RET  (in minibuffer after "Rename someFile to: ~/"  )

-Bernie

Eli Zaretskii wrote:
Date: Thu, 12 Jul 2012 07:54:07 -0400
From: Bernard Stumpf <bernard.stumpf@verizon.net>
CC:  11902@debbugs.gnu.org

I have not noticed any sensitivity to the characters in "newname". I 
just created a file named "foo" and did an R to "foo1" - the line 
disappeared.
    
OK.

  
I did the same with file "bar" to "bar1". Here's output in *Messages*
...
(New file)
Saving file c:/Users/bernie/bar...
Wrote c:/Users/bernie/bar
Overwrite `c:/Users/bernie/bar'? [Type yn!q or C-h]  [5 times]
    
Any idea what that "Overwrite" message was about?

  
As to using Edebug: I don't know Edebug.  Is there a way to set 
breakpoints inside emacs from emacs?
    
Edebug _is_ used from inside Emacs.  For example, to step through
dired-do-redisplay and dired-update-file-line, you do this:

  emacs -Q
  M-x load-library dired-aux.el RET
  C-x d some/directory RET
  C-x C-f path/to/dired-aux.el RET
  go to the function dired-do-redisplay
  with cursor inside dired-do-redisplay's body, type:
    M-x edebug-defun RET

This instruments dired-do-redisplay, such that when it is called, the
debugger kicks in automatically.  Think if this as a kind of a
breakpoint you set on the function.

Now, go to the Dired buffer to the line of the file you want to rename
and press "R".  Emacs will pop up a window with the source of
dired-do-redisplay, with a small arrow at the left showing the current
line.  Typing SPC repeatedly will step through the code one Lisp form
at a time, and will also show in the echo area the result of
evaluating each form, so you can track what Emacs does and why.  To
step into dired-update-file-line, type 'i' when you get just before
the form that calls that function; then step through
dired-update-file-line by repeatedly typing SPC again.

Easy enough, isn't it?

>From what you describe, I'd expect that dired-update-file-line deletes
the line of the file being renamed, but then doesn't add the line for
the new file, for some reason.  The addition is done by
dired-add-entry, which dired-update-file-line calls; you can step into
it by typing 'i' again.

The information you obtain by stepping through these functions will
probably get us much closer to resolving the problem, if not point out
the problem right away.

And just for the record: the way to reproduce the problem on that
machine is just the following sequence, and nothing else, right?

  emacs -Q
  C-x d RET
  go to some file
  type R foo RET

There's nothing else you do except the above sequence, correct?

Thanks.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]