= Useful Links

This is a conglomeration of links to various references materials that
may be useful.


== X References

A lot of bits of X documentation are commonly referenced.

* https://www.x.org/releases/current/doc/ is the current version of
X.org's documentation.  This includes many things that are very commonly
called for, like the
https://www.x.org/releases/current/doc/libX11/libX11/libX11.html[Xlib
manual] and the
https://www.x.org/releases/current/doc/xorg-docs/icccm/icccm.html[ICCCM
description].

* https://www.freedesktop.org/ also hosts a number of things related to
current X.  In particular, the
https://specifications.freedesktop.org/wm-spec/wm-spec-latest.html[EWMH
specification].

There are also various other bits of X discussion that can be useful.

* https://www.x.org/wiki/guide/[The X New Developer's Guide] talks a lot
about how the pieces of X are put together.

* http://blog.mecheye.net/[Jasper St. Pierre] has talked a lot about X in
his blog, most particularly in the original
http://blog.mecheye.net/2012/06/the-linux-graphics-stack/[The Linux
Graphics Stack] post, and later in the full
http://magcius.github.io/xplain/article/[Xplain] guide.


== Programming Language Refs

If you're messing with the source, you better know C already.  But there
are always corner cases.

* http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf is a draft of
the C99 standard with all the current amendments and corrections; ctwm
defines C99 as the standard we're writing to.

* http://pubs.opengroup.org/onlinepubs/009695399/ is "`Issue 6`" of
POSIX.1-2004 or IEEE 1003.1 or SUS or whatever you want to call it.  This
is generally the minimum system conformance level we expect.

** http://pubs.opengroup.org/onlinepubs/9699919799/ is "`Issue 7`",
POSIX.1-2008.  This is a little newer (though still almost a decade old
as of this writing), and may tell a little more in some cases.  Things
this requires but the -2004 above doesn't may be useful, but should be
approached with a little more caution.
