GNU bug report logs -
#78990
30.1; Show-font breaks `insert-file-contents-literally'
Previous Next
Reported by: Zhengyi Fu <i <at> fuzy.me>
Date: Thu, 10 Jul 2025 12:14:02 UTC
Severity: normal
Found in version 30.1
Done: Eli Zaretskii <eliz <at> gnu.org>
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Sat, 19 Jul 2025 11:37:03 +0300
with message-id <86h5z8efv4.fsf <at> gnu.org>
and subject line Re: bug#78990: 30.1; Show-font breaks `insert-file-contents-literally'
has caused the debbugs.gnu.org bug report #78990,
regarding 30.1; Show-font breaks `insert-file-contents-literally'
to be marked as done.
(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)
--
78990: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=78990
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
The package `show-font' adds a file name handler to
`file-name-handler-alist', which causes an error when trying to insert
the raw contents of an TTF file into a buffer with
`insert-file-contents-literally'.
;;;###autoload
(add-to-list 'file-name-handler-alist (cons "\\.\\(ttf\\|otf\\)\\'" #'show-font-handler))
Currently I use the following advice to workaround this behavior, but I
think it's better to fix this either in show-font or in Emacs core.
(define-advice insert-file-contents-literally
(:around (&rest args) inhibit-show-font)
(let ((inhibit-file-name-handlers
(append '(show-font-handler)
(and (eq inhibit-file-name-operation 'insert-file-contents)
inhibit-file-name-handlers)))
(inhibit-file-name-operation 'insert-file-contents))
(apply args)))
[Message part 3 (message/rfc822, inline)]
> Cc: 78990 <at> debbugs.gnu.org, info <at> protesilaos.com
> From: Zhengyi Fu <i <at> fuzy.me>
> Date: Sat, 12 Jul 2025 15:44:03 +0800
>
> Protesilaos Stavrou <prot <at> protesilaos.com> writes:
>
> > On 2025-07-11 12:58, Zhengyi Fu wrote:
> >> Protesilaos Stavrou <prot <at> protesilaos.com> writes:
> >>
> >>> On 2025-07-10 15:27, Zhengyi Fu wrote:
> >>>> Thank you for your fast reply.
> >>> You are welcome!
> >>>
> >>>> No. Actually, I don't know how to fix it correctly.
> >>> Okay, no worries! Let's try to do this together. I have not tried
> >>> 'insert-file-contents-literally' before. Please evaluate the following
> >>> function and try again.
> >>> (defun show-font--insert-button ()
> >>> "Insert `show-font-installed-file-button' at point."
> >>> (when buffer-file-name
> >>> (insert
> >>> (propertize "Cannot preview this font" 'face 'show-font-title)
> >>> "\n\n"
> >>> (propertize buffer-file-name 'face 'bold)
> >>> " is not installed"
> >>> "\n\n"
> >>> "Install this font file?"
> >>> "\n")
> >>> (goto-char (point-max))
> >>> (make-text-button (line-beginning-position 0) (line-end-position
> >>> 0) :type 'show-font-installed-file-button)))
> >> After evaluating that fnuction, it doesn't signal errors, but
> >> nothing
> >> gets inserted.
> >
> > I made two changes and bumped the version number. The new package will
> > be available in a few hours. I believe I have fixed the problem. See
> > commits d238f83 and f6239ae in show-font.git.
>
> It works now! Thank you very much! 👍
Thanks, I'm therefore closing the bug.
This bug report was last modified 23 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.