Yes, that is strange. Based on just looking at the test code, I think this test should indeed fail (I am not able to run in on my machine). In a similar situation, my inline calendar text shows
,---- | !!! Bodypart handler `notmuch-show-insert-part-text/calendar' threw an error: | !!! Wrong type argument: stringp, nil | !!! Bodypart handler `notmuch-show-insert-part-*/*' threw an error: | !!! Wrong type argument: char-or-string-p, gnus-decoded `---- To see the basic issue, check what this code outputs on your setup: ,---- | (let ((tmp-link "~/link-tmp")) | (make-symbolic-link "/tmp/" tmp-link) | (let* ((temporary-file-directory tmp-link) | (file (make-temp-file "notmuch-ical"))) | (find-file-noselect file) | (message | "Filename: %s | get-file-buffer: %S | find-buffer-visiting: %S | buffer-file-name: %s" | file | (get-file-buffer file) | (find-buffer-visiting file) | (buffer-file-name (find-buffer-visiting file))) | (kill-buffer (find-buffer-visiting file)) | (delete-file tmp-link) | (delete-file file))) | `---- On my setup (MacOS, Emacs 29.1) this prints something like ,---- | Filename: /Users/al/link-tmp/notmuch-ical7MtHvd | get-file-buffer: nil | find-buffer-visiting: #<buffer notmuch-ical7MtHvd> | buffer-file-name: /private/tmp/notmuch-ical7MtHvd `---- So `get-file-buffer` returns nil. Reason is that the buffer-file-name has the resolved path (without symlinks). The documentation for `get-file-buffer` says: "The buffer's buffer-file-name must match exactly the expansion of FILENAME". `find-buffer-visiting` gets the truename of the filename before looking for its buffer. The function `notmuch-show-insert-part-text/calendar` essentially does the same as my code above. Note also that `find-buffer-visiting` is used instead of `get-file-buffer` in `icalendar-import-buffer` for example. -- Al On 26/05/2024, David Bremner wrote: > The second test should apparently fail, but it doesn't. > --- > test/T450-emacs-show.sh | 26 ++++++++++++++++++++++++++ > 1 file changed, 26 insertions(+) > > diff --git a/test/T450-emacs-show.sh b/test/T450-emacs-show.sh > index 438a7b9b..85851e70 100755 > --- a/test/T450-emacs-show.sh > +++ b/test/T450-emacs-show.sh > @@ -340,6 +340,32 @@ This meeting will could have been an email > EOF > test_expect_equal_file EXPECTED OUTPUT > > +test_begin_subtest "display of text/calendar, symlinked tmpdir" > +test_subtest_known_broken > +mkdir real-tmp > +ln -s real-tmp tmp > +test_emacs "(let ((notmuch-show-all-multipart/alternative-parts t) > + (temporary-file-directory \"tmp\")) > + (notmuch-show > \"id:yt3pr01mb10572efc9f7c81f9446214768ce...@yt3pr01mb10572.canprd01.prod.outlook.com\")) > + (test-visible-output \"OUTPUT\")" > +cat <<EOF > EXPECTED > +David Bremner <[email protected]> (1970-01-01) (inbox) > +Subject: test > +To: "[email protected]" <[email protected]> > +Date: Thu, 01 Jan 1970 00:00:00 +0000 > + > +[ multipart/alternative ] > +[ text/plain ] > +This meeting will could have been an email > +[ text/calendar ] > +%%(and (diary-cyclic 1 5 27 2024) (diary-block 5 27 2024 8 27 2024)) > 17:00-17:30 test [In-person] > + Desc: This meeting will could have been an email > + > + > + Organizer: mailto:[email protected] > +EOF > +test_expect_equal_file EXPECTED OUTPUT > + > test_begin_subtest "tar not inlined by default" > test_emacs '(notmuch-show "id:[email protected]") > (test-visible-output "OUTPUT")' _______________________________________________ notmuch mailing list -- [email protected] To unsubscribe send an email to [email protected]
