* Chinese punctuation symbol can't be displayed on windows 2000.
@ 2008-12-12 10:57 anhnmncb
2008-12-14 2:58 ` anhnmncb
` (2 more replies)
0 siblings, 3 replies; 11+ messages in thread
From: anhnmncb @ 2008-12-12 10:57 UTC (permalink / raw)
To: emacs-devel
I've tested the same .emacs with windows xp, vista, only 2000 has this
issue, Chinese fonts are ok, but Chinese punctuations.
-----------------------
For example:
character: 。 (12290, #o30002, #x3002)
preferred charset: unicode (Unicode (ISO10646))
code point: 0x3002
syntax: _ which means: symbol
category: c:Chinese h:Korean j:Japanese |:line breakable
While filling, we can break a line at this character.
buffer code: #xE3 #x80 #x82
file code: #xE3 #x80 #x82 (encoded by coding system utf-8)
display: no font available
Character code properties: customize what to show
name: IDEOGRAPHIC FULL STOP
old-name: IDEOGRAPHIC PERIOD
general-category: Po (Punctuation, Other)
-----------------------
I also notice that if I replace the system's courer and simsun fonts
with vista's, then issue was gone.
My relavent setting for font is following:
-----------------------
(set-frame-font "Courier New-10")
(add-to-list 'default-frame-alist '(font . "Courier New-10"))
(set-fontset-font (frame-parameter nil 'font)
'han (font-spec :family "SimSun") nil 'prepend)
(set-fontset-font (frame-parameter nil 'font)
'symbol (font-spec :family "SimSun") nil 'prepend)
(set-fontset-font (frame-parameter nil 'font)
'cjk-misc (font-spec :family "SimSun") nil 'prepend)
(set-fontset-font (frame-parameter nil 'font)
'bopomofo (font-spec :family "SimSun") nil 'prepend)
(set-fontset-font (frame-parameter nil 'font)
'unicode (font-spec :family "SimSun") nil 'append))
-----------------------
My emacs version:
GNU Emacs 23.0.60.1 (i386-mingw-nt5.0.2195) of 2008-12-06 on mybox
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-12 10:57 Chinese punctuation symbol can't be displayed on windows 2000 anhnmncb
@ 2008-12-14 2:58 ` anhnmncb
2008-12-14 15:21 ` Jason Rumney
2008-12-17 3:04 ` anhnmncb
2008-12-17 9:02 ` anhnmncb
2 siblings, 1 reply; 11+ messages in thread
From: anhnmncb @ 2008-12-14 2:58 UTC (permalink / raw)
To: emacs-devel
Could anyone help me to figure it out please? I have no any clue :(
anhnmncb (2008-12-12 18:57 +0800) wrote:
> I've tested the same .emacs with windows xp, vista, only 2000 has this
> issue, Chinese fonts are ok, but Chinese punctuations.
>
> -----------------------
> For example:
>
> character: 。 (12290, #o30002, #x3002)
> preferred charset: unicode (Unicode (ISO10646))
> code point: 0x3002
> syntax: _ which means: symbol
> category: c:Chinese h:Korean j:Japanese |:line breakable
> While filling, we can break a line at this character.
> buffer code: #xE3 #x80 #x82
> file code: #xE3 #x80 #x82 (encoded by coding system utf-8)
> display: no font available
>
> Character code properties: customize what to show
> name: IDEOGRAPHIC FULL STOP
> old-name: IDEOGRAPHIC PERIOD
> general-category: Po (Punctuation, Other)
> -----------------------
>
> I also notice that if I replace the system's courer and simsun fonts
> with vista's, then issue was gone.
>
> My relavent setting for font is following:
>
> -----------------------
> (set-frame-font "Courier New-10")
> (add-to-list 'default-frame-alist '(font . "Courier New-10"))
>
> (set-fontset-font (frame-parameter nil 'font)
> 'han (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'symbol (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'cjk-misc (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'bopomofo (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'unicode (font-spec :family "SimSun") nil 'append))
> -----------------------
>
> My emacs version:
>
> GNU Emacs 23.0.60.1 (i386-mingw-nt5.0.2195) of 2008-12-06 on mybox
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-14 2:58 ` anhnmncb
@ 2008-12-14 15:21 ` Jason Rumney
2008-12-15 0:05 ` anhnmncb
0 siblings, 1 reply; 11+ messages in thread
From: Jason Rumney @ 2008-12-14 15:21 UTC (permalink / raw)
To: anhnmncb; +Cc: emacs-devel
anhnmncb wrote:
>> I've tested the same .emacs with windows xp, vista, only 2000 has this
>> issue, Chinese fonts are ok, but Chinese punctuations.
>>
>> I also notice that if I replace the system's courer and simsun fonts
>> with vista's, then issue was gone.
>>
This seems to suggest that the Windows 2000 version of the font is
failing to claim support for the cjk-misc block of characters.
What does the following report when you evaluate it from the *scratch*
buffer? (press C-j after entering it)
(list-fonts (font-spec :script "cjk-misc"))
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-14 15:21 ` Jason Rumney
@ 2008-12-15 0:05 ` anhnmncb
2008-12-15 13:38 ` Jason Rumney
0 siblings, 1 reply; 11+ messages in thread
From: anhnmncb @ 2008-12-15 0:05 UTC (permalink / raw)
To: emacs-devel
On 2008-12-14, Jason Rumney wrote:
> anhnmncb wrote:
>>> I've tested the same .emacs with windows xp, vista, only 2000 has this
>>> issue, Chinese fonts are ok, but Chinese punctuations.
>>>
>>> I also notice that if I replace the system's courer and simsun fonts
>>> with vista's, then issue was gone.
>>>
>
> This seems to suggest that the Windows 2000 version of the font is
> failing to claim support for the cjk-misc block of characters.
> What does the following report when you evaluate it from the *scratch*
> buffer? (press C-j after entering it)
>
> (list-fonts (font-spec :script "cjk-misc"))
It says nil.
--
Regards,
anhnmncb
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-15 0:05 ` anhnmncb
@ 2008-12-15 13:38 ` Jason Rumney
2008-12-15 15:33 ` anhnmncb
0 siblings, 1 reply; 11+ messages in thread
From: Jason Rumney @ 2008-12-15 13:38 UTC (permalink / raw)
To: anhnmncb; +Cc: emacs-devel
anhnmncb wrote:
>> (list-fonts (font-spec :script "cjk-misc"))
>>
>
> It says nil.
So Emacs will not automatically find a font that covers cjk-misc, you'll
have to tell it explicitly what font to use. Going back to your font
settings:
(set-fontset-font (frame-parameter nil 'font)
'cjk-misc (font-spec :family "SimSun") nil 'prepend)
What happens if you change this to:
(set-fontset-font "fontset-default" 'cjk-misc (font-spec :family "SimSun"))
ie: Explicitly override the default fontset, rather than trying to
figure out the fontset from the frame.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-15 13:38 ` Jason Rumney
@ 2008-12-15 15:33 ` anhnmncb
0 siblings, 0 replies; 11+ messages in thread
From: anhnmncb @ 2008-12-15 15:33 UTC (permalink / raw)
To: emacs-devel
On 2008-12-15, Jason Rumney wrote:
> anhnmncb wrote:
>
>>> (list-fonts (font-spec :script "cjk-misc"))
>>>
>>
>> It says nil.
> So Emacs will not automatically find a font that covers cjk-misc, you'll
> have to tell it explicitly what font to use. Going back to your font
> settings:
>
> (set-fontset-font (frame-parameter nil 'font)
> 'cjk-misc (font-spec :family "SimSun") nil 'prepend)
>
>
> What happens if you change this to:
>
> (set-fontset-font "fontset-default" 'cjk-misc (font-spec :family "SimSun"))
>
> ie: Explicitly override the default fontset, rather than trying to
> figure out the fontset from the frame.
It doesn't help at all :(
--
Regards,
anhnmncb
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-12 10:57 Chinese punctuation symbol can't be displayed on windows 2000 anhnmncb
2008-12-14 2:58 ` anhnmncb
@ 2008-12-17 3:04 ` anhnmncb
2008-12-17 9:02 ` anhnmncb
2 siblings, 0 replies; 11+ messages in thread
From: anhnmncb @ 2008-12-17 3:04 UTC (permalink / raw)
To: emacs-devel
anhnmncb (2008-12-12 18:57 +0800) wrote:
> I've tested the same .emacs with windows xp, vista, only 2000 has this
> issue, Chinese fonts are ok, but Chinese punctuations.
>
> -----------------------
> For example:
>
> character: 。 (12290, #o30002, #x3002)
> preferred charset: unicode (Unicode (ISO10646))
> code point: 0x3002
> syntax: _ which means: symbol
> category: c:Chinese h:Korean j:Japanese |:line breakable
> While filling, we can break a line at this character.
> buffer code: #xE3 #x80 #x82
> file code: #xE3 #x80 #x82 (encoded by coding system utf-8)
> display: no font available
>
> Character code properties: customize what to show
> name: IDEOGRAPHIC FULL STOP
> old-name: IDEOGRAPHIC PERIOD
> general-category: Po (Punctuation, Other)
> -----------------------
>
> I also notice that if I replace the system's courer and simsun fonts
> with vista's, then issue was gone.
>
> My relavent setting for font is following:
>
> -----------------------
> (set-frame-font "Courier New-10")
> (add-to-list 'default-frame-alist '(font . "Courier New-10"))
>
> (set-fontset-font (frame-parameter nil 'font)
> 'han (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'symbol (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'cjk-misc (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'bopomofo (font-spec :family "SimSun") nil 'prepend)
> (set-fontset-font (frame-parameter nil 'font)
> 'unicode (font-spec :family "SimSun") nil 'append))
> -----------------------
>
> My emacs version:
>
> GNU Emacs 23.0.60.1 (i386-mingw-nt5.0.2195) of 2008-12-06 on mybox
Ping. What info should I need to provide for you to get rid of it? It is
too annoying to let me live in emacs :(
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-12 10:57 Chinese punctuation symbol can't be displayed on windows 2000 anhnmncb
2008-12-14 2:58 ` anhnmncb
2008-12-17 3:04 ` anhnmncb
@ 2008-12-17 9:02 ` anhnmncb
2008-12-17 9:53 ` liu shukui
2 siblings, 1 reply; 11+ messages in thread
From: anhnmncb @ 2008-12-17 9:02 UTC (permalink / raw)
To: emacs-devel
Jason Rumney (2008-12-17 05:19 +0000) wrote:
> Quoting anhnmncb <anhnmncb@sina.com>:
>
>> Ping. What info should I need to provide for you to get rid of it? It is
>> too annoying to let me live in emacs :(
>
> I think the problem is in w32font_has_char in w32font.c. Try replacing the
> entire body of that function with:
>
> {
> return -1;
> }
>
> The problem is that function places too much faith in the character range
> support claimed by fonts. Previously I changed it to return -1 (uncertain) when
> a font claims to cover a Unicode range, because many fonts claim coverage, but
> do not cover all characters in that range. Now according to your report, there
> are fonts shipped with Windows 2000 that do not claim support for the cjk-misc
> range, even if they (partially at least) cover it. So it seems there are no
> circumstances left where we can be sure whether a character is or is not
> included in a font without opening the font.
It solves the issue, and I find that emacs now can display most of fonts
that can not even when on xp and vista.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-17 9:02 ` anhnmncb
@ 2008-12-17 9:53 ` liu shukui
2008-12-17 10:27 ` anhnmncb
0 siblings, 1 reply; 11+ messages in thread
From: liu shukui @ 2008-12-17 9:53 UTC (permalink / raw)
To: anhnmncb; +Cc: emacs-devel
Has this change committed to the cvs?
On Wed, Dec 17, 2008 at 5:02 PM, anhnmncb <anhnmncb@sina.com> wrote:
> Jason Rumney (2008-12-17 05:19 +0000) wrote:
>
>> Quoting anhnmncb <anhnmncb@sina.com>:
>>
>>> Ping. What info should I need to provide for you to get rid of it? It is
>>> too annoying to let me live in emacs :(
>>
>> I think the problem is in w32font_has_char in w32font.c. Try replacing the
>> entire body of that function with:
>>
>> {
>> return -1;
>> }
>>
>> The problem is that function places too much faith in the character range
>> support claimed by fonts. Previously I changed it to return -1 (uncertain) when
>> a font claims to cover a Unicode range, because many fonts claim coverage, but
>> do not cover all characters in that range. Now according to your report, there
>> are fonts shipped with Windows 2000 that do not claim support for the cjk-misc
>> range, even if they (partially at least) cover it. So it seems there are no
>> circumstances left where we can be sure whether a character is or is not
>> included in a font without opening the font.
>
> It solves the issue, and I find that emacs now can display most of fonts
> that can not even when on xp and vista.
>
>
>
>
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-17 9:53 ` liu shukui
@ 2008-12-17 10:27 ` anhnmncb
2008-12-17 14:44 ` Jason Rumney
0 siblings, 1 reply; 11+ messages in thread
From: anhnmncb @ 2008-12-17 10:27 UTC (permalink / raw)
To: emacs-devel
liu shukui (2008-12-17 17:53 +0800) wrote:
> Has this change committed to the cvs?
>
No, I modified the src file by myself. It solves not only the Chinese
punctuation displaying but also some other chinese font displaying that
annoying me so long. I dont know why it should not be this by default,
any reason?
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: Chinese punctuation symbol can't be displayed on windows 2000.
2008-12-17 10:27 ` anhnmncb
@ 2008-12-17 14:44 ` Jason Rumney
0 siblings, 0 replies; 11+ messages in thread
From: Jason Rumney @ 2008-12-17 14:44 UTC (permalink / raw)
To: anhnmncb; +Cc: emacs-devel
anhnmncb wrote:
> No, I modified the src file by myself. It solves not only the Chinese
> punctuation displaying but also some other chinese font displaying that
> annoying me so long. I dont know why it should not be this by default,
> any reason?
>
I have checked it in now. It can probably be improved for truetype fonts
by looking up the cmap table directly. But I am not sure if that will
be any more efficient than requiring fonts to be opened so encode_char
can be used.
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2008-12-17 14:44 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-12 10:57 Chinese punctuation symbol can't be displayed on windows 2000 anhnmncb
2008-12-14 2:58 ` anhnmncb
2008-12-14 15:21 ` Jason Rumney
2008-12-15 0:05 ` anhnmncb
2008-12-15 13:38 ` Jason Rumney
2008-12-15 15:33 ` anhnmncb
2008-12-17 3:04 ` anhnmncb
2008-12-17 9:02 ` anhnmncb
2008-12-17 9:53 ` liu shukui
2008-12-17 10:27 ` anhnmncb
2008-12-17 14:44 ` Jason Rumney
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).