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

From: Bernard Stumpf <[email-masked]>
Date: Thu, 12 Jul 2012 09:30:33 -0400

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 <[email-masked]>
>>CC:  [email-masked]
>>
>>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.
>