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

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

Re: An unwonted warning I constantly get about fontsets when I start Ema


From: Göktuğ Kayaalp
Subject: Re: An unwonted warning I constantly get about fontsets when I start Emacs
Date: Sun, 28 May 2017 16:16:35 +0300
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux)

On 2017-05-28 07:15 +03, Eli Zaretskii <eliz@gnu.org> wrote:
>> From: Göktuğ Kayaalp <self@gkayaalp.com>
>> Cc: help-gnu-emacs@gnu.org
>> Date: Sun, 28 May 2017 01:27:30 +0300
>> 
>> > The old-italic script is defined in charscript.el, so check that file
>> > for problems (damaged, truncated, outdated).  It is then used in
>> > fontset.el, and the error you see comes from there, see the function
>> > create-default-fontset.  Maybe by looking into these two files, or by
>> > searching your system for outdated versions which shadow these, you
>> > will find the culprit.
>> 
>> charscript.el seems alright, it's installed only as an elc file, and
>> seems okay (I've diffed the .elc in the git repo with the installed
>> copy, no differences, then I recompiled the repo version via
>> ‘byte-compile-file’, and diffed again, no differences).
>> 
>> In fontset.el, ‘old-italic’ appears in function ‘setup-default-fontset’,
>> called by ‘create-default-fontset’.  There, after the call to
>> ‘new-fontset’, there's a dolist expression commented «For simple
>> scripts», which runs this expression on a list of symbols including
>> ‘old-italic’:
>> 
>> (set-fontset-font "fontset-default"
>>                     script (font-spec :registry "iso10646-1" :script script)
>>                     nil 'append)
>> 
>> I tried this:
>> 
>> (let ((script 'old-italic))
>>   (set-fontset-font "fontset-default"
>>                     script (font-spec :registry "iso10646-1" :script script)
>>                     nil 'append))
>> 
>> Which gave me this backtrace:
>> 
>> Debugger entered--Lisp error: (error "Invalid script or charset name: 
>> old-italic")
>>   set-fontset-font("fontset-default" old-italic #<font-spec nil nil nil nil 
>> iso10646-1 nil nil nil nil nil nil nil ((:script . old-italic))> nil append)
>>   (let ((script (quote old-italic))) (set-fontset-font "fontset-default" 
>> script (font-spec :registry "iso10646-1" :script script) nil (quote append)))
>>   eval-region(146 322 t #[257 "\300\242b\210\301\207" [(322) (let ((script 
>> (quote old-italic))) (set-fontset-font "fontset-default" script (font-spec 
>> :registry "iso10646-1" :script script) nil (quote append)))] 2 "\n\n(fn 
>> IGNORE)"])  ; Reading at buffer position 146
>> [...]
>
> What does the following produce in your Emacs:
>
>   M-: (aref char-script-table #x10301) RET

old-ıtalic

>> The only emacs installation on my system is that one from the git repo
>> which I use daily, and this is the first build I made from this clone of
>> the repo.  It't virtually impossible that any shadowing happens.  Git
>> does not report any modified files.
>
> The command list-load-path-shadows will produce a list of shadowed
> files, if there are any.  (report-emacs-bug invokes that command
> internally and includes its results in the bug report, which is one
> more reason to use report-emacs-bug for such matters.)

/home/g/co/emacs.d/packages/org/ox-groff hides /home/g/co/emacs.d/site/ox-groff
/home/g/co/emacs.d/site/let-alist hides 
/home/g/local/share/emacs/26.0.50/lisp/emacs-lisp/let-alist

2 Emacs Lisp load-path shadowings were found

>> > My next suggestion is to make sure the tree where you build Emacs is
>> > clean, and doesn't contain any stale files from the previous versions
>> > you've built.
>> 
>> As above.
>
> I meant something like "git clean -x -f -f".  Or maybe clone the
> repository anew.  These things are hard to detect by looking, and a
> single stale file can drive you mad with its implications.
>
>> I'll report this as a bug if you tell me to do so.
>
> I think it's long overdue.
>
>> I'm attaching charscript.el as it seems to be a generated file not
>> tracked by git.
>
> And here's what seems to be the root cause of your problem:
>
>     (#x10300 #x1032F old-ıtalic)
>
> That ı in ıtalic is the dotless i character, whereas it should be the
> Latin i character.  I see a few more of those elsewhere in the file,
> all of them will cause similar problems.  I'm guessing that some bug
> causes this in your locale, so as the first thing please delete this
> file and let the Emacs build process re-generate it, in the hope that
> the bug was meanwhile fixed.  If the regenerated file has the same
> problem, please do report a bug about that.

As I said in my other post, I'll try these and if it persists I'll
report a bug.

       gk.



reply via email to

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