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