summaryrefslogtreecommitdiff
path: root/X11R2.mdwn
blob: 7fd7b83d870835f7b53674de3fc896a0aa8385e9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
<div itemscope itemtype="http://schema.org/SoftwareApplication">

# <span itemprop="name">X Window System</span>, <span itemprop="version">Version 11, Release 2</span>

<span itemprop="description">
X11R2 was the second release of the X Window System, Version 11 from MIT.
</span>
It was <a href="https://groups.google.com/d/msg/comp.windows.x/Vkcma__nTXc/oXRU67CsRHQJ">released in
<span itemprop="datePublished" content="1988-03-01">March 1988</span></a>,
with the following changes excerpted from the release notes.
The sources are available for download for historical reference from
<a href="http://www.x.org/releases/X11R2/" itemprop="downloadUrl">http://www.x.org/releases/X11R2/</a>.

[[!toc levels=4 startlevel=2]]

## Overview

This is the second release of Version 11 of the X Window System from MIT.
It is substantially more robust than the previous version and should provide a
solid foundation upon which applications may be developed. No changes have been
made to the X Protocol; the Resource Manager and the extension mechanism were
the only parts of Xlib that were changed in incompatible ways. However, the
command line arguments for specifying the server to contact and the default
geometry for an application's main window have been changed in all supported
clients.  Also, the format for specifying default resources has been changed.

This release contains two separate distributions:  one for software that
is supported by the staff of the X Consortium, and one for user-contributed
software that is provided “as is” as public service.  Furthermore,
printable versions of many documents are provided separately from the source
code to make loading subsets of the release easier.  Over time, we expect
there to be migration in both directions between the two distributions.

The document *X Window System Protocol, Version 11* is the final
authority on what is and is not part of the core X Window System protocol.
The server provided in this distribution is a sample implementation, not
a specification of how servers must be written.

