[comp.windows.x] Portable server release clients

ron@WAYBACK.UNM.EDU (11/17/88)

How does one go about writing an X11 client independent of the
server release?


Here is an example:

say you have a client and you want it to work on R2 and R3, but it
uses Fonts.

Problem:

R2 Fonts use the file name convention and R3 Fonts use the ISO
Latin-1 naming convention.

Soln:

Maybe one of the display macros will tell me the release number?

XVendorRelease will return a number related to a vendor's release of
the X server.


Our MIT servers return 2 for R2 and 3 for R3, but one of our DEC
machines is running DECWINDOWS
(vendor = "DECWINDOWS DigitalEquipmentCorp.")

and returns (release = 11)

I guess this is okay, since this is the vendor release of the server.


Problem:


Why doesn't the display structure have an entry for the 
MIT X Consortium based revision number?

*OR* some other method for telling clients what the server expects,
be it fonts names or what ever else will change in coming releases.

I hope that I'm missing something!

But if I'm not, how are we going to ever write independent
server release clients?




VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV
Ron E. Neher
University of New Mexico
Dept. of Electrical & Computer Engineering
Albuquerque, NM 87131
(505) 277-0809(office)/0801(lab)
NET-ADDRESS:   ron@wayback.unm.edu OR ron%wayback@ariel.unm.edu
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

rws@EXPO.LCS.MIT.EDU (Bob Scheifler) (11/17/88)

The protocol hasn't really changed from release to release,
so in most ways portability should not be an issue.  The
subject of fonts is important, but it has almost nothing to
do with "releases".  There are no standards for what fonts
a server must provide.  The way you write a portable client
is to make sure that font names are resources that can be
changed by the end-user or site admin.  You'll probably want
to "build in" default font names, either in an app-defaults
file or in your code, but your code ought to be robust
enough to fall back on the default font in the GC if all
else fails.

If you have particular fonts that you want to use, and
you have them in source (BDF) form, then most server
vendors should be supplying a font compiler with their
server, allowing you to import fonts.

    R2 Fonts use the file name convention and R3 Fonts use the ISO
    Latin-1 naming convention.

The R3 convention isn't "ISO Latin 1", that's a character set
encoding.  R3 provides a mechanism for enabling file names as
aliases (see the mkfontdir man page).  You can also just
use your R2 fonts with an R3 server, so you can certainly
place R2 fonts in a directory and allow users to add it to
their font path.  We tried reasonably hard to provide backward
compatibility capability for R2 clients.

    Why doesn't the display structure have an entry for the 
    MIT X Consortium based revision number?

The vendor name and release constitute this information.

    *OR* some other method for telling clients what the server expects,
    be it fonts names or what ever else will change in coming releases.

If the protocol changes in some significant way, the protocol minor
version will change, and that will be the indicator.

    But if I'm not, how are we going to ever write independent
    server release clients?

By providing configurable font (and color) resources.

janssen@titan.sw.mcc.com (Bill Janssen) (11/18/88)

So far as I can tell, one can never count on having any particular font
with a particular server.  Is there some default font that is guaranteed
to work with any server (perhaps "default")?  Is there some way of using
a "server default" font?

I suppose I could just ask for a list of one font, and use that...  though
it's not clear that a server is guaranteed to have *any* fonts.

Bill