|
From: | Juri Linkov |
Subject: | bug#66317: Project mode-line |
Date: | Wed, 18 Oct 2023 20:20:31 +0300 |
User-agent: | Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
>> There is another problem: calling 'project-name' while evaluating >> 'mode-line-format' often changes the coding system mode-line indicator >> from U (utf-8) to raw-text during saving the current buffer. >> >> Here is a backtrace: >> >> - project-name >> - project--value-in-dir (that uses with-temp-buffer) >> - hack-dir-local-variables-non-file-buffer >> - hack-local-variables-apply >> >> Then in the last function the coding system is broken >> in two different ways: >> >> 1. by 'hack-one-local-variable' in `emacs -Q` > > How and where? > >> 2. by (run-hooks 'hack-local-variables-hook) >> in buffers where flyspell-mode is enabled >> 'flyspell-hack-local-variables-hook' breaks >> the coding system too. > > Why? The bug occurs when multiple lines are displayed in the echo area. Then '(:eval (project-mode-line-format)) is called twice. At the end of the first call 'buffer-file-coding-system' is still correct: utf-8. But at the beginning of the second call it's already wrong: raw-text. I guess it was a mistake to allow specifying the project name in .dir-locals.el. A better place would be in ~/.emacs.d/projects.
[Prev in Thread] | Current Thread | [Next in Thread] |