G.5 Finding Out for Yourself
X is unusual in that the source code is freely copyable by anyone as long as the copyright notices are observed. It should be possible for most X programmers to get a copy of the X source code from the sources listed above. Once you understand how the code is organized, you can look up certain details about how X works as long as you have a good knowledge of C and a little persistence. In “Star Wars,” the saying was “Use the Force, Luke.” In X, it is “Use the Source, Luke.”
Xlib and the server are two distinct chunks of code. Each contains code for sending and receiving information to and from the other over the network using protocol requests, replies, events, and errors. The source tree as supplied on the X distribution tape places the Xlib source in the directory base/lib/X, where base is the top of the entire source tree. Their server source is placed in base/server.
The procedure for finding out something about an Xlib routine is
normally to search for the routine in the Xlib code and then figure out
what it does. Sometimes the answer can be found there. Many of the
routines, however, simply place their arguments in a protocol request
and send it to the server. Then you will have to look in the server code
for the answer. To find the correct place in the server code, you will
need the symbol for the protocol request, which is the first argument in
the GetReq call.
The server code is much more involved than Xlib itself. The device-dependent portions ...