[comp.windows.x] upper case fontnames

moraes@godzilla.ele.toronto.EDU (Mark Moraes) (05/17/88)

Just curious - why are all fontnames converted to lowercase by the 
servers? (See server/os/{4.2bsd,hpux} for examples.

The server documents mention in passing (where they describe
ExpandFontName, I think) that the fontnames should be
case-insensitive. Shouldn't that match both lower and upper case?

RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (05/17/88)

    Date: Mon, 16 May 88 17:30:08 EDT
    From: Mark Moraes <moraes%godzilla.ele.toronto.edu@relay.cs.net>

    Just curious - why are all fontnames converted to lowercase by the 
    servers?

To obey the protocol spec.

    The server documents mention in passing (where they describe
    ExpandFontName, I think) that the fontnames should be
    case-insensitive. Shouldn't that match both lower and upper case?

The current (undocumented, of course) implementation restriction in the
Unix OS layer is that fonts must be stored using lowercase filenames.
(This is arguably an undesirable restriction.)  Font names coming in
over the protocol are thus converted to lowercase for correct matching.

swick@ATHENA.MIT.EDU (Ralph R. Swick) (05/17/88)

     Date:  Mon, 16 May 88 17:30:08 EDT
     From:  Mark Moraes <moraes%godzilla.ele.toronto.edu@RELAY.CS.NET>
     
     Just curious - why are all fontnames converted to lowercase by the 
     servers? (See server/os/{4.2bsd,hpux} for examples.

     The server documents mention in passing (where they describe
     ExpandFontName, I think) that the fontnames should be
     case-insensitive. Shouldn't that match both lower and upper case?

Implementation hack (or bug, depending on your frame of reference).
The Protocol requires fontnames to be case insensitive and contain
only ISO Latin-1 characters, but the implementation (and meaning of)
fontnames is not otherwise constrained.

The sample server chooses to store fonts in individual files and the
most efficient way to implement a case insensitive filesystem lookup
is to single-case all fontnames.

Remember that servers tell clients what fonts they support (via
XListFonts), and there is no requirement that this list be piece-wise
modifiable by a user.  An implementation that hardcoded fonts internally
or that stored multiple fonts in a single file or that computed them
dynamically could still be a conforming implementation.

-Ralph