This release contains four higher level toolkits to make designing and
implementing applications easier:

 * *X Toolkit Intrinsics*

    Currently under review by the X Consortium for possible inclusion in
    the X standard, this package provides a collection of resource, event,
    and object managers that may be used to build user interface objects
    called *widgets*.  A sample set of widgets is provided.
    Sources are located in *lib/Xt/* and *lib/Xaw/*.

 * *Xrlib*

    This is a collection of User Interface utilities and higher-level objects
    written by Hewlett-Packard.  Future releases will use the X Toolkit
    Intrinsics.  Sources are located in *contrib/Xr11/*.

 * *Andrew Toolkit*

    Developed by IBM and Carnegie-Mellon University for the CMU Andrew System,
    this package provides a collection of integrated, high-level objects and
    applications.  Sources are located in *contrib/andrew/*.

 * *InterViews*

    Developed at Stanford University, this package
    provides tools for building user interface objects in the C++ programming
    language.  Source are located in *contrib/InterViews/*.

The X Toolkit has changed substantially since the last release (note
that it is now called “Xt” instead of “Xtk”).  Although additional
functionality will probably be added in future releases, the interfaces
documented in the *X Toolkit Intrinsics - C Language X Interface* are
expected to remain fairly stable.

For wider portability, applications should include the new header file
*&lt;X11/Xos.h&gt;* instead of *&lt;strings.h&gt;*,
*&lt;string.h&gt;*, *&lt;time.h&gt;*, *&lt;sys/time.h&gt;*, *&lt;fcntl.h&gt;*,
or *&lt;sys/file.h&gt;*.

To make transition from X10 to X11 easier, a protocol converter that
allows binary X10 programs to be run on X11 displays has been provided.
In addition, this release uses “X11” instead of “X” wherever there is
a conflict with X10 files of the same name (e.g.
*/usr/include/X11/*, */usr/lib/X11/*, */usr/bin/X11/*,
and *-lX11*).  All programs should now #include X header files using
“&lt;X11/*file*&gt;”.

This release should build and install without modification on machines running
the following operating systems:  4.3bsd, Ultrix 2.0, SunOS 3.4, HP-UX 6.01,
and Apollo Domain/IX 9.7.

## What's New in this Release

This release differs from the previous one in the following areas:

### X now has an official name

The X Consortium has designated the following as the official names of the
X Window System:

 * X
 * X Window System
 * X Version 11
 * X Window System, Version 11
 * X11

Note that the phrases X.11, X-11, X Windows or any permutation thereof, are
explicitly excluded from this list and should not be used to describe the
X Window System (window system should be thought of as one word).  In addition,
*X Window System* is a trademark of MIT and should be acknowledged
as such whenever it is used.

### many, many bugs fixed

A large number of bugs have been fixed in the server, the libraries,
and the clients.  Many parts of the sample server that were broken in
in the previous release have been
fixed, and client workarounds for old bugs have been removed; old servers
may not work properly with new clients.
Many of the byte order problems have
been fixed; this release should work equally well on both big endian and
little endian architectures.

### new servers

Native ddx source code has been contributed for the following servers:
Apollo's monochrome and color displays; Digital's QDSS display;
Hewlett-Packard's 9000/series 300 machines
(310, 320, 330, and 350) with the 98547A, 98545A, and 98544A displays; and
IBM's EGA, Megapel, 8514, and VGA displays.  All of these server
implementations use special display hardware to gain good performance.

### compressed fonts

Many servers now do automatic uncompression of fonts that are stored in
*compress(1)* format.  This can save a substantial amount of disk space
for seldomly used fonts.

### Xrm merged into Xlib

The Resource Manager has been merged into Xlib and is now used by the
*XGetDefault* routine and the X Toolkit.  This means that
defaults stored in the server using the *xrdb(1)* program are now honored
by all programs.  There is also a new environment variable called
XENVIRONMENT, that specifies the name of an additional resource file to
be merged in on top of the server defaults and any application defaults.
The format for specifying resources has changed slightly to allow wildcarding
within resource hierarchies (i.e. “program*name: value”).  See the Xlib
documentation on using the Resource Manager for more details.

### X Toolkit Specification and implementation

The X Toolkit Specification and a sample implementation are included in this
release.  The X Toolkit provides a collection of resource, event, and
object managers upon which user interface objects called *widgets* are
built.  This specification is currently under review by the X Consortium
for possible inclusion in the X standard.  The beginnings of an Athena
widget set are also provided.

### new -display and -geometry command line arguments

All supported clients have been changed to require a “-display” argument
in command line specifications of the X server to use.  Programs in
previous releases mistakenly assumed that any command line argument that
contained a colon (:) was a display name.  This caused severe problems for
sites with distributed file systems and for the new “-xrm” command line
option in all X Toolkit clients.  Similarly, the old “=geom” is being
replaced by “-geometry geom”.  <b>All programs should accept
-display and -geometry.</b>  Unambiguous abbreviations are allowed so long
as the full name may also be given.

### fewer flushes in Xlib

The Xlib event checking routines
*XNextEvent*,
*XPeekEvent*,
*XIfEvent*,
*XCheckIfEvent*,
*XPeekIfEvent*,
*XWindowEvent*,
*XCheckWindowEvent*,
*XMaskEvent*,
*XCheckMaskEvent*,
*XCheckTypedEvent*,
*XCheckTypedWindowEvent*, and
*XPendingEvent*
have been changed to only flush the output buffer when they are about to
block, instead
of doing a flush on every call.  This modification is compatible with the
previous release and should not require any client code changes.  Applications
that do a lot of event checking will notice an increase in performance.

### new send_event flag in Xlib XEvents

Events originating from another client using the *XSendEvent* routine
no longer have the eighth bit of the event type set.  Instead, a new
“send_event” flag has been added to the various event structures.  Because
of this, <b>all clients should be recompiled before being linked with the new
library.</b>

### padding added to Xlib XEvents

To provide room in the event structures for extensions, a small amount of
padding has been added to all events.  Although no client
code changes are necessary, <b>all programs should be recompiled before being
linked with the new library.</b>

### serial number tracking in Xlib

Support for tracking serial numbers of requests has been added.  The
protocol provides this information, but the previous release of the library
discarded it.  Two new macros *NextRequest* and
*LastKnownRequestProcessed* (and corresponding routines) have been added
to return the serial number of the next request and the serial number of
the last request known to have been executed by the server.

### new XEventsQueued routine in Xlib

A new routine, *XEventsQueued*, has been added to bring together the
functionality of *XQLength* and *XPending* (i.e. they have been
rewritten to use the new routine) and to add the ability to
do a “non-flushing *XPending*.”  New clients
should use *XEventsQueued* instead of the old routines.

### new XCreatePixmapFromBitmapData routine in Xlib

A new routine, *XCreatePixmapFromBitmapData*, has been added to create
pixmaps of arbitrary depths given *bitmap(1)* format data.  This should be
used to create tiles (for backgrounds and borders) rather than
*XCreateBitmapFromData* (which creates masks for defining clipping
regions, cursor shapes, icon shapes, and stipple patterns).

### misdeclared types fixed in Xlib

A number of width, height, and byte count arguments that should have been
declared unsigned, but were not, have been fixed.

### new XUnionRectWithRegion to Xlib

A new routine, *XUnionRectWithRegion*, has been added to merge a rectangle
with a region.  This is useful for implementing exposure compression.

### XPutImage, XPutPixel and XGetPixel fixed in Xlib

The Xlib routines *XPutImage*, *XPutPixel* and *XGetPixel*
have had many bugs fixed.

### new X10 to X11 protocol translator

A client that masquerades as an X10 server but which uses X11 for input
and output is now available.  It allows
X10 programs to run, unmodified, on X11 displays and should make changing
over from X10 to X11 much easier.

### reimplementations of old clients

The *xrdb* and *xmodmap* clients have been rewritten to provide
a substantial number of new features.  The new *xrdb* can use the
C preprocessor to selectively load resources, merge in new
resources, and edit current defaults into resource files.  The new
*xmodmap* reads description files that allow you to remap keys on the
keyboard as well as redefine modifier keys.  Both programs support the syntax
of the versions in the previous release (except for the new -display
requirements).

### new clients

Two new programs, *xlogo* and *xbiff*, have been added to the
supported distribution.  These programs use the Logo and Mailbox widgets
from the Athena widget set:  *xlogo* displays the X Window System logo, and
*xbiff* provides a little mailbox that pops up when you have mail.

### old X Toolkit removed

All of the clients that used the old versions of the X Toolkit now use the
version available in this release.  Therefore, libXtk and liboldXtk have been
dropped from this release.

### new InterViews toolkit

Source code and documentation for a
new version of the InterViews toolkit from Stanford University are available
in the user-contributed distribution.

### Andrew Toolkit

Source code and documentation for the Andrew Toolkit, developed by IBM and
Carnegie-Mellon University are available in the user-contributed distribution.

### Xrlib

Source code and documentation for an X11 version of the Hewlett-Packard
Xrlib toolkit are available in the user-contributed distribution.

### CLUE

The Common Lisp User Interface Environment draft specification is available
in the user-contributed distribution.

### Cray patches

A collection of patches to make the version of Xlib distributed in the previous
release work on a CRAY-XMP or CRAY-2 under UNICOS is available in the
user-contributed distribution.  Support for these platforms will be integrated
in the next release.

### MetaFont GF to X BDF converter

A filter for generating X BDF font files from MetaFont GF descriptions is
available in the user-contributed distribution.

### new gnuplot

A new version of the gnuplot package is available in the user-contributed
distribution.

### Kanji xterm

A version of *xterm* that supports kanji is available in the
user-contributed distribution.  A public domain Kanji font has also been
added to *fonts/bdf/*.

### XMenu no longer supported

The XMenu package is obsolete and will no longer be supported.  It has been
moved to the user-contributed distribution and will be dropped from future
releases.

### Portable Bitmap Toolkit

A “Portable Bitmap Toolkit” for converting bitmaps to and from various
formats is available in the user-contributed distribution.

### TeXX

A dvi file previewer for examining *TeX* output is available in the
user-contributed distribution.

### xcalendar

A sample X Toolkit application for maintaining a desktop calendar is available
in the user-contributed distribution.

### xman

A rewrite of the X10 *xman* program to the X Toolkit is available in the
user-contributed distribution.

### xmore

A rewrite of the X10 *xmore* program to the X Toolkit is available in the
user-contributed distribution.

### xperfmon

A system parameter monitor for operating systems derived from 4.2bsd is
available in the user-contributed distribution.

### xshell

A port of the X10 *xshell* program is available in the user-contributed
distribution.


<div style="font-size: small; border-top: 1px solid black;">
<p>
Copyright &copy; <span itemprop="copyrightYear">1988</span> by the
<span itemprop="copyrightHolder"
 itemscope itemtype="http://www.schema.org/Organization">
<span itemprop="name">Massachusetts Institute of Technology</span>
</span>.
</p><p>
Permission to use, copy, modify, and distribute this
software and its documentation for any purpose and without
fee is hereby granted, provided that the above copyright
notice appear in all copies and that both that copyright
notice and this permission notice appear in supporting
documentation, and that the name of M.I.T. not be used in
advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
M.I.T. makes no representations about the suitability of
this software for any purpose.  It is provided "as is"
without express or implied warranty.
</p>
<p>
Ultrix and Ultrix-32 are trademarks of Digital Equipment Corporation;
SunOS is a trademark of Sun Microsystems, Inc.; HP-UX is a trademark of
Hewlett-Packard, Domain is a trademark of Apollo Computer, PostScript is a
trademark of Adobe Systems Inc., and Unix is a trademark of AT&T Bell
Laboratories.
</p>
</div>
</div>