Closed Bug 226758 Opened 21 years ago Closed 16 years ago

In some fonts, ‘ is rendered as a box / square []

Categories

(Core :: Internationalization, defect)

x86
Linux
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: mvl, Assigned: smontagu)

References

()

Details

(Keywords: fixed1.7, Whiteboard: fixed-aviary1.0)

Attachments

(3 files)

In some fonts (it seems to be the MS core fonts) ‘ is rendered as a box,
like []. In other fonts it works. For me, ’ works, but i have heard on
#mozillazine that that is broken sometimes too.

testcase: see url
expected results: show `name' three times, in three different fonts
actual restuls: []name' on the first two lines, `name' on the third.

This is a regression. (but an old one). The best regression window I could get
is somewhere between 2003070107 (works) and 2003072322 (fails). (all linux,
regular mozilla.org nightlies).
This may be a dupe of bug 108231. Can you set the environment variable
NS_FONT_DEBUG to 5 and load the testcase, with output redirected to a file, and
attach the file here?
Attached file log from NS_FONT_DEBUG
attached the results of:
./mozilla -P testuser http://yellow.exedo.nl/~michiel/usit.html > fontlog.txt

bug 108231 is an old bug, from before this regression occured. This used to
work in old builds. So i don't think it is a dup.
> 2003070107 (works) and 2003072322

  Nothing was checked into nsFontMetricsGTK.cpp  between those dates. It's
strange. Anyway, for Helvetica, iso10646-1 is used, but for other two fonts, it
uses 'iso8859-7'. Why? Because iso8859-7 includes U+2018 and U+2019. Apparently,
Windows fonts you installed on Linux (Arial and Vernada) don't cover U+2018 but
are still presented as covering iso8859-7 because the number of missing glyphs
are within the tolerance range set by 'mkfontscale' (or whatever tool you used
to generate fonts.scale/fonts.dir file.) You can check it out with 

  xfd -fn -monotype-arial-medium-r-normal--14-*-0-0-p-*-iso8859-7
(U+2018 and U+2019 should be at 0xa1 and 0xa2.

The patch for bug 229760 I just landed will solve your problem because
microsoft-cp1252 will be used for U+2018 and other characters present in
Windows-1252 but not in ISO-8859-1 before trying iso8859-7 and iso10646-1.


However, the root cause of this bug (that triggered regression between
2003-07-01 and 2003-07-23) is not yet known 

My original bug (http://bugzilla.mozilla.org/show_bug.cgi?id=242438) appears to
be a duplicate of this one.  As you can see from the screen shot, this looks
like an outstanding problem.

Again, please note that RC1 does not seem to work as a download from
mozilla.org (the screen shot also shows the version I _just_ installed after
wiping clean my older version).
*** Bug 242438 has been marked as a duplicate of this bug. ***
(In reply to comment #3)
>   Nothing was checked into nsFontMetricsGTK.cpp  between those dates. It's
> strange. Anyway, for Helvetica, iso10646-1 is used, but for other two fonts, it
> uses 'iso8859-7'. Why? Because iso8859-7 includes U+2018 and U+2019. 

It looks like this was me, as bz points out in bug 232026 (a dupe of this):
http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=all&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=smontagu%25netscape.com&whotype=regexp&sortby=Date&hours=2&date=explicit&mindate=2003-07-08+00%3A00%3A00&maxdate=2003-07-09+00%3A00%3A00&cvsroot=%2Fcvsroot

That check in updated the mapping tables for ISO-8859-7 and added some new
codepoints including U+2018 and U+2019. There is obviously a font on the system
that still uses the old mapping, so doesn't include the glyphs for these
codepoints even though we expect it to.
*** Bug 223244 has been marked as a duplicate of this bug. ***
*** Bug 232026 has been marked as a duplicate of this bug. ***
Simon, anything we can do about this for 1.7?
I see a few possibilities:

1) ban the antique iso-8859-7 fonts

2) backout the patch, i.e. downgrade from ISO 8859-7:2003 to ISO 8859-7:1987. We
might do this selectively so as not to lose the Euro and Drachma characters
which are probably needed, and just replace the single quotation marks mappings
like this:

-0xA1   0x2018  #       LEFT SINGLE QUOTATION MARK
-0xA2   0x2019  #       RIGHT SINGLE QUOTATION MARK
+0xA1   0x02BD  #       MODIFIER LETTER REVERSED COMMA
+0xA2   0x02BC  #       MODIFIER LETTER APOSTROPHE

3) have a separate ISO-8859-7 encoder for the X fonts, which would solve this
bug without impacting Save As Charset.

