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

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

bug#64821: 30.0.50; write-region errs when overwriting an already open f


From: Eli Zaretskii
Subject: bug#64821: 30.0.50; write-region errs when overwriting an already open file
Date: Mon, 24 Jul 2023 18:11:30 +0300

> From: Ihor Radchenko <yantar92@posteo.net>
> Date: Mon, 24 Jul 2023 07:12:00 +0000
> 
> 1. emacs -Q
> 2. Evaluate the following in scratch buffer
> 
> (with-temp-buffer
>   (insert "test")
>   (write-region nil nil "/tmp/1.txt"))
> 
> 3. Open /tmp/1.txt
> 4. Evaluate the above sexp multiple times
> 5. Observe
> 
> Debugger entered--Lisp error: (wrong-type-argument stringp nil)
>   expand-file-name(nil)
>   userlock--check-content-unchanged("/tmp/1.txt")
>   userlock--ask-user-about-supersession-threat("/tmp/1.txt")
>   write-region(nil nil "/tmp/1.txt")
>   (progn (insert "test") (write-region nil nil "/tmp/1.txt"))
>   (unwind-protect (progn (insert "test") (write-region nil nil "/tmp/1.txt")) 
> (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
>   (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn 
> (insert "test") (write-region nil nil "/tmp/1.txt")) (and (buffer-name 
> temp-buffer) (kill-buffer temp-buffer))))
>   (let ((temp-buffer (generate-new-buffer " *temp*" t))) (save-current-buffer 
> (set-buffer temp-buffer) (unwind-protect (progn (insert "test") (write-region 
> nil nil "/tmp/1.txt")) (and (buffer-name temp-buffer) (kill-buffer 
> temp-buffer)))))
>   (progn (let ((temp-buffer (generate-new-buffer " *temp*" t))) 
> (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn (insert 
> "test") (write-region nil nil "/tmp/1.txt")) (and (buffer-name temp-buffer) 
> (kill-buffer temp-buffer))))))
>   elisp--eval-last-sexp(nil)
>   eval-last-sexp(nil)
>   funcall-interactively(eval-last-sexp nil)
>   command-execute(eval-last-sexp)
> 
> Expected: No error is thrown.

Thanks, should be fixed now on the master branch.





reply via email to

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