* bug#1127: Can't set default face to get the font I want @ 2008-10-09 5:21 ` Stefan Monnier 2008-10-14 4:20 ` bug#1127: marked as done (Can't set default face to get the font I want) Emacs bug Tracking System 2008-10-14 19:10 ` Emacs bug Tracking System 0 siblings, 2 replies; 7+ messages in thread From: Stefan Monnier @ 2008-10-09 5:21 UTC (permalink / raw) To: submit Package: Emacs Version: 23.0.60 Please describe exactly what actions triggered the bug and the precise symptoms of the bug: After I do % xrdb -remove % src/emacs -Q --eval '(customize-face (quote default))' I seem to be unable to select my beloved "-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*". If I set family=fixed, foundry=misc, width=semicondensed, height=100, I get -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1; It appears that the "semicondensed" part is ignored. Stefan If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /home/monnier/src/emacs/work/etc/DEBUG for instructions. In GNU Emacs 23.0.60.1 (i686-pc-linux-gnu, GTK+ Version 2.12.11) of 2008-10-05 on pastel Windowing system distributor `The X.Org Foundation', version 11.0.10402000 configured using `configure 'CFLAGS=-Wall -Wno-pointer-sign -DUSE_LISP_UNION_TYPE -DSYNC_INPUT -DENABLE_CHECKING -DXASSERTS -DFONTSET_DEBUG -g -O0' 'LDFLAGS=-L/home/monnier/src/Xaw3d' 'CPPFLAGS=-I/home/monnier/src/Xaw3d'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: fr_CH.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Group Minor modes in effect: gnus-undo-mode: t url-handler-mode: t global-reveal-mode: t reveal-mode: t auto-insert-mode: t savehist-mode: t minibuffer-electric-default-mode: t cua-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: <switch-frame> <select-window> SPC SPC N o SPC a m o u n t SPC o SPC <backspace> f SPC c h a n g i n g SPC t h e SPC : f a m i l y SPC <left> <left> <left> <left> <left> <left> <left> <backspace> ` C-e <backspace> ' SPC s e t t i n g SPC w i l l SPC c h a n g e SPC t h e SPC f o n t SPC u s e d SPC f o r SPC t h a t SPC f a c e . <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <down> <down> <left> <right> <down> <left> <right> <down> <left> <right> <down> <left> <right> <down> <left> <right> <up> <up> <left> <right> <down> <left> <right> <down> <left> <right> <return> <return> M-i S t e f a n <return> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <help-echo> <up> <up> <up> <up> <up> A p p a e n <backspace> <backspace> r e n t l y SPC M-l C-a <return> M-q <backspace> <left> <right> <down> <left> <right> <down> <left> <right> C-c C-c <switch-frame> <select-window> <select-window> <switch-frame> <switch-frame> <help-echo> <switch-frame> <switch-frame> <help-echo> <select-window> <help-echo> M-x M-p <return> Recent messages: Denied server nntp+gmane Entering debugger... Back to top level. Mark set [2 times] Auto-saving...done Mark set [2 times] Auto-saving...done Sending... Sending via mail... Sending...done ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#1127: marked as done (Can't set default face to get the font I want) 2008-10-09 5:21 ` bug#1127: Can't set default face to get the font I want Stefan Monnier @ 2008-10-14 4:20 ` Emacs bug Tracking System 2008-10-14 19:10 ` Emacs bug Tracking System 1 sibling, 0 replies; 7+ messages in thread From: Emacs bug Tracking System @ 2008-10-14 4:20 UTC (permalink / raw) To: Chong Yidong [-- Attachment #1: Type: text/plain, Size: 852 bytes --] Your message dated Tue, 14 Oct 2008 00:15:33 -0400 with message-id <87bpxnolqy.fsf@cyd.mit.edu> and subject line Re: Can't set default face to get the font I want has caused the Emacs bug report #1127, regarding Can't set default face to get the font I want to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact don@donarmstrong.com immediately.) -- 1127: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1127 Emacs Bug Tracking System Contact don@donarmstrong.com with problems [-- Attachment #2: Type: message/rfc822, Size: 6114 bytes --] From: Stefan Monnier <monnier@iro.umontreal.ca> To: submit@emacsbugs.donarmstrong.com Subject: Can't set default face to get the font I want Date: Thu, 09 Oct 2008 01:21:11 -0400 Message-ID: <jwvej2qqrct.fsf-monnier+gmane.comp.fonts.dejavu@gnu.org> Package: Emacs Version: 23.0.60 Please describe exactly what actions triggered the bug and the precise symptoms of the bug: After I do % xrdb -remove % src/emacs -Q --eval '(customize-face (quote default))' I seem to be unable to select my beloved "-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*". If I set family=fixed, foundry=misc, width=semicondensed, height=100, I get -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1; It appears that the "semicondensed" part is ignored. Stefan If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /home/monnier/src/emacs/work/etc/DEBUG for instructions. In GNU Emacs 23.0.60.1 (i686-pc-linux-gnu, GTK+ Version 2.12.11) of 2008-10-05 on pastel Windowing system distributor `The X.Org Foundation', version 11.0.10402000 configured using `configure 'CFLAGS=-Wall -Wno-pointer-sign -DUSE_LISP_UNION_TYPE -DSYNC_INPUT -DENABLE_CHECKING -DXASSERTS -DFONTSET_DEBUG -g -O0' 'LDFLAGS=-L/home/monnier/src/Xaw3d' 'CPPFLAGS=-I/home/monnier/src/Xaw3d'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: fr_CH.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Group Minor modes in effect: gnus-undo-mode: t url-handler-mode: t global-reveal-mode: t reveal-mode: t auto-insert-mode: t savehist-mode: t minibuffer-electric-default-mode: t cua-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: <switch-frame> <select-window> SPC SPC N o SPC a m o u n t SPC o SPC <backspace> f SPC c h a n g i n g SPC t h e SPC : f a m i l y SPC <left> <left> <left> <left> <left> <left> <left> <backspace> ` C-e <backspace> ' SPC s e t t i n g SPC w i l l SPC c h a n g e SPC t h e SPC f o n t SPC u s e d SPC f o r SPC t h a t SPC f a c e . <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <down> <down> <left> <right> <down> <left> <right> <down> <left> <right> <down> <left> <right> <down> <left> <right> <up> <up> <left> <right> <down> <left> <right> <down> <left> <right> <return> <return> M-i S t e f a n <return> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <help-echo> <up> <up> <up> <up> <up> A p p a e n <backspace> <backspace> r e n t l y SPC M-l C-a <return> M-q <backspace> <left> <right> <down> <left> <right> <down> <left> <right> C-c C-c <switch-frame> <select-window> <select-window> <switch-frame> <switch-frame> <help-echo> <switch-frame> <switch-frame> <help-echo> <select-window> <help-echo> M-x M-p <return> Recent messages: Denied server nntp+gmane Entering debugger... Back to top level. Mark set [2 times] Auto-saving...done Mark set [2 times] Auto-saving...done Sending... Sending via mail... Sending...done [-- Attachment #3: Type: message/rfc822, Size: 2020 bytes --] From: Chong Yidong <cyd@stupidchicken.com> To: Stefan Monnier <monnier@iro.umontreal.ca> Cc: Kenichi Handa <handa@m17n.org>, 1127-done@emacsbugs.donarmstrong.com Subject: Re: Can't set default face to get the font I want Date: Tue, 14 Oct 2008 00:15:33 -0400 Message-ID: <87bpxnolqy.fsf@cyd.mit.edu> > % xrdb -remove > % src/emacs -Q --eval '(customize-face (quote default))' > > I seem to be unable to select my beloved > "-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*". If I set > family=fixed, foundry=misc, width=semicondensed, height=100, > I get -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1; > It appears that the "semicondensed" part is ignored. I found the problem: in internal-set-lisp-face-attribute, we do the following: if (prop_index) /* If a font-related attribute other than QCfont and QCfontset is specified, and if the original QCfont attribute has a font (font-spec or font-object), set the corresponding property in the font to nil so that the font selector doesn't think that the attribute is mandatory. */ font_clear_prop (XVECTOR (lface)->contents, prop_index); The FONT_AVGWIDTH_INDEX entry also needs to be cleared out at this time, otherwise the font backend won't find the semicondensed font. I've checked in a fix. ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#1127: marked as done (Can't set default face to get the font I want) 2008-10-09 5:21 ` bug#1127: Can't set default face to get the font I want Stefan Monnier 2008-10-14 4:20 ` bug#1127: marked as done (Can't set default face to get the font I want) Emacs bug Tracking System @ 2008-10-14 19:10 ` Emacs bug Tracking System 1 sibling, 0 replies; 7+ messages in thread From: Emacs bug Tracking System @ 2008-10-14 19:10 UTC (permalink / raw) To: Chong Yidong [-- Attachment #1: Type: text/plain, Size: 852 bytes --] Your message dated Tue, 14 Oct 2008 15:03:34 -0400 with message-id <8763nv3sop.fsf@cyd.mit.edu> and subject line Re: Can't set default face to get the font I want has caused the Emacs bug report #1127, regarding Can't set default face to get the font I want to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact don@donarmstrong.com immediately.) -- 1127: http://emacsbugs.donarmstrong.com/cgi-bin/bugreport.cgi?bug=1127 Emacs Bug Tracking System Contact don@donarmstrong.com with problems [-- Attachment #2: Type: message/rfc822, Size: 6114 bytes --] From: Stefan Monnier <monnier@iro.umontreal.ca> To: submit@emacsbugs.donarmstrong.com Subject: Can't set default face to get the font I want Date: Thu, 09 Oct 2008 01:21:11 -0400 Message-ID: <jwvej2qqrct.fsf-monnier+gmane.comp.fonts.dejavu@gnu.org> Package: Emacs Version: 23.0.60 Please describe exactly what actions triggered the bug and the precise symptoms of the bug: After I do % xrdb -remove % src/emacs -Q --eval '(customize-face (quote default))' I seem to be unable to select my beloved "-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*". If I set family=fixed, foundry=misc, width=semicondensed, height=100, I get -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1; It appears that the "semicondensed" part is ignored. Stefan If Emacs crashed, and you have the Emacs process in the gdb debugger, please include the output from the following gdb commands: `bt full' and `xbacktrace'. If you would like to further debug the crash, please read the file /home/monnier/src/emacs/work/etc/DEBUG for instructions. In GNU Emacs 23.0.60.1 (i686-pc-linux-gnu, GTK+ Version 2.12.11) of 2008-10-05 on pastel Windowing system distributor `The X.Org Foundation', version 11.0.10402000 configured using `configure 'CFLAGS=-Wall -Wno-pointer-sign -DUSE_LISP_UNION_TYPE -DSYNC_INPUT -DENABLE_CHECKING -DXASSERTS -DFONTSET_DEBUG -g -O0' 'LDFLAGS=-L/home/monnier/src/Xaw3d' 'CPPFLAGS=-I/home/monnier/src/Xaw3d'' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: fr_CH.UTF-8 value of $XMODIFIERS: nil locale-coding-system: utf-8-unix default-enable-multibyte-characters: t Major mode: Group Minor modes in effect: gnus-undo-mode: t url-handler-mode: t global-reveal-mode: t reveal-mode: t auto-insert-mode: t savehist-mode: t minibuffer-electric-default-mode: t cua-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t global-auto-composition-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: <switch-frame> <select-window> SPC SPC N o SPC a m o u n t SPC o SPC <backspace> f SPC c h a n g i n g SPC t h e SPC : f a m i l y SPC <left> <left> <left> <left> <left> <left> <left> <backspace> ` C-e <backspace> ' SPC s e t t i n g SPC w i l l SPC c h a n g e SPC t h e SPC f o n t SPC u s e d SPC f o r SPC t h a t SPC f a c e . <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <up> <left> <right> <down> <down> <left> <right> <down> <left> <right> <down> <left> <right> <down> <left> <right> <down> <left> <right> <up> <up> <left> <right> <down> <left> <right> <down> <left> <right> <return> <return> M-i S t e f a n <return> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <select-window> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <select-window> <switch-frame> <switch-frame> <select-window> <select-window> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <switch-frame> <switch-frame> <select-window> <switch-frame> <select-window> <help-echo> <switch-frame> <switch-frame> <select-window> <help-echo> <switch-frame> <select-window> <switch-frame> <help-echo> <up> <up> <up> <up> <up> A p p a e n <backspace> <backspace> r e n t l y SPC M-l C-a <return> M-q <backspace> <left> <right> <down> <left> <right> <down> <left> <right> C-c C-c <switch-frame> <select-window> <select-window> <switch-frame> <switch-frame> <help-echo> <switch-frame> <switch-frame> <help-echo> <select-window> <help-echo> M-x M-p <return> Recent messages: Denied server nntp+gmane Entering debugger... Back to top level. Mark set [2 times] Auto-saving...done Mark set [2 times] Auto-saving...done Sending... Sending via mail... Sending...done [-- Attachment #3: Type: message/rfc822, Size: 1918 bytes --] From: Chong Yidong <cyd@stupidchicken.com> To: Kenichi Handa <handa@m17n.org> Cc: 1127-done@emacsbugs.donarmstrong.com Subject: Re: Can't set default face to get the font I want Date: Tue, 14 Oct 2008 15:03:34 -0400 Message-ID: <8763nv3sop.fsf@cyd.mit.edu> Kenichi Handa <handa@m17n.org> writes: > At first customize family and foudnry only, then customize > width to semi-condensed. But with the last customization of > width, internal-set-lisp-face-attribute is called as this: > > (:family unspecified) > (:width unspecified) > (:width normal) > (:family "dejavu sans mono") > (:width semi-condensed) > (:family "fixed") > > When the function is called to change width to > semi-condensed, somehow the family was already set back to > "dejavu sans mono", so, again, the font can't be changed to > semi-condensed. I've made some changes to set-face-attribute, so that it tries to sets :family and :foundry before anything else. This should solve the problem seen here. ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#1127: Can't set default face to get the font I want
@ 2008-10-12 4:30 Chong Yidong
2008-10-14 8:18 ` Kenichi Handa
0 siblings, 1 reply; 7+ messages in thread
From: Chong Yidong @ 2008-10-12 4:30 UTC (permalink / raw)
To: Kenichi Handa; +Cc: 1127
Hi Handa-san,
> % xrdb -remove
> % src/emacs -Q --eval '(customize-face (quote default))'
>
> I seem to be unable to select my beloved
> "-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*". If I set
> family=fixed, foundry=misc, width=semicondensed, height=100,
> I get -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1;
> It appears that the "semicondensed" part is ignored.
This appears to be a problem in the font_score algorithm in font.c. The
font passed in as the argument has the `semicondensed' width property,
but the font found has `normal'.
Could you take a look?
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#1127: Can't set default face to get the font I want 2008-10-12 4:30 bug#1127: Can't set default face to get the font I want Chong Yidong @ 2008-10-14 8:18 ` Kenichi Handa 2008-10-14 14:45 ` Chong Yidong 0 siblings, 1 reply; 7+ messages in thread From: Kenichi Handa @ 2008-10-14 8:18 UTC (permalink / raw) To: Chong Yidong; +Cc: 1127 In article <87iqryl9jc.fsf@cyd.mit.edu>, Chong Yidong <cyd@stupidchicken.com> writes: > Hi Handa-san, > > % xrdb -remove > > % src/emacs -Q --eval '(customize-face (quote default))' > > > > I seem to be unable to select my beloved > > "-misc-fixed-medium-r-semicondensed--13-*-*-*-*-*-*-*". If I set > > family=fixed, foundry=misc, width=semicondensed, height=100, > > I get -misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1; > > It appears that the "semicondensed" part is ignored. > This appears to be a problem in the font_score algorithm in font.c. The > font passed in as the argument has the `semicondensed' width property, > but the font found has `normal'. I can reproduce that problem, but I don't think it's a problem of font_score. For instance, (list-fonts (font-spec :family "fixed" :foundry "misc") nil nil (font-spec :width 'semicondensed)) correctly prefers semicondensed fonts. > I found the problem: in internal-set-lisp-face-attribute, we do the > following: > if (prop_index) > /* If a font-related attribute other than QCfont and QCfontset > is specified, and if the original QCfont attribute has a font > (font-spec or font-object), set the corresponding property in > the font to nil so that the font selector doesn't think that > the attribute is mandatory. */ > font_clear_prop (XVECTOR (lface)->contents, prop_index); > The FONT_AVGWIDTH_INDEX entry also needs to be cleared out at this time, > otherwise the font backend won't find the semicondensed font. I've > checked in a fix. It's reasonable to clear FONT_AVGWIDTH_INDEX of a font if :width is changed, but your change clears that unconditionally. I think we should install the attached change instead. Anyway, I don't think that fixes the current problem. The source of the problme I observed is this. When multiple font-related attributes of a face are customized, internal-set-lisp-face-attribute is called multiple times. For instance, when we customize family, foundry, and width (as you did), internal-set-lisp-face-attribute is called with attr :family and :width with these values in this sequence (note that my defualt font is now "dejavu sans mono"): (:family unspecified) (:width normal) (:family "dejavu sans mono") (:width semi-condensed) (:family "fixed") As "dejavu sans mono" doesn't have semi-condensed variation, the 4th call doesn't change the width, and then the 5th call changes the family to "fixed". Next, I tried this: At first customize family and foudnry only, then customize width to semi-condensed. But with the last customization of width, internal-set-lisp-face-attribute is called as this: (:family unspecified) (:width unspecified) (:width normal) (:family "dejavu sans mono") (:width semi-condensed) (:family "fixed") When the function is called to change width to semi-condensed, somehow the family was already set back to "dejavu sans mono", so, again, the font can't be changed to semi-condensed. At the moment, I don't know why internal-set-lisp-face-attribute is called in that way. --- Kenichi Handa handa@ni.aist.go.jp *** font.c.~1.87.~ 2008-10-14 13:55:27.000000000 +0900 --- font.c 2008-10-14 16:01:44.000000000 +0900 *************** *** 2996,3001 **** --- 2996,3002 ---- if (! FONTP (font)) return; if (NILP (AREF (font, prop)) + && prop != FONT_WIDTH_INDEX && prop != FONT_FAMILY_INDEX && prop != FONT_FOUNDRY_INDEX && prop != FONT_SIZE_INDEX) return; *************** *** 3018,3023 **** --- 3019,3026 ---- ASET (font, FONT_SPACING_INDEX, Qnil); ASET (font, FONT_AVGWIDTH_INDEX, Qnil); } + else if (prop == FONT_WIDTH_INDEX) + ASET (font, FONT_AVGWIDTH_INDEX, Qnil); attrs[LFACE_FONT_INDEX] = font; } ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#1127: Can't set default face to get the font I want 2008-10-14 8:18 ` Kenichi Handa @ 2008-10-14 14:45 ` Chong Yidong 0 siblings, 0 replies; 7+ messages in thread From: Chong Yidong @ 2008-10-14 14:45 UTC (permalink / raw) To: Kenichi Handa; +Cc: 1127 Kenichi Handa <handa@m17n.org> writes: > It's reasonable to clear FONT_AVGWIDTH_INDEX of a font if > :width is changed, but your change clears that > unconditionally. I think we should install the attached > change instead. Yes, that looks like a better change. I checked it in. Thanks. > When multiple font-related attributes of a face are > customized, internal-set-lisp-face-attribute is called > multiple times. > > As "dejavu sans mono" doesn't have semi-condensed variation, > the 4th call doesn't change the width, and then the 5th call > changes the family to "fixed". Indeed, we may have to look at the logic in cus-face. ^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#1127: Can't set default face to get the font I want
@ 2008-10-14 4:40 Chong Yidong
0 siblings, 0 replies; 7+ messages in thread
From: Chong Yidong @ 2008-10-14 4:40 UTC (permalink / raw)
To: Stefan Monnier; +Cc: 1127, Kenichi Handa
> The FONT_AVGWIDTH_INDEX entry also needs to be cleared out at this
> time, otherwise the font backend won't find the semicondensed font.
> I've checked in a fix.
Hmm... actually, this doesn't fix the bug for the recipe originally
given. It does, however, cause
(set-face-attribute 'default nil :family "fixed"
:foundry "misc" :weight 'medium :width 'semi-condensed)
to behave properly.
So there's probably still a bug lurking somewhere.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2008-10-14 19:10 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <87bpxnolqy.fsf@cyd.mit.edu> 2008-10-09 5:21 ` bug#1127: Can't set default face to get the font I want Stefan Monnier 2008-10-14 4:20 ` bug#1127: marked as done (Can't set default face to get the font I want) Emacs bug Tracking System 2008-10-14 19:10 ` Emacs bug Tracking System 2008-10-12 4:30 bug#1127: Can't set default face to get the font I want Chong Yidong 2008-10-14 8:18 ` Kenichi Handa 2008-10-14 14:45 ` Chong Yidong -- strict thread matches above, loose matches on Subject: below -- 2008-10-14 4:40 Chong Yidong
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.