My own inclination is towards option 2, unless option 3 would be a lot simpler
to implement than I think.
smontagu:
See bug 235391 comment #1 - Sun solved the issue via having a seperate XLFD
encoding for the newer ISO8859-7 variants.
Flags: blocking1.7+
(In reply to comment #10)

> 3) have a separate ISO-8859-7 encoder for the X fonts, which would solve this
> bug without impacting Save As Charset.
> 
> My own inclination is towards option 2, unless option 3 would be a lot simpler
> to implement than I think.

option 3 is not that complex, but may be more complex than you want it to be
:-). A new encoder should be compiled in only on X11 (as is the case for several
X11-only encoders).  I have a reservation about option 2 because we have to
'sacrifice' the compliance to the 2003 version of ISO-8859-7. 
What worries me about option 3 is that it assumes that *all* iso-8859-7 X fonts
use the old version of iso-8859-7. If this isn't the case we are likely to cause
regressions for users with up-to-date Greek fonts.
Simon, time is very short and we need a solution today. If backing out is the
safest thing, let's just do that. 
Maybe reverting the change at
http://bonsai.mozilla.org/cvslog.cgi?file=mozilla/intl/uconv/ucvlatin/cp1256.uf
for the 1.7 branch and working on a better solution for the trunk would be the
right thing to do, that is, if this "fixed" state is negatively affecting more
pages than the old version. 
This changes the right and left single quotation marks back to reversed comma
and apostrophe (which look much the same in most fonts: ʽlike thisʼ instead
of ‘like this’) without damaging the Euro and the Drachma.
Assignee: core.layout.fonts-and-text → smontagu
Component: Layout: Fonts and Text → Internationalization
QA Contact: ian → amyy
Attachment #150465 - Flags: review?(jshin)
Attachment #150465 - Flags: superreview?(dbaron)
(In reply to comment #14)
> Simon, time is very short and we need a solution today. If backing out is the
> safest thing, let's just do that. 

It's almost midnight local time so I may not be awake long enough to check in. I
also can't test since I don't have a system which displays the bug. Can someone
else drive this in?
Comment on attachment 150465 [details] [diff] [review]
partial backout as described in comment 10 option 2

r=jshin
Attachment #150465 - Flags: review?(jshin) → review+
Attachment #150465 - Flags: superreview?(dbaron) → superreview+
Attachment #150465 - Flags: approval1.7?
(In reply to comment #17)

> It's almost midnight local time so I may not be awake long enough to check in. I
> also can't test since I don't have a system which displays the bug. Can someone
> else drive this in?

I'm sorry I forgot to note that I'm gonna do that before I went to bed. Now that
I was up again, I'll take care of it as soon as a1.7 is granted. 
Comment on attachment 150465 [details] [diff] [review]
partial backout as described in comment 10 option 2

a=asa (on behalf of drivers) for checkin to 1.7
Attachment #150465 - Flags: approval1.7? → approval1.7+
Whiteboard: fixed-aviary1.0
fix was checked into 1.7 branch by leaf.
Keywords: fixed1.7
Thank you for checkins, leaf and scott. Can anyone confirm that the bug no
longer appears on branch builds?
Just downloaded the latest-1.7 branch nightly build:
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7) Gecko/20040611

Yes, the partial backout patch works and the bug is (partially) fixed for now;
you can double-check it with another page which triggers this bug as well:

http://www.mozilla.org/get-involved.html
Now that the 1.7 branch fix is in, do we really need the blocking1.7+ flag?
Flags: blocking1.7+
As I am on Mozilla 1.8 a3, this bug has made a comeback. Again you can test it
with this page:
 
http://www.mozilla.org/get-involved.html
See comment 15. The fix was only ever checked in on the 1.7 branch.
This was a bug with core X fonts, and is irrelevant to the current codebase.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: