[tomas@frydrych.uklinux.net: patch: Unix unicode printing patch]

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
        GnuPG 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
    * 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 *


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