Subject: [tomas@frydrych.uklinux.net: patch: Unix unicode printing patch]
From: Sam TH (sam@uchicago.edu)
Date: Sat Feb 03 2001 - 06:19:53 CST
sam th
sam@uchicago.edu
http://www.abisource.com/~sam/
GnuPG Key:
http://www.abisource.com/~sam/key
attached mail follows:
Content-Description: Mail message body
**** note ****
my default ISP is down so I was not able to send a copy of the
patch to the developer list
***************
This patch implements the core changes needed to print under utf-
8 locale, as well as making some changes generally beneficial
(fixing a memory leak).
The patch implements a XP class UT_AdobeEncoding to handle
Adobe glyph name <-> UCS-2 translation, replacing some not
entirely satisfactory code in the UnixFont class:
* it handles the entire Adobe set of glyph names (or so I believe;
it certainly is more complete than that used by the existing
code);
* it further handles glyphs named using the uniXXXX convention
(currently unhandled)
* the adobe -> to UCS conversion uses binary search instead
of straight search
* because it is XP, it will be ready when some gets to implement
the XP PS driver.
In addition the patch removes the getUniWidths function of the
UnixFont class and implements in its place
getCharWidth(UT_UCSChar). The rational for this is:
* the existing mechanism is unwieldy, requiring to carry out
UCS-2 to native conversion every time the PS driver wants to
get width of some particular character; in the new mechanism
this is replaced by a one-off native to UCS conversion when the
the width data is created from the afm file.
* the width look up through indexing an array is unsuitable for
16-bit fonts, because it would require that a 128K look up table
is allocated for each font, eventhough some 90+% of this table
would be unused in virtually all cases (Unicode fonts rarely
contain more than a couple of thousand glyphs). The new
mechanism uses a table of the size 4 *
number_of_chars_in_font.
Tomas
Content-Description: Attachment information.
The following section of this message contains a file attachment
prepared for transmission using the Internet MIME message format.
If you are using Pegasus Mail, or any another MIME-compliant system,
you should be able to save it or view it from within your mailer.
If you cannot, please ask your system administrator for assistance.
---- File information -----------
File: UnixPS_patch.gz
Date: 3 Feb 2001, 10:56
Size: 13566 bytes.
Type: Unknown
This archive was generated by hypermail 2b25 : Sat Feb 03 2001 - 06:19:36 CST