Subject: bug#64821: closed (Re: bug#64821: 30.0.50; write-region errs when overwriting an already open file)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 25 Jul 2023 12:19:03 +0000

Your bug report

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

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
64821: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=64821
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#64821: 30.0.50; write-region errs when overwriting an already open file
From: Eli Zaretskii <[email-masked]>
To: Ihor Radchenko <[email-masked]>
Cc: [email-masked]
Date: Tue, 25 Jul 2023 15:19:13 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Ihor Radchenko <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 25 Jul 2023 08:16:23 +0000
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> >> Expected: No error is thrown.
> >
> > Thanks, should be fixed now on the master branch.
> 
> I confirm the fix. Thanks!

Thanks for testing; closing the bug.

Subject: 30.0.50; write-region errs when overwriting an already open file
From: Ihor Radchenko <[email-masked]>
To: [email-masked]
Date: Mon, 24 Jul 2023 07:12:00 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Consider the following reproducer:

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.

In GNU Emacs 30.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
 3.24.38, cairo version 1.17.8) of 2023-07-21 built on localhost
Repository revision: 7f77120683d6f150e61e11b41d75ba16ee5210a4
Repository branch: master
Windowing system distributor 'The X.Org Foundation', version 11.0.12101008
System Description: Gentoo Linux

-- 
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>