This manual is for ttn-do 398,
2012-01-11.
Copyright 2012 Thien-Thi Nguyen.
audio-cd-control 1.1 Usage: audio-cd-control [COMMAND] If COMMAND is omitted, it defaults to ‘q’. The recognized commands are: ‘q’ (query) displays track count and times for the CD. ‘p’ (pause) pauses a currently playing CD. ‘r’ (resume) resumes a currently paused CD. ‘s’ (stop) stops the CD player. ‘m’ (monitor) shows current track and time, every second. ‘e’ (eject) ejects the CD from the player. N (a number 1, 2, ...) starts playing track N.
as-xhtml 1.0
Usage: as-xhtml [options] INFILE
Expand and evaluate INFILE. Write resulting XHTML to stdout.
Options:
-I, --include DIR -- add DIR to end of search path
(can be specified multiply)
-o, --output FILE -- write output to FILE
-p, --pretty-print -- pretty-print expansion to stderr
The search path for ‘(#:include "FILENAME")’ directives
is initialized to the directory of INFILE.
bit-field-diagram 2.1
Usage: bit-field-diagram [--file FILE | BITSPEC]
Display a bit field diagram representing BITSPEC. Option `--file'
means read the bitspec from FILE. A BITSPEC is a Scheme list of
the form:
(CONFIGURATION* [FIELD-SPEC...])
CONFIGURATION is an optionally-omitted list with car #:config
followed by CONFIG-SPEC forms, described below. FIELD-SPEC is a
list (NAME WIDTH [BITS]), where NAME is a symbol or string, WIDTH
an integer, and BITS an optional string to populate the diagram.
Each character in BITS is displayed (left to right) in its
corresponding field position.
For example:
$ ttn-do bit-field-diagram "((hello 5) (there 10))"
hello there
+---------+-------------------+
| | | | | | | | | | | | | | | |
+---------+-------------------+
Specifying CONFIG-SPEC forms, each a keyword/value pair, changes
the appearance of the output. Currently supported:
#:columns-per-bit 2 this includes a bar "|"
#:suppress-sep-bars #f omit internal "|"
#:field-name-justify #:left can also be #:right
#:field-name-placement #:over can also be #:internal or #:under
#:height 1 lines for the body of the field
#:group #f number of bits in a group, or #f
#:merge-group-borders? #f merge internal borders
When #:merge-group-borders? is set, #:field-name-placement must be
#:internal, otherwise an error is signalled. A #:field-name-placement
of #:internal automatically sets #:suppress-sep-bars. You must set
#:suppress-sep-bars when specifying field BITS. When #:group is
specified, an error is signalled if the fields do not align to it.
Here is a more complicated example. This form is placed in a file:
((#:config (#:columns-per-bit . 3)
(#:field-name-justify . #:right)
(#:field-name-placement . #:internal)
(#:height . 3)
(#:group . 16)
(#:merge-group-borders? . #t))
(hello 6)
(there 10)
(how 2)
(are 3)
(you 8)
(doing 3)
("well i hope?" 11))
The result is:
+-----------------+-----------------------------+
| hello| there|
| | |
| | |
+-----+--------+--+--------------------+--------+
| how| are| you| doing|
| | | | |
| | | | |
+-----+--------+-----------------+-----+--------+
| well i hope?|
| |
| |
+--------------------------------+
TODO: Support #:group-justify, #:border-style, #:bit-numbering,
#:endian, per-group #:prefix and #:suffix, etc. etc.
Format a bit-field diagram to out, normally a port. As a special case, if out is
#f, construct and return a new string. port/spec is either a port where a specification can beread, or a specification (structured expression) itself.
browse-grumi 1.2 Usage: browse-grumi [-nw] Kick off "ttn-do grumi" on localhost:8001, and start w3m on it. After w3m exits, kill the grumi and clean up. If DISPLAY is set, do everything in a new rxvt session. Otherwise, or if given optional arg "-nw", use the current session. Normally, the grumi's pidfile is written in browse-grumi.d/ (under cwd). Env var TMPDIR, if set, overrides cwd.
bump-version 2.0 Usage: bump-version [--more MORE] [EXPLICIT | --auto] normal operation ---------------- In configure.ac (or configure.in), set second ‘AC_INIT’ arg to VERSION, computed as EXPLICIT if specified, otherwise the value "1+ the current one" (increment the last numerical component) if given option ‘--auto’ (short form: ‘-a’). Next, use "git config" ‘user.name’ and ‘user.email’ values and the first byte of .last-release to update top-level ChangeLog w/ the (properly-formatted) entry: YYYY-MM-DD USER-NAME <USER-EMAIL> Release: VERSION (tag TAG) * configure.ac (AC_INIT): Bump version to "VERSION" for release. If TAG is identical to VERSION (no "v" prefix), omit " (tag TAG)". Next, do "git commit -a" w/ the commit message comprising the (properly-formatted) last two lines of the above ChangeLog entry. NB: This may pull in other changes. If other changes are to be documented, MORE names a file whose contents are appended (properly-formatted) to the ChangeLog and commit message entries. Short form for ‘--more’ is ‘-m’. Files named "ChangeLog" in subdirectories are similarly modified, except that the "* configure.ac" and subsequent lines are omitted, and only if the latest entry is NOT a "Release:" entry. Lastly, do "git tag TAG" w/ annotation "YYYY-MM-DD HH:MM:SS" followed by the second and subsequent lines of .last-release; and update the first line of .last-release to be TAG. operation when using git-version-gen ------------------------------------ If configure.ac (or .in) uses git-version-gen (from gnulib), the operation is like the normal operation, described above, except that configure.ac (or .in) is not modified, and the (change-)log entries subsequently do not include that notice.
burn-iso 1.5 Usage: burn-iso [options] ISO Options: -d, --device DEVICE -- use DEVICE (default: "/dev/hdc") -s, --speed N -- quickness multiplier DEVICE is a device filename (default: "/dev/hdc"). Look at "wodim --devices" output if unsure. SPEED is a number 4 and up (48 seems to work ok). Omitting SPEED normally means "as fast as possible". This program uses wodim(1) to do the actual work.
check-topodefs 1.1
Usage: check-topodefs [options] FILE...
Scan each FILE for definitions and check that "usages" of those
definitions (i.e., simple references to the name of the definition)
do not occur in forms prior the definition. When this is not the
case, display to stderr:
FILENAME:LINE:: (USAGE-TOP-LEVEL) LATER
where USAGE-TOP-LEVEL is the name of the form (if deducible) where
the definition of LATER is used, and FILENAME:LINE is its location.
Options are:
-I, --ignore NAME -- In addition to ‘define-module’ and
‘use-modules’, ignore NAME, as well.
-D, --defkey NAME -- Consider NAME a definition form, as well.
The list of standard definition forms are:
define define-public,
define* define*-public,
defmacro defmacro-public,
defmacro* defmacro*-public
define-macro
-v, --verbose -- Display progress and scan information.
This includes filename, definition names,
and "distance" information.
Note that both ‘-I’ and ‘-D’ add to their respective lists; there is
presently no way to specify that an item be removed. Also, both ‘-I’
and ‘-D’ can be given multiply; their args accumulate.
circle-frisk 1.1 Usage: circle-frisk [--root] [FILE ...] Show frisk results in a window. Each line is an edge. Internal modules are on the inner circle, and external the outer. Optional arg ‘--root’ means use the root window. Modules move about; info on currently active module is sent to stdout.
concordance 1.1 Usage: concordance [options] MBOX... Display concordance of MBOX ..., each a Unix-mbox format file. Options: -q, --quiet -- don't report progress -x, --exclude WORDS -- ignore WORDS, a comma-separated list of words -i, --case-insensitive -- downcase words on read -m, --minimum N -- ignore words with length < N (default 1) -M, --maximum N -- ignore words with length > N (default 59) Only the mail message bodies are scanned.
cron-walk 2.6
Usage: cron-walk [OPTIONS] WHEN [DIR...]
Options (detailed description below):
--debug -- enable some more output than usual
-l, --load FILE -- load FILE prior to starting
-c, --config FILE -- set options and DIRs from FILE
Find executable .cron files under DIR(s), skipping all symlinks, and
load them DFS-style (parent dir last) w/ single arg WHEN, first changing
to that directory. Output is collected and mailed out only on failure.
Loading is done into a child process, with the ‘command-line’ proc
rewritten. At least one DIR must be specified (but see "-c" below).
Command-line option "--load FILE" (or "-l FILE" for short) loads FILE
prior to doing the walk. This option can be given multiple times.
Command-line option "--config FILE" (or "-c FILE" for short) means to
read FILE to set options and directories. The configuration file is
series of forms, the first of which is an alist supporting keys:
* templates (required)
The value is a sub-alist with keys ‘lock’ and ‘log’. The
associated value is a string, with exactly one "~A" in it which
will be substituted with WHEN, which specifies a filename for
the lockfile and the logfile, respectively.
* debug (optional)
If specified and the value is non-‘#f’, equivalent to
specifying --debug on the command line.
* load (optional)
The value is a list of files to be loaded, equivalent to
specifying --load FILE1 --load FILE2... on the command line.
The rest of the configuration file are a series of flat lists of the
form: (WHEN DIR...), where WHEN is a symbol and each DIR a string.
Dependencies: Env var "DEBUG_CRON_WALK" set causes output logs to be mailed
regardless of .cron return value. This can also be enabled w/ command-line
option "--debug". Env vars "MAILTO", "USER" and "LOGNAME" are consulted in
that order to determine the mail recipient.
Env var CRON_WALK_CONFIGURATION with value FILE is the same as specifying
--config FILE. However, the command-line option takes precedence.
(Actually, this is a special-form, not a procedure.)
Examine
(command-line)and invoke one of the handlers.handlers is one or more forms:
((KEY) BODY...)key is one or more symbols. body is one or more forms, to be evaluated in order if
(cadr (command-line))matches key.If
(command-line)does not return a list of exactly two elements, display a usage message and throw an error. If no matching key is found, exit successfully, otherwise, exit with the value of the last body form evaluated. For example:#!/usr/local/bin/guile -s !# (use-modules ((ttn-do cron-walk) #:select (cron!))) (cron! ((hourly) (display "yawn, stretch") (newline)) ((daily) (display "zonk") (newline)))
#!/bin/sh
if [ x$1 = x-f ] ; then
rm -f config.cache
set -- -r
fi
if [ x$1 = x-r ] ; then
./config.status --recheck && ./config.status
else
./config.status "$@"
fi
#!/bin/sh cvs update "$@" 2>&1 | sed '/^?/d;/^cvs update:/d'
debian-package-downstream 1.3 Usage: debian-package-downstream [[--recurse] PKG ...] Find the downstream packages for each installed package (as determined by "dpkg --get-selections" whose last token on the line is "install"), that are themselves installed, and display a summary line: * installed downstream count The number of packages downstream from this one that are actually installed on the system. * total downstream count The total number of packages downstream from this one, including those that may not actually be installed on the system. * package name A single symbol. * installed downstream List of symbols: (PKG1 PKG2 ...), possibly empty: (). Strictly speaking, the first field is redundant due to this one, but we include both anyway since it makes for easier reading by humans. If PKG is specified, only do analysis for those PKGs named (still against the entire list of installed packages, however). When PKG is specified, option ‘--recurse’ (or ‘-r’ for short) recurses into the downstreams of each PKG specified.
demo 2.1 Usage: demo [NAME...] Consult ~/.demos for a list of demos, and run each demo named. If more than one NAME is specified, display "running demo: NAME" prior to running the demo. If NAME is omitted, simply list the available demos. The ~/.demos file contains normal Scheme code, interspersed w/ expressions of the form: (defdemo NAME (child FILENAME [ARGS...])) The ‘defdemo’ form registers a thunk under NAME in the demo list. The ‘child’ procedure returns a thunk suitable for running demo FILENAME w/ ARGS, after first changing to FILENAME's directory.
display-state-summary 1.1
Usage: display-state-summary [DIR]
For each file under and in directory DIR ("." if unspecified),
display a one-line summary of the form:
STATE MTIME FILENAME
where STATE is a version control state, typically "Rel" or "Exp";
MTIME is formatted using "%F %T" (eg, "2007-09-01 03:27:14"); and
FILENAME is the relative filename from DIR.
At this time, there is support for RCS and CVS, detected by the
presence of subdir RCS or CVS in DIR. If no such subdir exists,
display an error message and exit failurefully.
display-wurld 1.3 Usage: display-wurld [URL-LIST] Display an HTML "wurld" to stdout. Optional arg URL-LIST names a file containing one URL per line, in which case display-wurld decorates the "denser" areas of the output with randomly chosen links. If URL-LIST is "-" the list of links is taken from stdin.
Keywords: size, gen, linksReturn an html-data tree made from an ASCII-representation of a globe image. Keyword parameters, default values, and their meanings:
#:size 150 Size in pixels (NxN) of the originating image.
#:gen #:ppmforge Preferred backend program used to generate the image, one of #:xearth,#:xplanetor#:ppmforge. The value can also be a symbol.
#:links #f A list of URLs (strings), or a single filename. When specified, the single string return value is profiled for small non-whitespace intervals to be “marked up” as the text of an XHTML aelement, with the reference (attributehref) taken randomly from links. If links is a filename, that file should contain one URL per line.
edit-script-header 2.0
Usage: edit-script-header [OPTIONS] FILE ...
Grok and modify each FILE's header (hash-bang invocation sequence)
according to OPTIONS:
-o, --output OTHER -- write to file OTHER instead of modifying FILE
-g, --guile [GUILE] -- use GUILE as the interpreter
-G, --GUILE-guile -- use ${GUILE-guile} construct, implies -e
-n, --no-act -- do not do the edit, display parse results only
-v, --verbose -- display progress reports
-b, --backup EXT -- rename output file to fooEXT before writing
-s, --style STYLE -- convert output to use header STYLE (see below)
-i, --installed -- use installed guile as the interpreter
By default, the name of the interpreter is constructed by combining
bindir (use "guile-tools guile-config info bindir" to see this value)
with the name "guile", for example: "/usr/local/bin/guile". This name
is placed directly after the hash-bang "#!" on the first line followed
by a space and then the meta switch "\". The second line has the rest
of the args, terminating with "-s" and a newline. The third line has
a bang-hash "!#" only. This is the ‘direct-with-meta-switch’ style.
Simple edits (like changing the guile interpreter from /usr/bin/guile
to /usr/local/bin/guile, for example) are no problem. Converting
between styles is somewhat more tricky. Here is a list of the styles
that are recognized and supported (for -s option):
* old-style-sh-wrapper
This is primarily for executable modules, and looks something like:
#!/bin/sh
main='(module-ref (resolve-module '\''MODULE-NAME) '\'main')'
exec ${GUILE-guile} -l $0 -c "(apply $main (cdr (command-line)))" "$@"
!#
We call it "old" because there are now better ways to invoke ‘main’
(see ‘modern-sh-wrapper’). Converting scripts from and to this style
requires accompanying changes to the script's invocation convention
that ‘edit-script-header’ does not handle.
* modern-sh-wrapper
This style looks something like:
#!/bin/sh
exec ${GUILE-guile} -e ENTRY-POINT -s $0 "$@"
!#
The distinguishing characteristic is ‘exec’ and ‘-s $0 "$@"’. The
‘-e ENTRY-POINT’ is optional. This style is fully convertable to
and from the ‘direct-with-meta-switch’ style.
* direct-with-meta-switch
This style looks something like:
#!/usr/local/bin/guile \
-e ENTRY-POINT -s
!#
The distinguishing characteristic is the guile interpreter named in
the first line as well as the meta switch. The ‘-e ENTRY-POINT’ is
optional. This style is fully convertable to and from the
‘modern-sh-wrapper’ style.
* direct-with-minus-s
This style looks something like:
#!/usr/local/bin/guile -s
!#
The distinguishing characteristic is the guile interpreter named
in the first line as well as the ‘-s’ switch. This style can be
converted to and from the other ones with some restrictions.
format-atom-feed 2.0
Usage: format-atom-feed [-e ENCODING] [SEXP]
Format SEXP into "Atom feed" XML, and write the result to stdout.
If SEXP is unspecified or "-", read it from stdin.
SEXP should have (this is not validated) the format:
(feed
(@ (xmlns "http://www.w3.org/2005/Atom"))
(id ID-SPEC)
(link (@ (rel "self") (href ID-SPEC)))
(updated UPDATED-SPEC)
(title "Example feed")
(author (name "J. R. Hacker") ...)
(entry (title "Atom-Powered Robots Run Amok")
(link (@ (rel REL) (href URL)))
(id ID-SPEC)
(updated UPDATED-SPEC)
(summary "Scheming bots everywhere!"))
...)
Alternatively, each ‘entry’ can have an ‘author’, in which case
the top-level ‘feed’ need not include ‘author’.
UPDATED-SPEC can be an integer, the number of seconds since epoch,
as returned by procedure ‘current-time’; or ‘#t’, in which case
the value of calling ‘current-time’ is used. The formatted time
is always UTC.
REL is typically "alternate".
ID-SPEC is a string, the "unique id" for the #:feed or #:entry,
respectively. This can be a URL.
Option ‘--encoding’ (or ‘-e’) specifies ENCODING for the first line:
<?xml version="1.0" encoding="ENCODING"?>
If unspecified, the default is "utf-8".
Notes:
You can check the output using: <http://feedvalidator.org>.
Info about Atom (spec, etc) at: <http://feedvalidator.org/docs/>.
Send to port using encoding enc the sexp in Atom format1. If port is
#f, return a string, instead. Normally, the output omits inter-element whitespace. Optional args newline-before is a list of elements (symbols) prior to which a newline ‘\n’ should be output. Valid elements (which are all of them Atom elements) are:author generator rights category icon source content id subtitle contributor link summary email logo title entry name updated feed published uri
format-css 1.0 Usage: format-css [-v | --verbose] [FILE.sexp ...] Format contents of each FILE.sexp, writing FILE.css. Contents are zero or more CSS rules, each a list suitable for ‘(ttn-do zzz publishing) css-tree’ expansion. If no files are specified, process all ‘*.sexp’ in cwd.
fortune 1.0
Usage: fortune -l (like "ls -l -I '*.dat' <standard-cookie-dir>")
fortune
fortune literature [or other filename in standard cookie dir]
fortune ABSOLUTE-FILENAME [.dat assumed in same dir]
Display fortune cookie to stdout. Option ‘--list’ (or ‘-l’ for short)
means instead to list the contents of the <standard-cookie-dir>, which
is either "$HOME/local/share/games/fortunes" or the contents of file
$HOME/.fortune-cookie-dir if the first directory is not found. If the
cookie dir cannot be determined, signal error.
Create index file out-name from cookie file in-name, separating cookies by looking for char delim on a line by itself. Optional flags are keywords:
#:random- Set bit 0 (corresponding to a mask of #x1) in the flags word in the header, but do nothing else at the moment (FIXME).
#:ordered- Set bit 1 (corresponding to a mask of #x2) in the flags word in the header, and order the offsets by sorting the cookies with
string<?, ignoring non-alphanumeric leading characters.#:rotated- Set bit 2 (corresponding to a mask of #x4) in the flags word in the header, to note that the cookies are ROT13.
Return #t on success.
Return a randomly-chosen string extracted from cookie-file, using the index file named by appending .dat to cookie-file. Optional arg dat-file specifies the index file to use instead of the default.
function-tree 1.1 Usage: function-tree filename [--root] Display two of the top-level forms in FILENAME as trees. Optional arg ‘--root’ means display on the root window instead of in a new one.
generate-C-symbol-set 1.1
Usage: generate-C-symbol-set [options] SYMBOL...
Options are:
-p, --pool-name NAME -- use NAME instead of ‘symbolpool’
-b, --byte-type TYPE -- use TYPE instead of ‘uint8_t’
-g, --global -- omit "static"
-z, --zero -- produce NUL-terminated entries
Write to stdout a C data structure representing a symbol pool
with symbols SYMBOL... For example:
$ generate-C-symbol-set \
Author Date Id
static const uint8_t symbolpool[16] =
{
3 /* count */,
6,'A','u','t','h','o','r',
4,'D','a','t','e',
2,'I','d'
};
A more complicated example, using all the switches:
$ generate-C-symbol-set -b BYTE -p keywords -g -z \
Author Date Id
const BYTE keywords[19] =
{
3 /* count */,
6,'A','u','t','h','o','r','\0',
4,'D','a','t','e','\0',
2,'I','d','\0'
};
Note that with ‘--zero’, the pool (sub)strings are C-compatible.
Return a string tree representing the C code for the symbol set ls (a list of strings), customized by
configuration(an alist). Recognizedconfigurationkeys (symbols) are:zero,global,byte-typeandpool-name. Values are boolean forzeroandglobal, and string for the others.You can use
flatten(see zzz publishing), to render this tree. (This is what the shell command does.)
gnuvola-wip (ttn-do) 1.6
Usage: gnuvola-wip [help | version | check | copy | uncopy] [OVERRIDE-VARS]
If invoked w/o args, default to command "check". Note that this program
does not support `--help' or `--version'; use hyphenless variants, instead.
help -- Display this message and exit successfully.
version -- Display version and exit successfully.
check -- Test for subdir .git; exit failurefully if not found.
copy -- Create $(pubrepo) if necessary (with $(git) clone),
then push the repo there using $(git) prune, gc, push.
Lastly, copy the description file.
uncopy -- Delete $(pubrepo).
Some GNUmakefile vars (and their default values) influence operation:
git -- git
wip -- ~/build/gnuvola/wip
here -- $(shell pwd)
repo -- $(notdir $(here)).git
branch -- master
pubrepo -- $(wip)/$(repo)
You can override them on the command line with VAR=VALUE.
grumi 1.7
Uso: grumi [opzioni]
Elenca tutti i moduli disponibili.
-G, --guile PROG -- chiede PROG per %load-path [guile]
-p, --port NUMERO -- si connette alla porta tcp NUMERO
usando il protocollo HTTP
-d, --daemon FILE -- scrive il pid e la porta tcp in FILE e va al
fondo; per fermarlo: kill -1 `head -1 NOME`
gutenberg2mbox 2.0
Usage: gutenberg2mbox [options] GUTENBERG-FILE
Convert GUTENBERG-FILE to an mbox file, writing GUTENBERG-FILE.mbox.
Lines up to and including the one that matches a preamble-end regexp,
as well as those starting with the one that matches a postamble-begin
regexp, are discarded.
Each chapter becomes a message. The first message is the title page.
The title page is taken from the lines between the preamble and the
first line that matches a chapter-begin regexp.
The title is taken from the first non-empty line on the title page.
The subject of each message is made from the first two lines of the
chapter, in this format: LINE-1 -- LINE-2.
-v, --verbose -- display message subject lines
-o, --output FILENAME -- write output to FILENAME
--preamble-end RX -- use RX as the preamble-end regexp
[default: "^.END.THE SMALL PRINT"]
--chapter-begin RX -- use RX as the chapter-begin regexp
[default: "^Chapter "]
--subject-skip N -- skip N presumably-blank lines to find
LINE-1 and LINE-2 [default: 0]
--postamble-begin RX -- use RX as the postamble-begin regexp
The postamble-begin regexp is optional; there is no default for it.
If there is an error, the output file is not written.
gxferm 2.0
Usage: gxferm [--output FILENAME] CONFIG...
Preprocess CONFIG... to create properly formatted ferm(1) input.
Write output to standard output (or FILENAME, if specified).
CONFIG... names input files containing Scheme forms to be processed, in
order. This table maps Scheme forms to "normal ferm input expressions":
(define SYMBOL 'VALUE) def $VAR = EXPR;
;; note quote ^
,SYMBOL $VAR
(+ (A B C) A B C {
(= D E F) D E F;
(= G H I)) G H I;
}
(define-macro (SIMPLE A1 A2) def &SIMPLE (A1, A2) =
(X Y ,A1 Z ,A2)) X Y $A1 Z $A2;
,(SIMPLE P1 P2) &SIMPLE (P1, P2)
;; forms may follow, .e.g:
;; (= ,(SIMPLE (P1 P2)) DROP)
(define-macro (BLOCK A1 A2) def &BLOCK (A1, A2) = {
(+ (J K) J K {
(= W ,A1 X) W $A1 X;
(= Y ,A2 Z))) Y $A3 Z;
}
}
,(BLOCK P1 P2) &BLOCK (P1, P2);
;; must conclude a chain, .e.g:
;; (+ () ,(BLOCK P1 P2))
Unrecognized forms produce a "WARNING: UNRECOGNIZED" to stderr.
A ‘+’ or ‘=’ form may be "commented out" by one or two single quotes.
One will produce a "WARNING: IGNORING" (to stderr); two, nothing.
htmlize-scheme 1.3
Usage: htmlize-scheme [options] FILE...
Load htmlization-map files, process FILE, write FILE.html.
Options are:
-l, --load HMAP -- load htmlization map file HMAP
-d, --hmap-dir DIR -- load all *.hmap files in DIR
--css CSS -- if CSS begins with a space character,
use it literally, otherwise, take it
as a filename and use its contents
--elisp FILE -- arrange for the inferior Emacs to
do ‘(load-file FILE)’
In FILE.html, mappings specified in hmap files are substituted using
the hmap-specified stem and leaf. At least one HMAP must be loaded.
This program relies on htmlize.el, which does not always generate the
correct colors for the <style> block due to tricky (i.e., unresolved)
font-lock issues when used in batch mode. As a kludge, you can use
‘--css CSS’ to completely replace that block with the contents of file
CSS (automatically wrapped with a <style> element). As a special
case, if CSS begins with a space, it is taken to be the literal string.
The htmlization-map file contains Scheme code define a mapping between
a piece of typed ‘html anchor’ text and its url leaf. At the moment,
the only supported type is #:module-name. When TEXT is recognized,
it is replaced with: <a href="FULL">TEXT</a>, where FULL is formed by
concatenating the stem with the LEAF.
To define a mapping, use the Scheme proc ‘define-mapping’.
You can customize the default processing done by htmlize.el by
specifying ‘--elisp FILE’, which is loaded where indicated in
the Emacs Lisp sequence:
(progn
(setq vc-handled-backends nil)
(require 'htmlize)
(require 'scheme)
;;;
;;; maybe do (load-file FILE) here
;;;
(pushnew '("." . scheme-mode) auto-mode-alist :test 'equal) ; yuk
(let ((enable-local-variables nil)
(enable-local-eval nil))
(htmlize-many-files command-line-args-left)))
Keywords: stem, type, recognize, lookup, dataDefine a mapping named name, a keyword or symbol. Valid keywords are:
#:stemstring- This is the constant prefix for all targets in name.
#:typetype- type is a keyword. At this time, only
#:module-nameis supported. That is the default value (thus, at this time, this keyword is entirely optional).#:recognizerecog- (for
#:type #:module-name)
If recog is a string, use it as the regexp to recognize text. Otherwise (presuming type is#:module-name), if recog is a symbol, use it to construct a regexp that matches(RECOG ...), i.e., the module name whose first element is recog. If recog is#for left unspecified, compose the regexp from the first symbol in each of the keys specified in the#:datavalue (see below).#:lookuplookup- lookup is a procedure that takes two arguments: data (see below) and key. It should return the leaf associated with key, or
#fif not found. This is typicallyassoc-ref,assv-reforassq-ref. If recog is#f, this MUST be one of those for the constructed-regexp hack to work. key will be a the recognized textreadas a Scheme object. For example, when type is #:module-name, key is a list of symbols.#:datadata- data is passed to lookup as the first arg. When type is
#:module-name, this MUST be an alist for the constructed-regexp hack to work.The following errors may occur during operation:
- no htmlize-scheme mappings loaded
- bad part for mapping: name
imgtxtlink 1.1
Usage: imgtxtlink [options...] image
Covert IMAGE file to text and decorate it with hyperlinks.
Recognized options (defaults in square braces):
-o, --output FILENAME -- write to FILENAME [IMAGE.html]
-s, --scale SPEC -- pass SPEC to pnmscale
-i, --invert -- include pnminvert(1) in processing
--bgcolor COLOR -- page background color
--text COLOR -- page text color
-l, --links FILENAME -- look in FILENAME for urls
[single url: ttn-do homepage]
This program uses commands from Netpbm for image manipulation.
Concatentate source, a shell command that writes image data to stdout, with a series of shell commands from the Netpbm package. Optional arg invert? non-
#fmeans to include a call to pnminvert in the pipeline.Execute the pipeline in a subshell and return its output as a string.
Profile string for small non-whitespace intervals to be “marked up” as the text of an HTML
Aelement, with reference taken randomly from list-of-links (list of strings). As as special case, if the car of list-of-links is the symbolfile-lines, then the cadr is taken to be a filename which must contain one link (URL) per line.Return an html-data tree (nested list of strings). Optional third arg link-tree specifies a procedure to use instead of href (see zzz xhtml-tree) to construct hyperlink references. It should take arguments url and text (both strings), and return a tree (nested list of strings).
local-build 2.0
Usage: local-build [options] TARBALL[...] [-- configure-options...]
Do the standard build and install process for GNU programs, namely
"configure ; make ; make install". For each TARBALL (.tar.gz or .tgz),
unpack the package in the current directory and build in place.
The prefix is ‘$HOME/local’.
Options:
--make-cmd CMD -- Use CMD to build instead of simply "make".
--no-install -- Skip "make install".
--check -- Do "make check" before "make install".
--clean -- Do "make clean" after "make install".
Additional options to the configure script can be specified
by appending them after the argument "--".
Examples:
$ local-build rcs-5.7.tar.gz cvs-1.10.tar.gz
$ local-build --no-install \
--make-cmd=/home/gnutex/bin/make-and-install-gcc \
gcc-2.95.2.tar.gz \
-- --with-gnu-as
ls-tarballs 1.0 Usage: ls-tarballs [DIR] List the .tar.gz files in DIR (or "." if unspecified), grouping by STEM and summarizing version numbers. The output format is: YYYY-MM-DD STEM COUNT -- RELEASES where YYYY-MM-DD is the mtime of the latest STEM-*.tar.gz, COUNT is count of the tarballs with the same STEM, and RELEASES is a compacted comma-separated list of version numbers (the part of the filename besides STEM- and ".tar.gz"). Version numbers are normalized to a list of integers, so that "edb-1.26p1.tar.gz", for example, has internal representation ‘(1 26 1)’, and displayed with dot as separator, e.g., "1.26.1". The space between STEM and COUNT is adjusted for columnar output.
magic 1.1
Usage: magic [options] [FILE...]
Display results of scanning FILE, or "data" if type and other
attributes cannot be determined. By default definitions are
read from ~/.magic (see magic(5) for information on its format),
or, preferentially, from ~/.magic.ttn-do-magic, if it exists.
Options are:
-m, --magic-file MAGIC -- read definitions from MAGIC instead
of default ~/.magic
-C, --compile -- used in conjunction with -m MAGIC
to write out MAGIC.ttn-do-magic
The output is similar, but not identical, to that of file(1).
Presently, this program understands ~/.magic.ttn-do-magic in
either .ttn-do-magic-1 or .ttn-do-magic-2 format, and writes
in .ttn-do-magic-2 format only.
maintainer-tools-versions 1.0 Usage: maintainer-tools-versions [ADDITIONAL-PROGRAMS...] Call autoconf, automake, libtool and guile and any specified ADDITIONAL-PROGRAMS with single arg ‘--version’ and collect the first line (respectively) output. Display each line with a "# " (hash space) prefix.
make-boot-set 1.0 Usage: make-boot-set DIR Write sequence of floppies with the Debian boot set in DIR. A possible money-making scheme, in the right clueless environment.
make-pgtable 2.2
Usage: make-pgtable [OPTIONS] TABLE...
Create PostgreSQL table(s) in a database.
OPTIONS can be one or more of:
-l, --list list all db and table names and exit successfully
-L, --list-fully like ‘--list’ but also include defs
-s, --show-defs show defs for TABLE but do not create it
-d, --db NAME use db NAME [default: value of USER env var]
-x, --go-away delete table
-e, --echo display the SQL command before dispatch
The name of the meta-file required by make-pgtable can be specified
by env var ${USER}_PGTABLE_DEFS, where ${USER} is the value of env
var USER, upcased. For example:
"jrhacker" => "JRHACKER_PGTABLE_DEFS"
See docs for module (ttn-do zzz various-db) for a description of the
meta-file format.
mark-up-news-excerpt 1.0
Usage: mark-up-news-excerpt [--download-dir URL] -e excerpt-file
Process EXCERPT-FILE, which must be in a special format,
and display to stdout the XHTML tree of its "Latest release"
paragraph and NEWS outline.
The EXCERPT-FILE format is line-oriented UTF-8 text:
HEADER
* TAG TEXT
...
- VERSION | DATE
- ITEM
...
FOOTER
Both HEADER and FOOTER are ignored, although it is probably a
good idea to put a "Local variables" block in the FOOTER to make
sure the file stays UTF-8.
The "markup section" begins with an asterisk in column 0 followed
by a TAG (e.g., ‘code’), followed by the text that must be marked
up. Between TAG and TEXT must appear one or more space (U+0020)
characters. See module (ttn-do zzz xhtml-tree) for more info.
In the "Latest release" paragraph, VERSION and DATE are formatted
as "VERSION (DATE)". If ‘--download-dir URL’ (‘-d’ for short) is
given, that text is hyperlinked to URL.
In addition to the explicit markup, the ITEMs are automatically
processed to mark ‘foo’ and "bar" with ‘~code’. In the first
case, the left (U+2018) and right (U+2019) single-quotes are
placed outside the ‘~code’, while in the second case, the double
quotes (U+0022) are placed inside the ‘~code’.
Return an expression (unevaluated tree) made from marking up excerpt-file (a string). The tree includes elements to produce a "Latest release:" paragraph (including a hyperlink to download-dir, if specified) followed by the outline of news items. Evaluation of this tree requires access to XHTML procs (see zzz xhtml-tree).
mmci 1.2.0
Usage: mmci --repo DIR [options] [NEWDIR]
Abstract the "cvs add" procedure to also handle RCS files and
Emacs-style backup files. Options is zero or more of:
-r, --repo RELDIR NEWDIR/* should go into CVSROOT/RELDIR/*.
RELDIR can have multiple /-separated components.
This argument is required.
-n, --dry-run Display commands mmci would do,
but don't actually do them.
-v, --verbose Display commands as they are executed.
By default, mmci works quietly.
-d, --cvsroot DIR Use DIR as CVSROOT. If this is omitted, env
var CVSROOT must be set. The CVSROOT must
point to a local dir (no ":" methods).
-x, --exclude RX Ignore files that match regular expression RX.
Matching is done on the non-directory part of the
filename. This option may be given multiple times.
-H, --symlinks-ok Do not ignore symlinks.
NEWDIR names a single relative directory of the current working
directory to be (recursively) processed. If omitted, default is "."
(i.e., the current working directory). Files already in CVS (as
evidenced by their name appearing in CVS/Entries) are ignored, as are
most files cvs normally ignores. A notable exception is Emacs-style
backup files (foo, foo~, and foo.~N~), which are checked in with
successive revisions based on the files' mtimes. Files under RCS
control (RCS/*,v) are copied directly. New files are checked into
RCS temporarily and processed as such.
Typically, you would use mmci like so:
mmci -n -r my-module/stuff stuff # dry run ("would-do ...")
mmci -v -r my-module/stuff stuff # do it, verbosely
mv stuff stuff.orig
cvs co -d stuff my-module/stuff # inspect for errors
rm -rf stuff.orig
Note that mmci will create directory ‘my-module/stuff’ for you.
Although mmci tries not to disturb the original working directory,
for new files, the permissions may sometimes end up read-only.
It's a good idea to take a snapshot of the directory first.
Builtin Exclusions
------------------
Here is the list of all the built-in regexps. They were snarfed
from CVS info page and converted to Guile's regexp syntax, with
these removed removed: "*~", "core", "RCS" and "CVS"; and these
added: "*.lo" and ".deps".
^SCCS$
^CVS.adm$
^RCSLOG$
^tags$
^TAGS$
^\.deps$
^\.nse_depinfo$
^\.make\.state$
.*\.old$
.*\.bak$
.*\.BAK$
.*\.orig$
.*\.rej$
.*\.a$
.*\.olb$
.*\.o$
.*\.obj$
.*\.so$
.*\.exe$
.*\.Z$
.*\.elc$
.*\.ln$
^#.*
^\.#.*
^,.*
^_\$.*
^\.del-.*
^cvslog\..*
.*\$$
At this time, there is no way (aside from modifying the source code)
to reduce this list. The ‘--exclude’ option appends to it.
mogrify 1.0 Usage: mogrify Do nothing and exit successfully.
Consider buffer the current buffer and execute body. In body, applications of one of the following procs are handled specially.
(insert-file-contents filename [visit? [beg [end [replace?]]]]) (toggle-read-only [arg]) (search-forward string [bound [noerror [repeat]]]) (match-end [n]) (match-data) (set-match-data m) (buffer-lines) ; => (STRING ...) (buffer-substring beg end) (search-backward string [bound [noerror [repeat]]]) (match-string n) (forward-char n) (backward-char n) (forward-line [n]) (beginning-of-line [n]) (end-of-line [n]) (re-search-forward regexp [bound [noerror [repeat]]]) (match-beginning [n]) (match-end [n]) (delete-region beg end) (buffer-port) (replace-match newtext) (insert [obj...]) ; gb/char/string/symbol/number/sexp (looking-at regexp) (delete-char n) (erase-buffer) (goto-char pos) (buffer-string) (point-min) (point-max) (char-after [pos]) (char-before [pos]) (point) (bolp) ; beginning/end of line/buffer (eolp) (bobp) (eobp) (write-to-port port [beg [end]]) (flush-lines regexp) ; leaves point at eob (keep-lines regexp) ; likewise (save-buffer) ; buffer must be "visiting a file" ; else error (see `find-file' et al)These calls are all translated by
editing-bufferto procedures that take gap-buffer buffer as initial argument (so that the "first" arg above would actually be passed as the second arg, and so on).If buffer is #t, create and use a new (empty) gap-buffer. If buffer is not a gap-buffer object and not #t, it is passed to
make-gap-bufferand the result used for editing.The value is that of the last form in body, or the gap-buffer object if there are no body forms.
Return the (string) filename associated with object, or
#f. This is an object property so you canset!it; that's whatfind-fileandfind-file-read-onlydo on the buffer objects they return to effect visiting.
Return a procedure that encapsulates a new editing buffer (or buffer, if specified). The returned proc takes a (symbolic) command and arguments (if any), dispatching internally. For example:
(define MGR (editing-buffer-manager)) (MGR 'insert "foo") (MGR 'write-to-port #t) === (editing-buffer "foo" (write-to-port #t))In addition to the commands supported by
editing-buffer, there are some special commands:
- mgr
- Return the internal editing buffer. Here, mgr is the manager procedure itself (i.e.,
(mgr mgr)).#f- Forget the internal editing buffer (possibly exposing it to garbage collection). Subsequent invocations will signal a "no more buffer" error.
#t- Return the internal editing buffer, forgetting it, as well. Subsequent invocations will signal a "no more buffer" error.
Find filename into a buffer and make it read-only. This causes the buffer to visit the file. Move point to beginning of buffer and return the buffer.
Find filename into a buffer. This causes the buffer to visit the file. If the file is not readable, return #f. If the file is read-only, make the buffer read-only as well. Move point to beginning of buffer and return the buffer.
mq 1.1
Usage: mq [options] [FILENAME]
Display an empty "floorplan" (X window) on which you can draw
and erase "furniture". The scale is one pixel per centimeter,
with minimum size 10cm x 10cm.
Options are [default value in square braces]:
-g, --geometry WxH -- Make the top-level window W by H pixels.
[800x600]
--bpp N -- Use N bits per pixel; N = 8, 16, 24, 32.
[32] Note that alpha blending is ugly
for bpp 16, and non-existent for bpp 8.
To draw, press and hold down the ‘c’ key, move the mouse to the
opposite corner of the rectangle, and release the key. Other keys:
q -- query size (also works with in-between space)
s -- shift (move) -- hold down (like ‘c’)
r -- resize -- hold down (like ‘c’) "near" a corner
x -- erase
ESC -- quit
If FILENAME is specified, read previously-saved data from there
(ignoring --geometry), and save current data there on quit.
new-cvsroot 1.1 Usage: new-cvsroot NEW-ROOT Replace contents of all CVS/Root files under cwd w/ NEW-ROOT.
pg2edb 0.1 NOTE: This program is still EXPERIMENTAL. Usage: pg2edb [options] TABLE Analyze PostgreSQL table TABLE; display inferred defs to stdout; dump combined schema/data to stdout in EDB "inherent data" format. -d, --database NAME -- connect to db name (default: user name) -o, --output FILE -- write "inherent data" format to FILE -E, --encoding ENC -- use client encoding ENC (default: "UNICODE")
phone 2.0 Usage: phone REGEXP Grep for REGEXP in ~/.phone database.
pp 1.1
Usage: pp [options] FILE...
Pretty print contents of FILE... to stdout.
The contents are read as "normal" Scheme sexps.
Options:
-p, --preserve-comments -- output top-level whitespace and
comments (including a script's
initial #!...!# header) undisturbed
-s, --sed SCRIPT -- do "sed SCRIPT FILE" for input
-k, --keyword-hack -- do ‘s/#:/:#/g’ for input and
‘s/:#/#:/g’ for output (yuk!)
Pretty-print sexp to the current output port, or port if specified. If the underlying Guile supports it, all strings in the output have certain characeters escaped, e.g., with ‘#\newline’ represented as ‘\n’ (two chars:
#\\and#\n).
ppmglobe 1.0
Usage: ppmglobe [options]
Write to stdout ppm image data representing a random globe.
Options [defaults] are:
-g, --generator PROGRAM -- use PROGRAM (xearth, xplanet, or
ppmforge) to generate the image
[ppmforge]
-s, --size N -- image is roughly NxN pixels [360]
If PROGRAM is not available, write to stderr the message
"program unavailable: PROGRAM" and exit failurefully.
primes 1.0 Usage: primes LIMIT Display prime numbers in the range [2,LIMIT], one per line. If LIMIT is less than two or not a number, do nothing.
#!/bin/sh exec make --no-print-directory "$@"
random-info-node 1.3 Usage: random-info-node [--list] [--sexp] INFO Display a random info node from INFO file to stdout. Optional arg "--list" (or "-l") means to instead display a list of nodes. Optional arg "--sexp" (or "-s") means to display the list as a sexp. If INFO ends with ".gz" it is read using "gzip -dc".
randomish-wep-key 1.2 Usage: randomish-wep-key [--count N] BITLEN Display to stdout a somewhat randomly-produced WEP key of BITLEN bits. The output is in hexadecimal, so it's a good idea to choose a BITLEN that is a multiple of four. Also, there is a "-" separating every group of four hex digits, like so: abcd-1234-99... Optional arg --count N specifies how many to keys (one per line) to write. A negative N means to continue until interrupted.
rcs-fast-export 0.2
rcs-fast-export [OPTIONS] [FILE...]
Write "fast import" format data from RCS repositories to stdout.
FILE should be either the repository filename (typically foo,v),
or the working file name, or a directory name, in which case its
{RCS/}*,v (if any) are scanned, without descending into subdirs.
If no FILE is specified, scan "." (the current directory).
Options:
-A, --authors FILE -- Read FILE for author information.
-p, --prefix RELDIR -- Prefix each filename with RELDIR.
Each line in the authors file has the form:
USERNAME=FULL-INFO
where USERNAME should correspond to the Unix username, and
FULL-INFO should include actual name and email address, such
as "J. R. Hacker <jrh@example.com>", but without the quotes.
See git-cvsimport(1) for more info.
Normally, to compute the relative filename of the exported
repository, rcs-fast-export strips the common root directory of
all the working filenames (both specified and discovered).
The option --prefix RELDIR adds RELDIR to the beginning of
each exported filename. For example, given the two filenames:
/etc/foo/bar/RCS/f1,v
/etc/foo/f2 (presuming /etc/foo/RCS/f2,v exists)
then the working files are /etc/foo/bar/f1, /etc/foo/f2;
the common root is /etc/foo; and the exported filenames
are (normally, with "-p baz/qux", e.g.):
bar/f1, f2
baz/qux/bar/f1, baz/qux/f2
RELDIR must not be absolute.
Limitations:
- No tags (symbolic names) handling.
- State changes may show up as empty commits.
- The branch created is "from-rcs-BRNUM", where BRNUM is the
part of the RCS revision prior to the last integer, with
"." replaced by "-". For example, for revision "1.3.5.7",
the BRNUM will be "1-3-5".
Furthermore, branch detection is not file-specific. This
means that foo:1.3.5.7 and bar:1.3.5.7 will eventually map
to the same branch (BRNUM "1-3-5").
- Incomplete error checking, recovery, diagnostics, testing.
In other words, code enhancement opportunities abound!
read-xpilot-robots 1.1
Usage: read-xpilot-robots FILE
Read xpilot robots file FILE into a list, each element of which
having the form:
(NAME TYPE SHIP PARA)
where NAME and TYPE are strings, SHIP is a list of sublists of
integers, and PARA is a list of integers. When invoked from the
shell, display each form to stdout, one per line.
Read input in xpilot robots file format from port. Return a list of sexps.
refresh-hardlinks 1.2 Usage: refresh-hardlinks [--quiet] DESTDIR Find files in DESTDIR matching regexp "[A-Z][A-Za-z0-9]*" and refresh them by replacing them with hardlinks to same-named files in the current working directory. If cwd file is a symlink, chase it to find a non-symlink file. Additionally for every FILE found, if there exists FILE.txt, refresh that as well. Files in DESTDIR that do not exist in the cwd are silently left alone. Option ‘--quiet’ (‘-q’ for short) suppresses output.
report-zonkables 1.3
Usage: report-zonkables [options] [ZONKABLES-TEXT-DB-TABLE-FILE]
Read text db table file ZONKABLES-TEXT-DB-TABLE-FILE and display to
stdout status of the entries listed therein. Consult file NEWS in
the current directory to map release number to calendar date (rn2cd).
If ZONKABLES-TEXT-DB-TABLE-FILE is omitted, use ".USER.zonkables",
where USER is the result of ‘(passwd:name (getpwuid (getuid)))’.
Recognized options:
--init -- display the db header form to stdout (see below)
-n, --news FILE -- scan FILE for rn2cd mapping [NEWS]
-x, --exit-count -- exit value is the count of zonkables
The NEWS file should contain lines of the form (note hyphen and bar):
- VERSION | YYYY-MM-DD
If the YYYY-MM-DD pattern is not found, the current date is used.
The ZONKABLES-TEXT-DB-TABLE-FILE must start with the following form:
(text-db-table-config
(delim . "\n")
(fields (#:announced sexp) ; version
(#:execution sexp) ; quarters (each 3 months)
(#:type sexp)
(#:name rest-lines-trim)))
You can use the ‘--init’ option to write this form to stdout instead
of the normal report. In the normal report, each entry is displayed
on its own line with the general format:
VERSION (DATE) QUARTERS (EXPIRE-DATE) -- TYPE ‘NAME’ STATUS
where STATUS is "planned", "(immediately) zonkable!", "not yet" or
"weird!". The latter occurs if report-zonkables gets confused.
VERSION is from #:announced, DATE is from the NEWS file, QUARTERS
is from #:execution, EXPIRE-DATE is computed from DATE and QUARTERS,
TYPE is from #:type, and NAME is from #:name.
Scan filename, which must name a file in zonkables text db table format, and display current zonkables analysis to the current output port.
rescue-xcb 1.2 Usage: rescue-xcb INPUT-DIR OUTPUT-DIR Read INPUT-DIR/*.xml and write OUTPUT-DIR/*.eaab. Filenames undergo s/_/-/g.
rm-rf 1.0 Usage: rm-rf [-v | --verbose] DIR Like shell command ‘rm -rf DIR’. From Scheme, there is one proc exported (besides ‘main’): (rm-rf! verbose? dir) DIR can actually be a single filename. VERBOSE? non-#f means display messages of the form "removing ..." to the current output port for each file and directory deleted. The messages are similar to those produced by GNU rm(1), but not an exact duplicate.
Recursively delete dir. Display progress messages if verbose? is non-
#f.
run-signed-batch-job 2.1 Usage: run-signed-batch-job [OPTIONS] Read standard input for a GPG-signed job message and execute it if the signer is trusted and if the cache file does not have a duplicate signature. New signatures are added to the cache file. Mail results. Options: -t, --trusted-signer SIGNER -- accept jobs from SIGNER (can use multiply) -c, --sig-cache FILE -- cache sigs in FILE -l, --logfile FILE -- write transaction log to FILE (required) -m, --mailto ADDR -- mail results to ADDR -s, --slack SECONDS -- timeout on each command (default: 4)
scm2bin 3.4
Usage: scm2bin --help
scm2bin --version
scm2bin [OPTIONS] SCM
where SCM is a scheme (.scm) program, and OPTIONS
(defaults in square brackets) is zero or more of:
-v, --verbose -- display more info than usual
-o, --output FILE -- use FILE for output [scm2bin.out]
-C, --save-c FILE -- write composed C code to FILE
-r, --rpath [DIR] -- pass "-rpath DIR" to linker
[directory where libguile.so is installed]
scm2bin creates a "binary executable file" named scm2bin.out that
encapsulates the code from SCM, the filename of a Scheme program.
This file can be run from the shell like so: ./scm2bin.out ARGS...
Option ‘--output FILE’ specifies an alternative output filename.
Internally, program invocation depends on its input. In all
cases, all forms are evaluated sequentially. Then, do:
* simple script without ‘main’
(exit #t)
* simple script with ‘main’
(unmask-signals)
(exit (main (command-line)))
* module (first form is ‘define-module’) with ‘main’
(define-module (guile-user))
(define-macro (@ ...) ...)
(unmask-signals)
(exit ((@ MODULE-NAME main) (command-line)))
A module without ‘main’ results in an error:
No ‘main’ procedure defined in module MODULE-NAME
The default compiler is gcc. Option ‘--gcc PROGRAM’ overrides this.
Option ‘--rpath DIR’ means to to pass "--rpath DIR" to the linker.
This is useful if you have installed Guile in an unusual (or otherwise
not normally frequented by the dynamic linker/loader) place.
Behave like
(writex), but with less whitespace. An exception is made for certain whitespace characters appearing in a string. They are expanded to their two-character "escaped" form:#\bel \a #\newline \n #\ht \t #\np \f #\cr \r #\vt \vAdditionally, ‘#\nul’ is written as ‘\0’.
Return a boolean indicating whether or not x is rear delimiting, i.e., can be safely followed (on the output stream) without requiring intervening whitespace. This is the case for strings, vectors and most lists. A particular case is:
(write-punily 'symbol) ;; aka (quote symbol) -| 'symbol ⇒ #f
serve-debiso 2.2 Usage: serve-debiso Mount *.iso files under /mnt/debiso and then serve them via http on port 42424. This relies on proper autofs/automount setup. (If things aren't working, see /etc/auto.master et al.)
sgfc 1.0 Usage: sgfc [--check-only] [SGF-FILE] Read SGF-FILE and write it out (if well-formed) to stdout. If SGF-FILE is omitted or "-", read from standard input. Optional arg ‘--check-only’ means don't write anything.
A list of properties for Smart Game Format version 4, i.e., “SGF FF[4]”. Each element has the form:
(CODE DESCRIPTION CONTEXT TYPE [SUBTYPE...])What all this means, we still need to document. (TODO)
A vector describing the changes between successive SGF versions. This probably should be completely internalized. Don't use it!
Return a list of children game trees for tree, or #f if tree has no children.
In node, return a list of all values for property prop. The list may be empty or it may contain several values.
In node, return the value associated with the first occurance of prop.
Display to the current output port a simple analysis of tree. (This is more for debugging support than anything serious.) Optional arg prefix specifies the number of spaces to insert at the beginning of the line, for recursive analysis of children trees.
sizzweb 1.12
Usage: sizzweb -r DIR [options...]
-p, --port=PORT -- Listen on PORT [8001]; to specify a UNIX
domain socket, use "-p unix:FILENAME"
-r, --docroot DIR -- Specify DIR as filesystem root (required)
-u, --ulibdir DIR -- Look in DIR for servlets.scm [$HOME/.sizzweb.d]
-d, --daemon FILE -- Write pid and tcp port to FILE, go into background
-l, --logfile FILE -- Append logs to FILE [stdout if not --daemon]
--funky -- Don't use this unless you have read the source
-b, --boredom N -- Hang up after N inactive seconds (minimum 15)
To stop sizzweb when invoked with -d FILE, use: kill -1 `head -1 FILE`
(note the backticks). To reload servlets.scm, use kill -2.
snap-iso 1.2
Usage: snap-iso [OPTIONS] SPECFILE [SELECTION]
Create an ISO9660 image file, using SELECTION from SPECFILE. If not
specified, SELECTION is taken to be "default". Run two sizing passes,
one with du(1) and one with genisoimage(1), before the actual creation.
Options are:
-o, --output FILE -- write FILE (by default the filename has the
form BASE.SEL.iso, where BASE is the basename
of SPECFILE, and SEL is the selection name)
-w, --warning-exit -- cause genisoimage sizing pass warnings to result
in failureful exit (by default they are ignored)
-m, --missing FILE -- write "no such file" filenames signalled by the
du sizing pass to FILE
-T, --tmpdir DIR -- use DIR for staging and output
-n, --noact -- exit after sizing passes, leaving directory
BASE.SEL.snap-iso (see ‘-o’ for explanation)
-q, --quiet -- say (almost) nothing
SPECFILE names a file containing "selections" that define directories
and files to be included/excluded in the ISO image. Directory- and
file-names are written as Scheme symbols. A selection has the form:
(NAME COMPONENT ...)
NAME is a keyword, such as "#:default". COMPONENT may be another
selection name (keyword), a relative directory- or file-name, or a
vector of the form:
#(PARENT #:except CHILD ...)
PARENT is a directory name. CHILD names a subdirectory or file in the
PARENT directory; it cannot contain the slash (directory separator)
character. The keyword #:except is required syntax.
The special name #:OMIT must be followed by absolute filenames. These
are ignored by the genisoimage sizing pass and the ISO-creation command,
but not by the du sizing pass.
#!/bin/sh exec strace -f -e open "$@" 2>&1 | sed /o.such.file/d
#!/bin/sh exec strace -f -e open "$@" 2>&1
todo 1.1
Usage: todo [OPTIONS] [PROJECT]
Summarize of PROJECT's todo file. PROJECT is a regular expression
that may match one or more todo file names registered in the meta
data file (see ‘--meta’ below). If PROJECT is omitted, all projects
are selected.
Options are:
-L, --list -- display mtime and name of each todo file
regsitered and exit successfully
-M, --meta FILE -- use FILE for meta data [$HOME/.todo.list]
-i, --involved [USER] -- select USER-involved items
-p, --personal [USER] -- select USER-responsible items
-t, --todo -- select unfinished items (status "-")
-d, --done -- select finished items (status "+")
-r, --review -- select review items (marker "R")
-w, --who -- also show who is associated w/ the item
-n, --no-parent -- do not show parent chain
The todo file format is a line-based outline where each heading
is zero or more pairs of leading spaces followed by ‘-’ (hyphen).
Something like:
- a 0
- b 1
- c 2
- d 1
- e 0
- f 1
- g 2
- h 1
NOTE: Outlines that "skip" levels signal an error.
In other words, this will fail:
- a 0
- b 1
- c 3 <-- skipped 2 -- error!
- d 1
Use
txtoutline-reader(see zzz txtoutline) on re and specs and return a procedure that scans a file given its filename.
urxvt-setfont 1.1 Usage: urxvt-setfont TTF-FONT-SPEC Set the (current) urxvt's font to TTF-FONT-SPEC. For example: urxvt-setfont "DejaVu Sans Mono-12" See also: urxvt(1), urxvt(7).
valid-ucs-p 1.0 Usage: valid-ucs-p [--utf8] FILENAME... Check that each file in FILENAME... contains valid UCS data. Optional arg ‘--utf8’ means check only that the file contains valid UTF8 data (some of which may not be valid UCS). If there are no problems, exit successfully (and silently). Otherwise, display a message to stderr, one of: FILENAME:LNO:COL: KEY (HEX-BYTE-VALUE...) where HEX-BYTE-VALUE is a hexadecimal integer and KEY is one of: ‘invalid-utf8’, ‘invalid-ucs’; and exit failurefully.
Return a procedure
pcapable of reading from a port and checking for valid UCS data. If skip-ucs-check? is non-#f, check for valid UTF8 data only.Procedure
pmay throwinvalid-utf8orinvalid-ucs, with a single list argument:(bytes port lno col), where bytes is the list of offending bytes read from port at line number lno, column col.
Check each port in ports using the procedure p returned calling
scan!-procwith arg skip-ucs-check?. ports may also be a single input-port.If scanning results in
invalid-utf8orinvalid-ucserrors, display the location of the error in the form:FILENAME:LNO:COL: KEY (HEX-BYTE-VALUE...)where key is either
invalid-utf8orinvalid-ucs, andhex-byte-valueis a hexadecimal integer in the range [0,255]; then do(exit #f).
vcg-convert 1.1 Usage: vcg-convert COMMAND [FILENAME] If COMMAND is ‘to-sexp’ then FILENAME is taken to be in vcg format; display its sexp format representation to stdout. This discards C++-style comments (ie, "/*...*/" and "//..."). If COMMAND is ‘to-vcg’ then FILENAME is taken to be in sexp format; display its vcg format representation to stdout. If FILENAME is omitted or "-" (single hyphen), read from stdin. Presently, operation relies on the external program sed(1). This means to say that there is a hackish text transform going on in the background instead of ``proper'' parsing/unparsing, resulting in strange behavior for certain valid inputs.
wcat 1.4 Usage: wcat [--headers | -h] [--zcat | -z] [URL ...] Cat out web arguments. Modelled after wwwcat in the guile-www distribution, but distinctly better (supports --help and --version :-). Optional arg --headers (or -h for short) means use HEAD instead of GET, and output the header (no body) using the format: PROTOCOL/VERSION RESPONSE-CODE RESPONSE-MESSAGE HEADER-NAME: HEADER-VALUE ... Optional arg --zcat (or -z for short) means filter output through "gzip -d -c -f".
whirlpool-sum 2.1 Usage: whirlpool-sum [ -c CHECKFILE | FILE... ] If given a list of filenames, for each FILE, display the digest (128 hex digits corresponding to 64 bytes) followed by two spaces followed by the filename and newline. For example (backslash and newline added for readability): $ whirlpool-sum COPYING 9e4bbb1ab48b0df77d0f5df1229a5c6314f0d65c4c96bcf7cbd870fd03\ 97036664eaea9c7318285f82ad7715473b1298c36735cebeb0a04d8a65\ ad9b31106bd1 COPYING If given ‘-c CHECKFILE’, read CHECKFILE and check the sums of the files listed therein. On mismatch, display the message "Whirlpool check failed for 'FILENAME'" to the stderr. The Whirlpool algorithm was developed by Paulo S. L. M. Barreto (pbarreto@scopus.com.br) and Vincent Rijmen (vincent.rijmen@cryptomathic.com). P.S.L.M. Barreto, V. Rijmen, ``The Whirlpool hashing function,'' First NESSIE workshop, 2000 (tweaked version, 2003), http://www.larc.usp.br/~pbarreto/whirlpool.zip This program implements version 3.0 (2003.03.12) of the algorithm.
Compute the WHIRLPOOL digest of string. Return a vector of length 64, with each element a byte value (0–255), representing the digest.
write-html-directory-index 1.9
Usage: write-html-directory-index [options] [DIR ...]
Write index.html in each DIR (or the current directory if none specified),
incorporating: a hyperlinked listing of parent directories under docroot;
a listing of files in the directory, including size, modification date,
"file type" (e.g. "text/plain" or "application/x-tar"), and the filename
hyperlinked; and the preformatted content of any README or LEGGIMI files
in the directory. Display "wrote: INDEX" for each index file written.
The directory listing omits index.html and the README (or LEGGIMI) file.
Several options change the bahavior (default values in square braces):
-r, --docroot DIR -- Use DIR as the root; the chain of parent dirs
stops there [/home/ttn/build/gnuvola]
-o, --output FILE -- Write index to FILE [index.html]
-x, --exclude FILE -- Also omit FILE from the listing;
this option can be given multiple times
-l, --label FILE -- Use contents of FILE (if found) instead of
README or LEGGIMI (completely replacing them);
this option can be given multiple times
-q, --quiet -- Don't say "wrote: INDEX"
For -o, -x, and -l, signal error if FILE contains a directory component.
Caveats:
- Not tested w/ symlinked (sub)directories.
- The order of specified labels has no bearing on which file is
actually chosen, should there be more than one in the directory.
Return a string-tree representing the directory listing for dir. ignored and labels are lists; upath and dir are strings, with or without trailing a slash. Normally, upath is part of dir, e.g.:
UPATH: /software/ttn-do/ DIR: /home/ttn/build/gnuvola/software/ttn-do/
x-list-extensions 1.1 Usage: x-list-extensions [--name-only] [--details] Write extension info to stdout in the format: OP EV ER NAME where OP, EV, and ER are hexadecimal values (CARD8, 00 through ff) representing the extension's major opcode, first-event and first-error. If an extension is not "present", show "-- -- --" instead of OP, EV, ER. Likewise, if an extension has no allocated first-event or first-error, show "--" in its place. Optional arg ‘--name-only’ means omit OP, EV, ER info. Optional arg ‘--details’ means show version (and/or other info) if available, following the name, in parentheses.
xearth-mapdata-to-text-db-table 1.0
Usage: xearth-mapdata-to-text-db-table [--no-body] MAPDATA
Write to stdout a series of sexps suitable for reading using
proc ‘read-text-db-table’, representing the data mined from
MAPDATA, the mapdata.c file (from xearth-1.1 or similar).
Option ‘--no-body’ (‘-n’ for short) means to stop output after
displaying the header (text-db-table configuration) sexp. For
xearth-mapdata-to-text-db-table 1.0, this results in the output:
(text-db-table-config
(delim . "\n")
(fields (type sexp) (init sexp) (path sexp)))
The ‘type’ value is a keyword, either #:land or #:water.
The ‘init’ value is a vector #(x y z) that indicates a point on the
unit sphere (each of x, y, and z has been scaled by 30000), where the
x axis points "to the right" (towards 0 N 90 E), the y axis points
"up" (towards the north pole), and the z axis points "out of the
screen" (towards 0 N 0 E). This is the starting point of the curve.
The ‘path’ value is a vector of triples #(dx dy dz); the #(x y z)
triple for each successive point in the curve is obtained by adding
#(dx dy dz) onto the previous #(x y z) values.
xlsatoms 1.0 Usage: xlsatoms Display atoms from the X server, one per line.
xlsfonts 1.0 Usage: xlsfonts [--unsorted | -u] Write all (up to 9999 in number) font names to stdout, one per line. Optional arg ‘-u’ means display unsorted.
xml2sexp 1.4
Usage: xml2sexp [options] XMLFILE...
Pretty-print contents of XMLFILE... to stdout.
If XMLFILE is "-", read from standard input.
If XMLFILE ends with ".gz", filter it through "gzip -dc" first.
The contents are read as xml and written as a sexp.
Options:
-f, --name-format [FMT] -- do (simple-format cep FMT filename) and
(newline cep), where cep is the current
error port, prior to the normal output for
each XMLFILE; disabled if XMLFILE is "-"
-w, --keep-whitespace -- do NOT ignore ‘character-data’ nodes where
all characters are ‘char-whitespace?’
-e, --empty STRING -- suppress "XML_ERROR_NO_ELEMENTS" error
on empty files; display STRING followed
by newline, instead
-x, --omit NODETYPE -- ignore NODETYPE, one of:
character-data
comment
this option may be specified multiply
-s, --sxml N -- output SXML N normal form, where N
is one of 0, 1, 2, 3 (EXPERIMENTAL)
Read XML from port and return a sexp.
options is an alist with symbolic keys
keep-whitespace,empty,omit; these control behavior identically to the command-line options of the same name described above. The value forkeep-whitespaceis a boolean, whereas that foromitis a list of symbols.
xout 1.2
Usage: xout [options] [args ...]
Display ARGS (text) in an X window. Options are:
-f, --file FILENAME -- Take first ARG to be a filename; display
its (text) contents. If FILENAME is "-"
(a single hyphen), read from stdin.
--font NAME -- Use font NAME (default: "fixed").
-U, --utf8 -- Decode text as UTF-8 (default: LATIN-1).
Actually, the "default encoding LATIN-1" really means no decoding.
Keyboard commands are:
SPC -- next page
backspace -- previous page
i -- speckle (uses GetImage/PutImage, may be slow)
ESC, Q, C-q -- quit
xprop 1.3
Usage: xprop [options]
Display properties from the X server root window, one per line.
Options are:
--id 0xWID -- display window properties from WID, a
hex number, instead of the root window
These types of property values are recognized:
ATOM, CARDINAL, INTEGER, STRING, UTF8_STRING, WINDOW,
WM_STATE, WM_HINTS, WM_SIZE_HINTS.
Display values of unrecognized types as raw (uninterpreted) data,
i.e., zero or more hex integers. If the data has STRING format,
then each string is represented as a list of hex integers.
Usage: xprop [options] --jam PROPERTY TYPE VALUE
In this case, don't display properties. Instead, set PROPERTY
(with TYPE) to VALUE on the server, then exit. PROPERTY and TYPE
are symbols or numbers, and VALUE is a Scheme expression, such as a
string or a uniform vector. Here are some command-line examples:
$ ... --jam WM_CLIENT_MACHINE STRING '"foo-bar-baz"'
$ ... --jam WM_CLIENT_LEADER WINDOW '#u(#x400013)'
Note that double quotes are required for a Scheme string; the
single quotes are for the shell.
Usage: xprop [options] --zonk PROPERTY...
In this case, don't display properties. Instead, delete each
specified PROPERTY (a symbol or integer) on the server, then exit.
Some of these are POSIX and thus really belong in Guile proper.
Call sendfile(2) with args outfd, infd, offset and count, all non-negative integers. Return the number of bytes actually written.
Call sendfile(2) with args outfd, infd, offset and count, all non-negative integers. Loop until all bytes are sent (or error).
Return an iovec derived from sequence, a list or vector. This object is suitable for passing to
readvandwritev. Each element of sequence must be either a uniform vector with one of the prototypes:#\a(string),#\nul(byte vector),s(short int),-1(long int),1(unsigned long int),l(long long int); or one of the following forms, where uve is a suitable uniform vector previously described:
(uve start)- Select elements of uve from index start to the end of uve.
(uve start stop)- Select elements of uve from index start up to but not including index stop.
(uve start.count)- Select count elements of uve from index start.
opts are alterating keywords and values:
#:starts-idx#:ende-idx- Use elements in the range s-idx (inclusive) to e-idx (exclusive) of sequence for the iovec. It is an error for e-idx to be less than s-idx.
#:oneshotbool- If bool is non-
#f, the iovec is marked as oneshot.A oneshot iovec cannot be re-used; after the i/o operation (
readvorwritev) finishes processing all the elements, subsequent calls do nothing and simply return#f.For a non-oneshot iovec, on the other hand, after the i/o operation finishes (and returns
#f), the internal index is reset to zero so that subsequent calls proceed from the beginning, normally.The default (if
#:oneshotis unspecified) is to construct a oneshot iovec.
Read from fdes data specified by iovec using readv(2). Return number of bytes successfully read, or
#fif there is no more space to read into. If the underlying system call returns -1, signal error. Update the starting position of iovec by side-effect. Optional arg count specifies how many elements of iovec to process (default is “remaining count”).
Write to fdes data specified by iovec using writev(2). Return number of bytes successfully written, or
#fif there is nothing more to be written. If the underlying system call returns -1, signal error. Update the starting position of iovec by side-effect. Optional arg count specifies how many elements of iovec to process (default is “remaining count”).
All the following flock/FOO procs take a second optional arg
nblockp which, if specified and non-#f, makes the operation
non-blocking. That means if the system call returns EAGAIN, the proc
returns #f.
This is a slightly tweaked copy of (Unofficial) Guile 1.4.1.123 module
(ice-9 getopt-long). Alas, the ones distributed with GNU Guile
(any version) do not support merge-multiple?.
Parse the command line given in args (which must be a list of strings) according to the option specification grammar.
The grammar argument is expected to be a list of this form:
((option(property value) ...) ...)where each option is a symbol denoting the long option, but without the two leading dashes (e.g.
versionif the option is called--version).For each option, there may be list of arbitrarily many property/value pairs. The order of the pairs is not important, but every property may only appear once in the property list. The following table lists the possible properties:
(single-charchar)- Accept
-char as a single-character equivalent to--option. This is how to specify traditional Unix-style flags.(required?bool)- If bool is true, the option is required.
getopt-longwill raise an error if it is not found in args.(valuebool)- If bool is
#t, the option accepts a value; if it is#f, it does not; and if it is the symboloptional, the option may appear in args with or without a value.(merge-multiple?bool)- If bool is
#tand thevalueproperty is not#f, all (one or multiple) occurrances are merged into a list with order retained. If#f, each instance of the option results in a separate entry in the resulting alist.(predicatefunc)- If the option accepts a value (i.e. you specified
(value #t)for this option), thengetopt-longwill apply func to the value, and throw an exception if it returns#f. func should be a procedure which accepts a string and returns a boolean value; you may need to use quasiquotes to get it into grammar.
Search options for a command line option named key and return its value, if found. If the option has no value, but was given, return
#t. If the option was not given, return default. options must be the result of a call togetopt-long.
When a program starts, it usually is ready to do lots of Cool Stuff. However, it could be that its caller really just wants to know some basic information. Oh well, maybe next time...
Check args (list of strings) for second element being ‘--help’ or ‘--version’. If found, display the respective information, using config, to stdout and then
exitsuccessfully. If not found, return#f. The recognized config keys are:
package- A string describing program affiliation (for ‘--version’).
version- A string to use instead of the default "VERSION UNKNOWN". Output, depending on whether or not
packageis specified, is:PROGRAM (PACKAGE) VERSION PROGRAM VERSIONwhere program is
(basename (car args)).help- Either a (typically multi-line) string, a thunk that produces a string, or the symbol
commentary, which means usefile-commentaryfrom module(ice-9 documentation)to obtain the string.All strings are trimmed of leading and trailing whitespace.
Lastly, flags are zero or more symbols that further change the default behavior:
no-exitmeans don'texit; instead, after doing output return#t.v-beforemeans for ‘--help’, first do the output for--version.
Even if the caller is more than superficially interested in the program, it's a good idea to figure out what Cool Stuff is being sought.
Do
(getopt-longargs option-spec), and return a procedure qop that encapsulates the result. You can then call qop in various ways:
(qop#t)- Return the raw result of the
getopt-longcall.(qop key)- Return the value associated with key, or
#f.As a special case, if key is the empty list, then return the (possibly empty) list of strings comprising the non-option args. Note that
getopt-longstops processing args if it sees ‘--’ (hyphen, hyphen); all elements following it are considered non-option.(qop key proc)- If key has an associated value, call
procwith the value and return its result. Otherwise, return#f. This is a shorthand for(and=> (qopkey)proc).
If a program behaves well towards its children as it does to its callers, its children will gladly visit later, once they have moved out.
Return a procedure qop that encapsulates alist, an association list with
eq?-comparable keys. This is likeqop<-args, except that(qop #t)simply returns alist.
Miscellaneous stuff that doesn't really belong anywhere else (yet?).
Basically:
(for-eachproc ls1...lsN)
proc is an n-ary procedure, where n is the number of lists.
Expand to
hash-for-eachlike so:(HFE (k v ht) foo...) ⇒ (hash-for-each (lambda (k v) foo...) ht)
Execute bodyform and return its value if no error happens. Each element of handlers looks like
(condition-name body)where the body is one or more Scheme expressions.A handler is applicable to an error if condition-name is one of the error's condition names. If an error happens, run the first applicable handler.
The car of a handler may be a list of condition names instead of a single condition name. Then it handles all of them. As a special case, for the last handler specified in handlers, the car may also be the symbol
else, which matches any condition name.Note that unlike the Emacs Lisp
condition-case(from which the Scheme design and documentation draw grateful inspiration), var must be specified (it cannot be#f).When a handler handles an error, control returns to the
condition-caseand it executes the handler's body with var bound to(signaled-condition.signal-data)from the error, returning the value of the last body form.
Apply
simple-formatto format string s and args. Return a string.
Apply
simple-formatto format string s and args. Send the result to the current output port.
Apply
simple-formatto format string s and args. Send the result to the current error port.
An accumulator is a procedure that appends its arguments to a private list, in the order given, and returns the list when called with no argument.
Thus, you can replace this idiom:
(let loop ((item (get)) (acc '()))
(if (finished? item)
(reverse! acc)
(loop (get) (cons item acc))))
with something like:
(let ((acc (accumulator)))
(let loop ((item (get)))
(or (finished? item)
(begin (acc item) (loop (get)))))
(acc))
Flush port (with
force-output) if an output port, thenseekto its initial position (zero). Return port.
Return a new read/write temporary file port, i.e., one backed by the filesystem, and automatically deleted on process exit.
Return a procedure p that returns, given filename, a string constructed from appending directory and filename, adding an intervening
#\/(slash) if directory does not end with one.(map (directory-vicinity "foo") '("bar" "baz" "/qux")) ⇒ ("foo/bar" "foo/baz" "foo//qux") (map (directory-vicinity "dir/") '("a" "/b")) ⇒ ("dir/a" "dir//b")NB: If filename is absolute, the result has two slashes.
Apply filter to filenames in dir; return list of non-#f values. filter is a procedure applied to each file name – it should return #f if that file name is to be omitted from the overall list, or a value to be collected. The file name list is not sorted.
In dir, apply filter to each file name; return list of non-#f values. filter is a procedure applied to to each filename – it should return #f if that file name is to be omitted from the overall list. Otherwise, its return value can be a string, or #t which is synonymous with the filename with the dir prefixed. The file name list is not sorted. options are zero or more keywords that modify the behavior:
#:filter-prefixed- Pass to filter each file with dir already prefixed.
#:collect-nodir- For the case when filter returns
#t, collect the filename without the dir prefix.NB: The argument order is opposite that of
filtered-files.
Return #f if file is "." or "..", otherwise return file. The directory component (prefix up to and including the
/, if any) is ignored.
Return a procedure that filters based on ext, a string. The procedure takes a filename and if it ends in .EXT (note dot), returns the portion of the filename before the dot, otherwise #f. Optional arg transform controls precisely how the returned filename is to be processed. If transform is omitted or #f, the extension is discarded. If it is #t, the extension is left alone. If it is a string, the stem is concatenated with it. If it is a procedure, that procedure is applied to the stem, and it's return value, which need not be a string, is collected.
Take sep-char and return a procedure that, given filename, returns a copy of it w/o the ending sep-char.
Return #t if file file1 is newer than file file2. If file1 does not exist, the answer is #f; otherwise, if file2 does not exist, the answer is #t.
In the following macros, if body is null, the return value is unspecified, otherwise it is the value of the last expression in body.
Evaluate body and restore the original cwd afterward. It is an error to specify a null body.
Change directory to dir, evaluate body and restore cwd. Return what body returns. It is an error to specify a null body.
If name begins with "/", return it. Otherwise, return a new string composed by taking name in vicinity of dir.
Return name, a string, stripping the terminating "/" character. If there is no "/", just return name.
Return a list of filename components parsed from string. Components are delimited by "/", which is discarded. Null string components are also discarded.
Return a string composed by prefixing each element of ls with "/".
Convert filename name to absolute, and canonicalize it. Second arg default-directory is directory to start with if name is relative (does not start with slash); if default-directory is #f or missing,
(getcwd)is used. File name components that are . are removed, and so are file name components followed by .., along with the .. itself; note that these simplifications are done without checking the resulting file names in the file system. An initial ~/ expands to your home directory. An initial ~USER/ expands to USER's home directory.
Reset the cache
expand-file-nameuses for the results of expanding~and~USER. Optional arg size specifies the hash table bucket count to use (default is 7).
Substitute environment variables referred to in string.
$FOOwhere FOO is an environment variable name means to substitute the value of that variable. The variable name should be terminated with a character not a letter, digit or underscore; otherwise, enclose the entire variable name in braces. For instance, inab$cd-x,$cdis treated as an environment variable.Use
$$to insert a single dollar sign.
Substitute env vars in string then expand it as a filename. See
substitute-env-varsandexpand-file-name.
The procs grep and grep-matches work on lists of strings.
Unfortunately, their names are slightly confusing to those used to the
shell-command command grep(1). On the other hand (to add to this
confusion), grep-l works on a list of files (or file ports).
Return list of matches to regexp re from strings list. Optional flags are keywords (or symbols with the same name) which modify regexp matching:
#:invert- the result list is those strings that do NOT match
#:fold-case- consider upper and lower case to be identical
#:count- return length of result list instead of list
#:literal- re specifies a literal string to match
Return list order is the same as in the input list.
Return non-#f match results of
regexp-execof regexp re on strings list. Optional flags are keywords (or symbols with the same name) which modify regexp matching:
#:invert- the result list is composed entirely of #t values, with length equal to the number of strings that do NOT match (useful with
countflag below)#:fold-case- consider upper and lower case to be identical
#:count- return length of result list instead of list
#:literal- re specifies a literal string to match
Return list order is the same as in the input list.
Search for regular expression re in files. Return a list of those that match. re specifies a regular expression that matches on one line (multi-line results not currently supported). files is a list, each element of which can either be a filename or a seekable port. In the returned list, if the element is a port, its read offset is left at the beginning of the line of the first match.
Walk tree depth-first, displaying elements if they are strings. Signal "bad type" error for non-string, non-list elements. Optional second arg out is a procedure to use instead of
display.
Flatten to port (using
flatten) the tree, a nested list of strings. If port is#freturn a string, instead.
Flatten the tree html-data into file named outfile. However, if outfile exists and the result is not different, then avoid modifying outfile, i.e., preserve its modification time. If outfile is newly written, set its mode to
#o644.Optional arg log is a procedure that takes a string, one of "outfile unchanged" or "wrote outfile".
“Load” template-file (evaluating it in the “current module”), and pass it as the html-data arg, along with outfile and log, to
spew-html!.
For each filename in the list pages, do
update-page!on it with the template file named filename-data. For example, specifying("index.html" "foo-bar-baz")processes index.html-data to create index.html, and foo-bar-baz-data to create foo-bar-baz.
In addition to the procs described below, the following named strings are available (NB: the colon is part of the variable name):
Scan list of the form:
([attr-name attr-value ...] [body...])Each attr-name is either a keyword or a symbol. Each attr-value is either a string, a (possibly) nested list of strings, a symbol or a number. When there are no more attribute names, the rest of the list (which may be null) is taken as the body.
Return a pair whose car is the attributes, formatted (in a tree) as
NAME="VALUE"; and whose cdr is the body.
Keywords: xbsc, neck, prep-body, no-end-tag-if-null-body?, end-tag, tailReturn a proc p that expands into a tree based on elem. Precisely, p partitions its arglist with
peelinto attributes and body and returns the tree:("<" elem attributes [" /"] ">" [neck] [body ["</" elem ">"]] [tail])Other args are keywords. Here is a list (with default value):
#:xbsc #f- Non-
#fmeans “XMLish (blech) start close”, i.e., the start tag should be rendered as ‘<ELEM />’ instead of of ‘<ELEM>’ (with space and slash before closing angle bracket). Typically, this is specified in conjunction with#:end-tag :NULL.#:neck :NULL- This is inserted between the initial tag and is not subjected to
prep-body. Typically:LFwhen specified.#:prep-body #f- This can be a procedure that is passed body and returns a transformed tree. It can also be a a pair whose car is the symbol
mapand whose cdr is a procedure taking one arg. The effective body is computed by mapping this procedure over all the top-level elements of body.#:no-end-tag-if-null-body? #f- Non-
#fspecifies that if body is the empty list, the ‘</ELEM>’ end tag should be omitted entirely.#:end-tag #f- Specifies an alternative end tag.
#:tail :NULL- A value to be appended at the very end of the tree. Typically
:LFwhen specified.
Return a tree made from expanding CSS rule, a list of the form:
(target [property value...])In this form, target can be a string or a flat list of strings; property can be a string, symbol, or keyword, and value can be a string or a nested list of strings.
Return tree with optional prefix:
("Copyright (C) " prefix YEAR " Thien-Thi Nguyen")
Call
copyright, specifying as prefix the range of years beginning with year, if that is not the current year. If it is the current year, specify no prefix.
Return a tree describing the time duration diff (number of seconds). Blocks are (suffix, name, max value, number of seconds):
s seconds 59 1, (*)
m minutes 59 60, (* 60)
h hours 23 3600, (* 60 60)
d days 90 86400, (* 60 60 24)
w weeks 104 604800, (* 60 60 24 7)
y years (none) 31536000, (* 60 60 24 365)Note that the number of seconds for years is approximate. If diff is negative, the tree begins with "-". Optional arg sep (a string) means to recurse on the remainder of the time, inserting sep between each block. Some examples:
(flatten (smhdwy 12313)) ⇒ "3h" (flatten (smhdwy -341231343)) ⇒ "-10y" (flatten (smhdwy -3412314 ",")) ⇒ "-39d,11h,51m,54s"
If pidfile is non-
#f, check that it (filename) does not exist, and that its directory is writeable. Signal "already exists" or "directory not writeable", respectively, otherwise. Then, do aprimitive-fork.For parent:
- If pidfile is non-
#f,writechild pid and elements of etc to pidfile, one element per line.- Call rest with one arg, the child pid. Return what rest returns.
For child:
- Set the session id with
setsid.- Close i/o ports, as determined by
current-input-port,current-output-portandcurrent-error-port.- Construct a proc
byelike so:(lambda ignored (and (file-exists? pidfile) (delete-file pidfile)) (raise SIGKILL))- Do
(sigaction SIGTERM bye).- Call proc play with one arg, proc
bye. Return what play returns.
Return a proc that reads from port and returns a list of trees. Scanning recognizes an outline format where each heading is zero or more pairs of leading spaces followed by ‘-’ (hyphen). Something like:
- a 0 - b 1 - c 2 - d 1 - e 0 - f 1 - g 2 - h 1In this example the levels are shown to the right. The result for such a file would be the form:
(("a" ("b" "c") "d") ("e" ("f" "g") "h"))
Basically, anything at the beginning of a list is a parent, and the remaining elements of that list are its children. NOTE: Outlines that “skip” levels signal an error. In other words, this will fail:
- a 0 - b 1 - c 3 <-- skipped 2 -- error! - d 1re is a regular expression (string) that is used to identify a header line of the outline, as opposed to a whitespace line or intervening text. re must begin w/ a sub-expression to match the level prefix of the line. You can use
level-submatch-numberin specs (explained below) to specify a number other than 1, the default.Normally, the level of the line is taken directly as the length of its level prefix. This often results in adjacent levels not mapping to adjacent numbers, which confuses the tree-building portion of the program, which expects top-level to be 0, first sub-level to be 1, etc. You can use
level-substring-divisororcompute-levelin specs to specify a constant scaling factor or specify a completely alternative procedure, respectively.specs is an alist which may contain the following key/value pairs:
- level-submatch-number number - level-substring-divisor number - compute-level proc - body-submatch-number number - extra-fields ((field-1 . submatch-1) (field-2 . submatch-2) ...) - more-lines? boolThe proc value associated with key
compute-levelshould take a Scheme match structure (as returned byregexp-exec) and return a number, the normalized level for that line. If this is specified, it takes precedence over other level-computation methods.Use
body-submatch-numberif re specifies the whole body, or if you want to make use of the extra fields parsing. Theextra-fieldsvalue is a sub-alist, whose keys name additional fields that are to be recognized. These fields along withlevelare set as object properties of the final string (the body) that is consed into the tree. If a field name ends in ‘?’ (question mark) the field value is set to be#tif there is a match and the result is not an empty string, and#fotherwise.Normally, only header lines are considered. Use
more-lines?with a non-#fvalue to specify that non-header lines be included as well. The structure of the output will be the same, however headers that are not immediately followed by another will result in strings with embedded (and possibly trailing) newline characters.
Quote arg for passing as argument to an inferior shell.
For args, trim surrounding whitespace, join together separated by space, then split apart on space boundaries. For example:
(args->normalized-list "rsync a b c" " d " "e" "f g h") ⇒ ("rsync" "a" "b" "c" "d" "e" "f" "g" "h")
Keywords: inp, outp, errp, norm, argsCall program synchronously in separate process. Unless given
#:outp 0, wait for program to terminate and return a numeric exit status.
#:inp (current-input-port)- Input port.
#fmeans /dev/null.#:outp (current-output-port)- Output port.
#fmeans discard output; 0 (zero) means discard, don't wait for program to terminate, and return#f.#:errp (current-error-port)- Error output port.
#fmeans discard output.#:norm #f- Non-
#fmeans program and args should be passed throughargs->normalized-list.#:args ()- List of additional args to pass to program.
Keywords: inb, outb, errb, norm, argsCall program synchronously in separate process. Return a numeric exit status. Keywords are:
#:inb #f- Input buffer.
#:outb #f- Output buffer
#:errb #f- Error output buffer.
#:norm #f- Non-
#fmeans that program and args should be passed throughargs->normalized-list.#:args ()- List of additional args to pass to program.
Keywords: inb, argsReturn a procedure capable of calling program. When called, the program stdout and stderr are captured to buffers. The key
#:inb(default #f) specifies an input buffer to use for the call. The key#:args(default the empty list) specifies additional args to pass.The returned procedure takes one of the following commands (either a keyword or similarly-named symbol):
#:redefine NEW-DEF- Redefine the called program and its args. new-def is one or more strings.
#:execute- Call program, clearing buffers first. Return raw exit status of the program. See
status:exit-valfor more info.#:execute/no-init- Same as
#:execute, but do not clear buffers first.#:outbuf- Return output buffer object.
#:outbuf-string- Return output buffer as a string.
#:outbuf-lines- Return output buffer as a list of strings.
#:errbuf- Return error output buffer.
#:errbuf-string- Return error output buffer as a string.
#:errbuf-lines- Return error output buffer as a list of strings.
#:exit-val- Return exit status from the last execution. Signal an error if
#:execute(or#:execute/no-init) command has not yet been issued since closure creation or most recent#:redefine.The
#:outbuf-linesand#:errbuf-linescommands use newline to separate.
Run shell command cmd and return its output as a string.
Like
shell-command->string, with the command formed by applyingsimple-formatto s and args.
For the following procs, optional arg handle-delim is a symbol
that controls how to handle the newline at the end of each line, one of:
trim, concat, peek, split. This is passed
to procedure read-line in module (ice-9 rdelim)
(see Line/Delimited). If unspecified, the default is
trim.
Run shell command cmd and return its output as a list of strings.
Return a list of strings, representing the lines read from port.
Return a list of strings, representing the lines found in filename.
Apply
simple-formatto args and pass tosystem. The car of args is the format string.
Search env var
PATHfor executable program name. If found, return the absolute name, otherwise#f.
This module provides a procedure for easy PostgreSQL cluster manglement, including components of initdb and pg_ctl functionality, with some configuration file editing mixed in.
Return a procedure p that manages the cluster at/under root, an absolute directory name. p accepts a single arg, command, a symbol. All commands return non-
#fif successful. Optional arg tweaks is for commandmake-cluster, described below. Recognized commands (keywords ok, too):
make-cluster- If the directory root does not exist, create the cluster with encoding
UNICODEvia external command initdb under root and modify two files therein:
- pg_hba.conf
- Set the contents to
local alllogintrust, where login is for the current user, per(getpwuid (getuid)).- postgresql.conf
- Set option
listen_addresses(if present) to nothing, and the optionunix_socket_directoryto root. If tweaks is specified, it should be a list of spec forms(option.value)where option is a symbol and value is a string, to set additionally. Normally, if option is not found in the file, it is ignored. You can force it to be added at the end, however, by using the form(#tspec), that is, consing a#tonto a normal spec form.The overall effect of these changes is to disable network access and allow only (albeit further unrestricted) Unix-domain access.
daemon-up- First, make sure the cluster exists (via
make-cluster). If creation fails signal “make-cluster FAILED” error. Then, if the daemon is not up, start it (like pg_ctl start), specifying root/log as the log file, and attempt (up to five times) to connect to databasetemplate1. If all attempts fail, display a message to the current error port and return#f.daemon-down- If the daemon is up, bring it down (like pg_ctl stop).
drop-cluster- First, make sure the daemon is down. If the daemon cannot be taken down, signal “daemon-down FAILED” error. Then, delete root and all files under it.
tweaker- This command does not do anything; instead, it returns a procedure p that takes one arg, tweaks, a list of spec forms as described in
make-cluster, above. Procedure p actually does the work of modifying postgresql.conf (and saving it). Why have two ways of doing the same thing? Good question.Other commands signal “bad command” error. Argument who is either
#fto specify silent operation, or a short string to be used for certain progress messages.
The meta file contains two forms (sexps), the first a list of
elements each of the form: (keyword expansion),
and the second a single alist of the form:
((DB-1 (TABLE DEF ...) (TABLE DEF ...) ...)
(DB-2 (TABLE DEF ...) (TABLE DEF ...) ...) ...)
Each db and table are strings, while def... are column definitions. See Column Definitions.
Wherever a keyword from the first form appears in defs, its expansion
(a string) is used instead. Env var TTN_PGTABLE_DEFS names this
file, otherwise it is taken to be ~/.pgtable-defs by default. This
is done at module-load time. To change the meta file after loading, use
procedure set-meta-file!.
Return a list of all the definitions described in the meta-file.
Return the definitions for database db, table table.
Return a “pgtable manager” procedure (see Single-Table Abstraction) for database db, table table.
Return a “pgtable worker” procedure (see Single-Table Abstraction) for database db, table table.
A text-db-table is a file that begins with zero or more introductory lines (ignored), followed by a Scheme form starting at the beginning of a line:
(text-db-table-config
(meta . META) ; optional; META is opaque, default #f
(delim . "\f")
(fields (NAME1 TYPE1)
(NAME2 TYPE2)
...))
name is a symbol or keyword; type is one of the symbols:
sexpread.
sexp-lineread, then discard trailing whitespace.
lineread-line, discarding eol chars (CR, LF).
rest-linesrest-lines-trimrest-lines but result is string-trim-bothed.
Following the Scheme form is text terminated by the delimiter (a form feed in the above example), which is also ignored. Following this are the records of the database, separated by the delimiter, until the end of the file. The delimiter should NOT be at the end of the file.
Read a text-db-table from filename/port, return a list of records. Each record is an alist whose keys are the field names, in order. filename/port can be a filename (string), or an input port. In the latter case, it is left open when done.
As a side effect, the property
text-db-table-meta(procedure with setter) for the returned list is set to the table's metadata, if any.flags is a list of zero or more keywords that change the default behavior. These are the recognized flags:
#:list- Return each record as a list instead of as an alist.
#:closure- Return each record as a closure (procedure) that accepts one arg sel. If
#:listis specified, sel is a 0-based integer to index into the record's data. Otherwise, sel names a field in the record's data.
WARNING: HIGHLY EXPERIMENTAL!
This module provides procedures to communicate with an X Windows server using the X Protocol, major version 11, minor version 0.
Connect to the X server. If server is omitted, use the value of the env var
DISPLAY.If there are problems, display a reason to the current error port and return
#f. Otherwise, return a connection object, a vector of the form:#(PORT SETUP EXTENSIONS)port is the socket used for low-level communication. Accessing it directly is probably a good way to screw things up; You Have Been Warned! setup is an alist detailing
serverspecifics. extensions is a list of extensions (each a symbol) available on the server.The env var
XAUTHORITYnames a file to be read for authorization records. Presently, this has only been tested with auth typeMIT-MAGIC-COOKIE-1.
Return a procedure that can do a synchronous request on conn. Normally, the procedure takes two arguments, name and alist. These specify a request, such as
PolySegment(a symbol); and the data to fill in the fields of that request.Some fields cannot be specified (including them in
alistis an error), while others are computed automatically. The rest default to 0 (zero).If the request has no expected reply, the procedure returns
#f. Otherwise, it awaits the reply and returns it as an alist.opts are symbols that configure the procedure.
plist-input- Specifies that the procedure should take a list of alternating symbols and values (a plist) as the second arg.
keyword-style- Specifies that the procedure should take any number of args after the name, as alternating keywords and values.
A value may be an integer, or a vector of sub-alists (or plists, or kwlists, as appropriate).
Return a procedure that manages (simply) i/o on conn. See
-synchronous-request-procfor documentation on opts.The returned procedure has the signature
(one . rest); behavior is controlled by the first arg one, with rest having subsequent meanings. Here is a table:
- #:gobble!
- Check conn and read pending input onto the read queue. Return
#tif the read queue is non-empty (which may be the case from prior operations).- #:flush!
- Send the contents of the write queue to conn.
- #:set-stale-rdq-window-size! n
- By default, the read queue maintains a two-entry window for handling “stale” messages from the server. If you see the ‘unexpected answer’ error, it means the server has sent a message whose serial id has passed beyond stale (to “forgotton”). In that case, try increasing the window size with this command.
- #:set-error-handler! handler
- By default, spurious errors, i.e., those not or no-longer associated with a request, are displayed to stderr and the program exits failurefully.
This specifies instead that handler, a procedure, should be called with one argument, an alist of error details, including (but not limited to) keys
%id,%current-serialand%error-name. The difference in values of the first two gives you an idea of how far back in the protocol stream the error happened.If handler is
#f, revert to default behavior.- #:set-external-event-queue! handler
- Initially, events are added to an internal queue (DWR: without bound!). This sends them, one by one, to handler, and arranges for handler to receive future events. handler can be a queue object (satisfying
(ice-9 q) q?); a procedure that takes one argument; or#fto resume internal queuing.- request data[...]
- Add to the write queue the request (a symbol) with fields specified by data. Return a cookie that identifies the request. See
-synchronous-request-procfor documentation on the data format.- cookie
- Wait until a reply (or error) associated with cookie is available and return it (FIXME: there may be multiple errors, but this only returns the first error or reply).
Return x (-: which marks the spot :-) from the alist tree. x can take many forms:
()- Return tree.
- symbol
- Return
(assq-reftree x).- integer
- Return
(vector-reftree x).- list
- Use
(carx)to extract a subtree and recurse on it with(cdrx). For example:(define CONN (-connect)) (define SETUP (vector-ref CONN 1)) (-x '(roots 0 width-in-pixels) SETUP) ⇒ 1280
Return direct access to internal data structure table (a symbol). These should be treated as read-only, and best avoided unless you don't mind having to dig into the source a bit. Valid tables are:
ENUMS- Hash table mapping symbols to alists. The alist in turn maps symbols to integers.
MASKS- Hash table mapping struct names to alists. The alist in turn maps field names to enum names (both symbols).
ERRORS- Hash table mapping error names to error codes (integers).
EVENTS- Hash table mapping event names to opcodes (integers).
REQUESTS- Hash table mapping request names to opcodes (integers).
Note that struct, event and request names may be a simple symbol such as
SCREEN; or a list of symbols, such as(Composite RedirectSubwindows req). Also, for every request there may be up to two structs, one whose name ends withreq, and (possibly) one withans.Use
hash-reffor hash tables.
Return a new 32-byte string made by packing event type (a symbol) data alist, suitable for the value of the
eventfield in aSendEventprotocol request.If alist contains keys that do not correspond to fields in the event type, signal "invalid alist fields" error.
As a special case, if type is
ClientMessageand an alist key is/client-message-data, the associated value should be a list of integers in the format specified in theformatfield:
format max list length valid value range 8 20 [0,#xff] 16 10 [0,#xffff] 32 5 [0,#xffffffff] If the format is not recognized, or if the list of numbers is too long, signal error.
Return the type (a symbol) of event. This uses the
EventMaskenum.
Return
#fif event originated from the server, or#tif it was generated due to aSendEventrequest.
Here are all the enum names (symbol or list of symbols) we know about.
Typically, you would use the name with -internal-data to access the
association list data. For example:
(define +ENUMS+ (-internal-data 'ENUMS))
(define +gravity+ (hash-ref +ENUMS+ 'Gravity))
(assq-ref +gravity+ 'Center) ⇒ 5
(define +z+ (hash-ref +ENUMS+ '(XTEST Cursor)))
+z+ ⇒ ((None . 0) (Current . 1))
AccessControl QueryShapeOf Allow ScreenSaver ArcMode SendEventDest AutoRepeatMode SetMode BackPixmap StackMode BackingStore SubwindowMode Blanking Visibility ButtonIndex VisualClass ButtonMask WindowClass CW (Composite Redirect) CapStyle (DAMAGE ReportLevel) Circulate (GLX GC) ClipOrdering (GLX PBCDT) CloseDown (GLX PBCET) ColorFlag (GLX RM) ColormapAlloc (MIT-SCREEN-SAVER Event) ColormapState (MIT-SCREEN-SAVER Kind) ConfigWindow (MIT-SCREEN-SAVER State) CoordMode (RANDR Rotation) EventMask (RANDR SM) Exposures (RANDR SetConfig) Family (RECORD CS) FillRule (RECORD HType) FillStyle (RENDER CP) FontDraw (RENDER PictOp) GC (RENDER PictType) GX (RENDER PolyEdge) GetPropertyType (RENDER PolyMode) Grab (RENDER Repeat) GrabMode (RENDER SubPixel) GrabStatus (SHAPE SK) Gravity (SHAPE SO) HostMode (SYNC ALARMSTATE) ImageFormat (SYNC CA) ImageOrder (SYNC TESTTYPE) InputFocus (SYNC VALUETYPE) JoinStyle (XEVIE Datatype) KB (XFIXES CursorNotify) Kill (XFIXES CursorNotifyMask) LedMode (XFIXES SaveSetMapping) LineStyle (XFIXES SaveSetMode) MapIndex (XFIXES SaveSetTarget) MapState (XFIXES SelectionEvent) Mapping (XFIXES SelectionEventMask) MappingStatus (XTEST Cursor) ModMask (XVideo AttributeFlag) Motion (XVideo ImageFormatInfoFormat NotifyDetail (XVideo ImageFormatInfoType) NotifyMode (XVideo Type) Place (XpExtension Attr) PolyShape (XpExtension Detail) PropMode (XpExtension EvMask) Property (XpExtension GetDoc)
Here are all the structs we know about. The -synchronous-request-proc
procedure knows how to handle the subset whose names end with req. For
example, specify GetAtomName to send (GetAtomName req) and
(hopefully) receive (GetAtomName ans).
((fixed (x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(angle1 INT16)
(angle2 INT16)))
((fixed (left-side-bearing INT16)
(right-side-bearing INT16)
(character-width INT16)
(ascent INT16)
(descent INT16)
(attributes CARD16)))
((fixed (pixel CARD32)
(red CARD16)
(green CARD16)
(blue CARD16)
(flags BYTE)
(-pad #(1 BYTE))))
((fixed (depth CARD8)
(-pad #(1 BYTE))
(visuals-len CARD16)
(-pad #(4 BYTE)))
(array (visuals #(visuals-len VISUALTYPE))))
((fixed (depth CARD8)
(bits-per-pixel CARD8)
(scanline-pad CARD8)
(-pad #(5 BYTE))))
((fixed (family CARD8)
(-pad #(1 BYTE))
(address-len CARD16))
(array (address #(address-len BYTE))))
((fixed (root WINDOW)
(default-colormap COLORMAP)
(white-pixel CARD32)
(black-pixel CARD32)
(current-input-masks CARD32)
(width-in-pixels CARD16)
(height-in-pixels CARD16)
(width-in-millimeters CARD16)
(height-in-millimeters CARD16)
(min-installed-maps CARD16)
(max-installed-maps CARD16)
(root-visual VISUALID)
(backing-stores BYTE)
(save-unders BOOL)
(root-depth CARD8)
(allowed-depths-len CARD8))
(array (allowed-depths #(allowed-depths-len DEPTH))))
((fixed (status CARD8)
(-pad #(1 BYTE))
(protocol-major-version CARD16)
(protocol-minor-version CARD16)
(length CARD16)
(release-number CARD32)
(resource-id-base CARD32)
(resource-id-mask CARD32)
(motion-buffer-size CARD32)
(vendor-len CARD16)
(maximum-request-length CARD16)
(roots-len CARD8)
(pixmap-formats-len CARD8)
(image-byte-order CARD8)
(bitmap-format-bit-order CARD8)
(bitmap-format-scanline-unit CARD8)
(bitmap-format-scanline-pad CARD8)
(min-keycode KEYCODE)
(max-keycode KEYCODE)
(-pad #(4 BYTE)))
(array (vendor #(vendor-len char)))
(array (pixmap-formats #(pixmap-formats-len FORMAT)))
(array (roots #(roots-len SCREEN))))
((fixed (status CARD8)
(-pad #(5 BYTE))
(length CARD16))
(array (reason #((/ (* length 4) 1) char))))
((fixed (status CARD8)
(reason-len CARD8)
(protocol-major-version CARD16)
(protocol-minor-version CARD16)
(length CARD16))
(array (reason #(reason-len char))))
((fixed (byte-order CARD8)
(-pad #(1 BYTE))
(protocol-major-version CARD16)
(protocol-minor-version CARD16)
(authorization-protocol-name-len CARD16)
(authorization-protocol-data-len CARD16))
(array (authorization-protocol-name
#(authorization-protocol-name-len char)))
(array (authorization-protocol-data
#(authorization-protocol-data-len char))))
((fixed (visual-id VISUALID)
(class CARD8)
(bits-per-rgb-value CARD8)
(colormap-entries CARD16)
(red-mask CARD32)
(green-mask CARD32)
(blue-mask CARD32)
(-pad #(4 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(red CARD16)
(green CARD16)
(blue CARD16)
(-pad #(2 BYTE))
(pixel CARD32)
(%pad #(12 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)
(red CARD16)
(green CARD16)
(blue CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(pixels-len CARD16)
(masks-len CARD16)
(-pad #(20 BYTE)))
(array (pixels #(pixels-len CARD32)))
(array (masks #(masks-len CARD32))))
((fixed (%major-opcode CARD8)
(contiguous BOOL)
(%length CARD16)
(cmap COLORMAP)
(colors CARD16)
(planes CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(pixels-len CARD16)
(-pad #(2 BYTE))
(red-mask CARD32)
(green-mask CARD32)
(blue-mask CARD32)
(-pad #(8 BYTE)))
(array (pixels #(pixels-len CARD32))))
((fixed (%major-opcode CARD8)
(contiguous BOOL)
(%length CARD16)
(cmap COLORMAP)
(colors CARD16)
(reds CARD16)
(greens CARD16)
(blues CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(pixel CARD32)
(exact-red CARD16)
(exact-green CARD16)
(exact-blue CARD16)
(visual-red CARD16)
(visual-green CARD16)
(visual-blue CARD16)
(%pad #(8 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)
(name-len CARD16))
(array (name #(name-len char))))
((fixed (%major-opcode CARD8)
(mode CARD8)
(%length CARD16)
(time TIMESTAMP)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(maximum-request-length CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%code CARD8)
(detail BUTTON)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(same-screen BOOL)
(%pad #(1 BYTE))))
((fixed (%code CARD8)
(detail BUTTON)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(same-screen BOOL)
(%pad #(1 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cursor CURSOR)
(time TIMESTAMP)
(event-mask CARD16)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(gc GCONTEXT)
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(mode CARD8)
(%length CARD16)
(family CARD8)
(-pad #(1 BYTE))
(address-len CARD16))
(array (address #(address-len char))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(keycode-count CARD8)
(%length CARD16)
(first-keycode KEYCODE)
(keysyms-per-keycode CARD8))
(array (keysyms
#((/ (* keycode-count keysyms-per-keycode) 4)
KEYSYM))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(acceleration-numerator INT16)
(acceleration-denominator INT16)
(threshold INT16)
(do-acceleration BOOL)
(do-threshold BOOL)))
((fixed (%major-opcode CARD8)
(mode CARD8)
(%length CARD16)
(window WINDOW)
(property ATOM)
(type ATOM)
(format CARD8)
(-pad #(3 BYTE))
(data-len CARD32))
(array (data #((/ (/ (* data-len format) 8) #f) void))))
((fixed (%major-opcode CARD8)
(mode BYTE)
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(-pad #(4 BYTE))
(place BYTE)
(%pad #(15 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(-pad #(4 BYTE))
(place BYTE)
(%pad #(15 BYTE))))
((fixed (%major-opcode CARD8)
(direction CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(exposures BOOL)
(%length CARD16)
(window WINDOW)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)))
((fixed (%code CARD8)
(format CARD8)
(%sequence-number CARD16)
(window WINDOW)
(type ATOM))
(array (data #((assq-ref
'((8 . #(20 CARD8))
(16 . #(10 CARD16))
(32 . #(5 CARD32)))
format)
ClientMessageData))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(font FONT)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(window WINDOW)
(colormap COLORMAP)
(new BOOL)
(state BYTE)
(%pad #(18 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(overlay-win WINDOW)
(-pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(pixmap PIXMAP)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD32)
(minor-version CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD32)
(client-minor-version CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(update CARD8)
(-pad #(3 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(update CARD8)
(-pad #(3 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(update CARD8)
(-pad #(3 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(update CARD8)
(-pad #(3 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(above-sibling WINDOW)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(border-width CARD16)
(override-redirect BOOL)
(%pad #(5 BYTE))))
((fixed (%code CARD8)
(stack-mode BYTE)
(%sequence-number CARD16)
(parent WINDOW)
(window WINDOW)
(sibling WINDOW)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(border-width CARD16)
(value-mask CARD16)
(%pad #(4 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)
(value-mask CARD16))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(requestor WINDOW)
(selection ATOM)
(target ATOM)
(property ATOM)
(time TIMESTAMP)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(src-drawable DRAWABLE)
(dst-drawable DRAWABLE)
(gc GCONTEXT)
(src-x INT16)
(src-y INT16)
(dst-x INT16)
(dst-y INT16)
(width CARD16)
(height CARD16)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(mid COLORMAP)
(src-cmap COLORMAP)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(src-gc GCONTEXT)
(dst-gc GCONTEXT)
(value-mask CARD32)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(src-drawable DRAWABLE)
(dst-drawable DRAWABLE)
(gc GCONTEXT)
(src-x INT16)
(src-y INT16)
(dst-x INT16)
(dst-y INT16)
(width CARD16)
(height CARD16)
(bit-plane CARD32)))
((fixed (%major-opcode CARD8)
(alloc BYTE)
(%length CARD16)
(mid COLORMAP)
(window WINDOW)
(visual VISUALID)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cid CURSOR)
(source PIXMAP)
(mask PIXMAP)
(fore-red CARD16)
(fore-green CARD16)
(fore-blue CARD16)
(back-red CARD16)
(back-green CARD16)
(back-blue CARD16)
(x CARD16)
(y CARD16)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cid GCONTEXT)
(drawable DRAWABLE)
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cid CURSOR)
(source-font FONT)
(mask-font FONT)
(source-char CARD16)
(mask-char CARD16)
(fore-red CARD16)
(fore-green CARD16)
(fore-blue CARD16)
(back-red CARD16)
(back-green CARD16)
(back-blue CARD16)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(parent WINDOW)
(window WINDOW)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(border-width CARD16)
(override-redirect BOOL)
(%pad #(9 BYTE))))
((fixed (%major-opcode CARD8)
(depth CARD8)
(%length CARD16)
(pid PIXMAP)
(drawable DRAWABLE)
(width CARD16)
(height CARD16)))
((fixed (%major-opcode CARD8)
(depth CARD8)
(%length CARD16)
(wid WINDOW)
(parent WINDOW)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(border-width CARD16)
(class CARD16)
(visual VISUALID)
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(damage (DAMAGE DAMAGE))
(drawable DRAWABLE)
(level CARD8)
(-pad #(3 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(damage (DAMAGE DAMAGE))))
((fixed (%code CARD8)
(level CARD8)
(%sequence-number CARD16)
(drawable DRAWABLE)
(damage (DAMAGE DAMAGE))
(timestamp TIMESTAMP)
(area RECTANGLE)
(geometry RECTANGLE)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD32)
(minor-version CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD32)
(client-minor-version CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(damage (DAMAGE DAMAGE))
(repair (XFIXES REGION))
(parts (XFIXES REGION))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(capable BOOL)
(%pad #(23 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(power-level CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(standby-timeout CARD16)
(suspend-timeout CARD16)
(off-timeout CARD16)
(%pad #(18 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(server-major-version CARD16)
(server-minor-version CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD16)
(client-minor-version CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(power-level CARD16)
(state BOOL)
(%pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(standby-timeout CARD16)
(suspend-timeout CARD16)
(off-timeout CARD16)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)
(property ATOM)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(detail BYTE)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(mode BYTE)
(same-screen-focus BYTE)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(window WINDOW)
(x CARD16)
(y CARD16)
(width CARD16)
(height CARD16)
(count CARD16)
(%pad #(14 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(shape CARD8)
(coordinate-mode CARD8))
(array (points #(#f POINT))))
((fixed (%code CARD8)
(detail BYTE)
(%sequence-number CARD16)
(event WINDOW)
(mode BYTE)
(%pad #(23 BYTE))))
((fixed (%code CARD8)
(detail BYTE)
(%sequence-number CARD16)
(event WINDOW)
(mode BYTE)
(%pad #(23 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)
(plane-mask CARD32))
(array (pixels #(#f CARD32))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cursor CURSOR)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(gc GCONTEXT)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(pixmap PIXMAP)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ret-val (GLX BOOL32))
(-pad #(20 BYTE)))
(array (data #(#f BOOL))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(n INT32))
(array (textures #(n CARD32))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable (GLX DRAWABLE))
(num-attribs CARD32))
(array (attribs #((/ (* num-attribs 2) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(major-version CARD32)
(minor-version CARD32)
(str-len CARD32))
(array (string #(str-len CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(src (GLX CONTEXT))
(dest (GLX CONTEXT))
(mask CARD32)
(src-context-tag (GLX CONTEXT-TAG))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (GLX CONTEXT))
(visual VISUALID)
(screen CARD32)
(share-list (GLX CONTEXT))
(is-direct BOOL)
(-pad #(3 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(visual VISUALID)
(pixmap PIXMAP)
(glx-pixmap (GLX PIXMAP))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (GLX CONTEXT))
(fbconfig CARD32)
(screen CARD32)
(render-type CARD32)
(share-list CARD32)
(is-direct BOOL)
(reserved1 CARD8)
(reserved2 CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(fbconfig (GLX FBCONFIG))
(pbuffer (GLX PBUFFER))
(num-attribs CARD32))
(array (attribs #((/ (* num-attribs 2) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(fbconfig CARD32)
(pixmap PIXMAP)
(glx-pixmap (GLX PIXMAP))
(num-attribs CARD32))
(array (attribs #((/ (* num-attribs 2) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(fbconfig (GLX FBCONFIG))
(window WINDOW)
(glx-window (GLX WINDOW))
(num-attribs CARD32))
(array (attribs #((/ (* num-attribs 2) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(list CARD32)
(range INT32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(n INT32))
(array (ids #(n CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(n INT32))
(array (textures #(n CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(glxwindow (GLX WINDOW))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (GLX CONTEXT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(glx-pixmap (GLX PIXMAP))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(pbuffer (GLX PBUFFER))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(glx-pixmap (GLX PIXMAP))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(size INT32)
(type INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ret-val CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(range INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (data #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(n INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (data #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(n INT32)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum BOOL)
(-pad #(15 BYTE)))
(array (data #(n BOOL))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(pname INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (data #(#f (GLX FLOAT64)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(plane INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(8 BYTE))
(width INT32)
(-pad #(12 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(8 BYTE))
(size INT32)
(-pad #(12 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(level INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(8 BYTE))
(width INT32)
(height INT32)
(-pad #(8 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT64))
(-pad #(8 BYTE)))
(array (data #(n (GLX FLOAT64)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-attribs CARD32)
(-pad #(20 BYTE)))
(array (attribs #((/ (* num-attribs 2) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable (GLX DRAWABLE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(error INT32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-FB-configs CARD32)
(num-properties CARD32)
(-pad #(16 BYTE)))
(array (property-list #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(8 BYTE))
(width INT32)
(-pad #(12 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)
(reset BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(light CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(light CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT64))
(-pad #(8 BYTE)))
(array (data #(n (GLX FLOAT64)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(query CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(query CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(query CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(face CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(face CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)
(reset BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(map CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum CARD32)
(-pad #(12 BYTE)))
(array (data #(n CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(map CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum CARD16)
(-pad #(16 BYTE)))
(array (data #(n CARD16))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(map CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(lsb-first BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(id CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum CARD32)
(-pad #(12 BYTE)))
(array (data #(n CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(id CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(8 BYTE))
(row-w INT32)
(col-h INT32)
(-pad #(8 BYTE)))
(array (rows-and-cols #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(-pad #(16 BYTE)))
(array (string #(n CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(name CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT64))
(-pad #(8 BYTE)))
(array (data #(n (GLX FLOAT64)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(coord CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(coord CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(coord CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(8 BYTE))
(width INT32)
(height INT32)
(depth INT32)
(-pad #(4 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(level INT32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(level INT32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(level INT32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum (GLX FLOAT32))
(-pad #(12 BYTE)))
(array (data #(n (GLX FLOAT32)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(datum INT32)
(-pad #(12 BYTE)))
(array (data #(n INT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(target CARD32)
(pname CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-visuals CARD32)
(num-properties CARD32)
(-pad #(16 BYTE)))
(array (property-list #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(is-direct BOOL)
(-pad #(23 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (GLX CONTEXT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ret-val (GLX BOOL32))
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(list CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ret-val (GLX BOOL32))
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(id CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ret-val (GLX BOOL32))
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(texture CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(context-tag (GLX CONTEXT-TAG))
(-pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(old-context-tag (GLX CONTEXT-TAG))
(drawable (GLX DRAWABLE))
(read-drawable (GLX DRAWABLE))
(context (GLX CONTEXT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(context-tag (GLX CONTEXT-TAG))
(-pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable (GLX DRAWABLE))
(context (GLX CONTEXT))
(old-context-tag (GLX CONTEXT-TAG))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(list CARD32)
(mode CARD32)))
((fixed (%code CARD8)
(event-type CARD16)
(%sequence-number CARD16)
(draw-type CARD16)
(drawable (GLX DRAWABLE))
(b-mask CARD32)
(aux-buffer CARD16)
(x CARD16)
(y CARD16)
(width CARD16)
(height CARD16)
(count CARD16)
(-pad #(4 BYTE))
(%pad #(1 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(pname CARD32)
(datum (GLX FLOAT32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(pname CARD32)
(datum INT32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-attribs CARD32)
(-pad #(20 BYTE)))
(array (attribs #((/ (* num-attribs 2) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (GLX CONTEXT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(n CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(4 BYTE))
(str-len CARD32)
(-pad #(16 BYTE)))
(array (string #(str-len CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(name CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD32)
(minor-version CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(major-version CARD32)
(minor-version CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(x INT32)
(y INT32)
(width INT32)
(height INT32)
(format CARD32)
(type CARD32)
(swap-bytes BOOL)
(lsb-first BOOL)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(request-num CARD16)
(request-total CARD16)
(data-len CARD32))
(array (data #(data-len BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ret-val CARD32)
(n CARD32)
(new-mode CARD32)
(-pad #(12 BYTE)))
(array (data #(n CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(mode CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(size INT32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(drawable (GLX DRAWABLE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(-pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))
(font FONT)
(first CARD32)
(count CARD32)
(list-base CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(vendor-code CARD32)
(context-tag (GLX CONTEXT-TAG)))
(array (data #(#f BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(retval CARD32)
(data1 #(24 BYTE)))
(array (data2 #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(vendor-code CARD32)
(context-tag (GLX CONTEXT-TAG)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-tag (GLX CONTEXT-TAG))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(name-len CARD16)
(-pad #(22 BYTE)))
(array (name #(name-len CARD8))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(atom ATOM)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(path-len CARD16)
(-pad #(22 BYTE)))
(array (path #(path-len STR))))
((fixed (%status CARD8)
(depth CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(root WINDOW)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(border-width CARD16)
(%pad #(10 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)))
((fixed (%status CARD8)
(depth CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(visual VISUALID)
(-pad #(20 BYTE)))
(array (data #((/ (* length 4) 1) BYTE))))
((fixed (%major-opcode CARD8)
(format CARD8)
(%length CARD16)
(drawable DRAWABLE)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(plane-mask CARD32)))
((fixed (%status CARD8)
(revert-to CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(focus WINDOW)
(%pad #(20 BYTE))))
((fixed (%status CARD8)
(global-auto-repeat BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(led-mask CARD32)
(key-click-percent CARD8)
(bell-percent CARD8)
(bell-pitch CARD16)
(bell-duration CARD16)
(-pad #(2 BYTE))
(auto-repeats #(32 CARD8))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)))
((fixed (%status CARD8)
(keysyms-per-keycode BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (keysyms #((/ (* length 4) 4) KEYSYM))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(first-keycode KEYCODE)
(count CARD8)))
((fixed (%status CARD8)
(keycodes-per-modifier CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (keycodes
#((/ (* keycodes-per-modifier 8) 1) KEYCODE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(events-len CARD32)
(-pad #(20 BYTE)))
(array (events #(events-len TIMECOORD))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)
(start TIMESTAMP)
(stop TIMESTAMP)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(acceleration-numerator CARD16)
(acceleration-denominator CARD16)
(threshold CARD16)
(%pad #(18 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)))
((fixed (%status CARD8)
(map-len CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (map #(map-len CARD8))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)))
((fixed (%status CARD8)
(format CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(type ATOM)
(bytes-after CARD32)
(value-len CARD32)
(-pad #(12 BYTE)))
(array (value #(value-len void))))
((fixed (%major-opcode CARD8)
(delete BOOL)
(%length CARD16)
(window WINDOW)
(property ATOM)
(type ATOM)
(long-offset CARD32)
(long-length CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(timeout CARD16)
(interval CARD16)
(prefer-blanking BYTE)
(allow-exposures BYTE)
(%pad #(18 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(owner WINDOW)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(selection ATOM)))
((fixed (%status CARD8)
(backing-store CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(visual VISUALID)
(class CARD16)
(bit-gravity CARD8)
(win-gravity CARD8)
(backing-planes CARD32)
(backing-pixel CARD32)
(save-under BOOL)
(map-is-installed BOOL)
(map-state CARD8)
(override-redirect BOOL)
(colormap COLORMAP)
(all-event-masks CARD32)
(your-event-mask CARD32)
(do-not-propagate-mask CARD16)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(owner-events BOOL)
(%length CARD16)
(grab-window WINDOW)
(event-mask CARD16)
(pointer-mode CARD8)
(keyboard-mode CARD8)
(confine-to WINDOW)
(cursor CURSOR)
(button CARD8)
(-pad #(1 BYTE))
(modifiers CARD16)))
((fixed (%major-opcode CARD8)
(owner-events BOOL)
(%length CARD16)
(grab-window WINDOW)
(modifiers CARD16)
(key KEYCODE)
(pointer-mode CARD8)
(keyboard-mode CARD8)))
((fixed (%status CARD8)
(status BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(owner-events BOOL)
(%length CARD16)
(grab-window WINDOW)
(time TIMESTAMP)
(pointer-mode BYTE)
(keyboard-mode BYTE)))
((fixed (%status CARD8)
(status BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(owner-events BOOL)
(%length CARD16)
(grab-window WINDOW)
(event-mask CARD16)
(pointer-mode BYTE)
(keyboard-mode BYTE)
(confine-to WINDOW)
(cursor CURSOR)
(time TIMESTAMP)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(drawable DRAWABLE)
(x CARD16)
(y CARD16)
(width CARD16)
(height CARD16)
(minor-opcode CARD16)
(count CARD16)
(major-opcode CARD8)
(%pad #(11 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(x INT16)
(y INT16)
(%pad #(16 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(string-len BYTE)
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(x INT16)
(y INT16))
(array (string #(string-len CHAR2B))))
((fixed (%major-opcode CARD8)
(string-len BYTE)
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(x INT16)
(y INT16))
(array (string #(string-len char))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(atom ATOM)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(only-if-exists BOOL)
(%length CARD16)
(name-len CARD16)
(-pad #(2 BYTE)))
(array (name #(name-len char))))
((fixed (%code CARD8)
(detail KEYCODE)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(same-screen BOOL)
(%pad #(1 BYTE))))
((fixed (%code CARD8)
(detail KEYCODE)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(same-screen BOOL)
(%pad #(1 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(resource CARD32)))
((fixed (%code CARD8)
(detail BYTE)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(mode BYTE)
(same-screen-focus BYTE)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(names-len CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (names #(names-len STR))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(names-len CARD16)
(-pad #(22 BYTE)))
(array (names #(names-len STR))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(max-names CARD16)
(pattern-len CARD16))
(array (pattern #(pattern-len char))))
((fixed (%status CARD8)
(name-len CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(min-bounds CHARINFO)
(-pad #(4 BYTE))
(max-bounds CHARINFO)
(-pad #(4 BYTE))
(min-char-or-byte2 CARD16)
(max-char-or-byte2 CARD16)
(default-char CARD16)
(properties-len CARD16)
(draw-direction BYTE)
(min-byte1 CARD8)
(max-byte1 CARD8)
(all-chars-exist BOOL)
(font-ascent INT16)
(font-descent INT16)
(replies-hint CARD32))
(array (properties #(properties-len FONTPROP)))
(array (name #(name-len char))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(max-names CARD16)
(pattern-len CARD16))
(array (pattern #(pattern-len char))))
((fixed (%status CARD8)
(mode BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(hosts-len CARD16)
(-pad #(22 BYTE)))
(array (hosts #(hosts-len HOST))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(cmaps-len CARD16)
(-pad #(22 BYTE)))
(array (cmaps #(cmaps-len COLORMAP))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(atoms-len CARD16)
(-pad #(22 BYTE)))
(array (atoms #(atoms-len ATOM))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(exact-red CARD16)
(exact-green CARD16)
(exact-blue CARD16)
(visual-red CARD16)
(visual-green CARD16)
(visual-blue CARD16)
(%pad #(12 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)
(name-len CARD16))
(array (name #(name-len char))))
((fixed (%code CARD8)
(code CARD8)
(%sequence-number CARD16)
(state BYTE)
(sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(window WINDOW)
(kind BYTE)
(forced BOOL)
(-pad #(14 BYTE))))
((fixed (%status CARD8)
(state CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(saver-window WINDOW)
(ms-until-server CARD32)
(ms-since-user-input CARD32)
(event-mask CARD32)
(kind BYTE)
(-pad #(7 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(server-major-version CARD16)
(server-minor-version CARD16)
(-pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD8)
(client-minor-version CARD8)
(-pad #(2 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(event-mask CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(border-width CARD16)
(class BYTE)
(depth CARD8)
(visual VISUALID)
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(suspend BOOL)
(-pad #(3 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(shmseg (MIT-SHM SEG))
(shmid CARD32)
(read-only BOOL)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(drawable DRAWABLE)
(shmseg (MIT-SHM SEG))
(minor-event CARD16)
(major-event BYTE)
(-pad #(1 BYTE))
(offset CARD32)
(%pad #(12 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(pid PIXMAP)
(drawable DRAWABLE)
(width CARD16)
(height CARD16)
(depth CARD8)
(-pad #(3 BYTE))
(shmseg (MIT-SHM SEG))
(offset CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(shmseg (MIT-SHM SEG))))
((fixed (%status CARD8)
(depth CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(visual VISUALID)
(size CARD32)
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(plane-mask CARD32)
(format CARD8)
(-pad #(3 BYTE))
(shmseg (MIT-SHM SEG))
(offset CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(total-width CARD16)
(total-height CARD16)
(src-x CARD16)
(src-y CARD16)
(src-width CARD16)
(src-height CARD16)
(dst-x INT16)
(dst-y INT16)
(depth CARD8)
(format CARD8)
(send-event CARD8)
(-pad #(1 BYTE))
(shmseg (MIT-SHM SEG))
(offset CARD32)))
((fixed (%status CARD8)
(shared-pixmaps BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD16)
(minor-version CARD16)
(uid CARD16)
(gid CARD16)
(pixmap-format CARD8)
(%pad #(15 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(override-redirect BOOL)
(%pad #(19 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(parent WINDOW)
(window WINDOW)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(request BYTE)
(first-keycode KEYCODE)
(count CARD8)
(%pad #(25 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(detail BYTE)
(%sequence-number CARD16)
(time TIMESTAMP)
(root WINDOW)
(event WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(event-x INT16)
(event-y INT16)
(state CARD16)
(same-screen BOOL)
(%pad #(1 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(drawable DRAWABLE)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(fid FONT)
(name-len CARD16))
(array (name #(name-len char))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (arcs #(#f ARC))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (arcs #(#f ARC))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(coordinate-mode BYTE)
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (points #(#f POINT))))
((fixed (%major-opcode CARD8)
(coordinate-mode BYTE)
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (points #(#f POINT))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT))
(array (segments #(#f SEGMENT))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(x INT16)
(y INT16))
(array (items #(#f BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(x INT16)
(y INT16))
(array (items #(#f BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(window WINDOW)
(atom ATOM)
(time TIMESTAMP)
(state BYTE)
(%pad #(15 BYTE))))
((fixed (%major-opcode CARD8)
(format CARD8)
(%length CARD16)
(drawable DRAWABLE)
(gc GCONTEXT)
(width CARD16)
(height CARD16)
(dst-x INT16)
(dst-y INT16)
(left-pad CARD8)
(depth CARD8))
(array (data #(#f BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(width CARD16)
(height CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(class CARD8)
(%length CARD16)
(drawable DRAWABLE)
(width CARD16)
(height CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(colors-len CARD16)
(-pad #(22 BYTE)))
(array (colors #(colors-len RGB))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP))
(array (pixels #(#f CARD32))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(present BOOL)
(major-opcode CARD8)
(first-event CARD8)
(first-error CARD8)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(name-len CARD16))
(array (name #(name-len char))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(min-bounds CHARINFO)
(-pad #(4 BYTE))
(max-bounds CHARINFO)
(-pad #(4 BYTE))
(min-char-or-byte2 CARD16)
(max-char-or-byte2 CARD16)
(default-char CARD16)
(properties-len CARD16)
(draw-direction BYTE)
(min-byte1 CARD8)
(max-byte1 CARD8)
(all-chars-exist BOOL)
(font-ascent INT16)
(font-descent INT16)
(char-infos-len CARD32))
(array (properties #(properties-len FONTPROP)))
(array (char-infos #(char-infos-len CHARINFO))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(font FONTABLE)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(keys #(32 CARD8))))
((fixed (%status CARD8)
(same-screen BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(root WINDOW)
(child WINDOW)
(root-x INT16)
(root-y INT16)
(win-x INT16)
(win-y INT16)
(mask CARD16)
(%pad #(6 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(draw-direction BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(font-ascent INT16)
(font-descent INT16)
(overall-ascent INT16)
(overall-descent INT16)
(overall-width INT32)
(overall-left INT32)
(overall-right INT32)
(%pad #(4 BYTE))))
((fixed (%major-opcode CARD8)
(odd-length BOOL (logand string-len 1))
(%length CARD16)
(font FONTABLE))
(array (string #(#f CHAR2B))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(root WINDOW)
(parent WINDOW)
(children-len CARD16)
(-pad #(14 BYTE)))
(array (children #(children-len WINDOW))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(rotations CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(root WINDOW)
(timestamp TIMESTAMP)
(config-timestamp TIMESTAMP)
(nSizes CARD16)
(sizeID CARD16)
(rotation INT16)
(rate CARD16)
(nInfo CARD16)
(-pad #(2 BYTE)))
(array (sizes #(nSizes (RANDR ScreenSize))))
(array (rates #((/ (- nInfo nSizes) #f) RefreshRates))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD32)
(minor-version CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(major-version CARD32)
(minor-version CARD32)))
((fixed (%code CARD8)
(rotation CARD8)
(%sequence-number CARD16)
(timestamp TIMESTAMP)
(config-timestamp TIMESTAMP)
(root WINDOW)
(request-window WINDOW)
(sizeID CARD16)
(subpixel-order CARD16)
(width INT16)
(height INT16)
(mwidth INT16)
(mheight INT16)))
((fixed (width INT16)
(height INT16)
(mwidth INT16)
(mheight INT16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(enable CARD16)
(-pad #(2 BYTE))))
((fixed (%status CARD8)
(status CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(new-timestamp TIMESTAMP)
(config-timestamp TIMESTAMP)
(root WINDOW)
(subpixel-order CARD16)
(-pad #(10 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(timestamp TIMESTAMP)
(config-timestamp TIMESTAMP)
(sizeID CARD16)
(rotation INT16)
(rate CARD16)
(-pad #(2 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(invalid-record CARD32)
(%pad #(24 BYTE))))
((fixed (client-resource (RECORD ClientSpec))
(num-ranges CARD32))
(array (ranges #(num-ranges (RECORD Range)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))
(element-header (RECORD ElementHeader))
(-pad #(3 BYTE))
(num-client-specs CARD32)
(num-ranges CARD32))
(array (client-specs
#(num-client-specs (RECORD ClientSpec))))
(array (ranges #(num-ranges (RECORD Range)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))))
((fixed (%status CARD8)
(category CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(element-header (RECORD ElementHeader))
(client-swapped BOOL)
(-pad #(2 BYTE))
(xid-base CARD32)
(server-time CARD32)
(rec-sequence-num CARD32)
(-pad #(8 BYTE)))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))))
((fixed (%status CARD8)
(enabled BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(element-header (RECORD ElementHeader))
(-pad #(3 BYTE))
(num-intercepted-clients CARD32)
(-pad #(16 BYTE)))
(array (intercepted-clients
#(num-intercepted-clients ClientInfo))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD16)
(minor-version CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(major-version CARD16)
(minor-version CARD16)))
((fixed (core-requests (RECORD Range8))
(core-replies (RECORD Range8))
(ext-requests (RECORD ExtRange))
(ext-replies (RECORD ExtRange))
(delivered-events (RECORD Range8))
(device-events (RECORD Range8))
(errors (RECORD Range8))
(client-started BOOL)
(client-died BOOL)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))
(element-header (RECORD ElementHeader))
(-pad #(3 BYTE))
(num-client-specs CARD32)
(num-ranges CARD32))
(array (client-specs
#(num-client-specs (RECORD ClientSpec))))
(array (ranges #(num-ranges (RECORD Range)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (RECORD CONTEXT))
(num-client-specs CARD32))
(array (client-specs
#(num-client-specs (RECORD ClientSpec)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(glyphset (RENDER GLYPHSET))
(glyphs-len CARD32))
(array (glyphids #(glyphs-len CARD32)))
(array (glyphs #(glyphs-len (RENDER GLYPHINFO))))
(array (data #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(x-off INT16)
(y-off INT16))
(array (traps #(#f (RENDER TRAP)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(mask (RENDER PICTURE))
(dst (RENDER PICTURE))
(src-x INT16)
(src-y INT16)
(mask-x INT16)
(mask-y INT16)
(dst-x INT16)
(dst-y INT16)
(width CARD16)
(height CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(glyphset (RENDER GLYPHSET))
(src-x INT16)
(src-y INT16))
(array (glyphcmds #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(glyphset (RENDER GLYPHSET))
(src-x INT16)
(src-y INT16))
(array (glyphcmds #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(glyphset (RENDER GLYPHSET))
(src-x INT16)
(src-y INT16))
(array (glyphcmds #(#f BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cid CURSOR))
(array (cursors #(#f (RENDER ANIMCURSORELT)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(center (RENDER POINTFIX))
(angle (RENDER FIXED))
(num-stops CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cid CURSOR)
(source (RENDER PICTURE))
(x CARD16)
(y CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(gsid (RENDER GLYPHSET))
(format (RENDER PICTFORMAT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(p1 (RENDER POINTFIX))
(p2 (RENDER POINTFIX))
(num-stops CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(pid (RENDER PICTURE))
(drawable DRAWABLE)
(format (RENDER PICTFORMAT))
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(inner (RENDER POINTFIX))
(outer (RENDER POINTFIX))
(inner-radius (RENDER FIXED))
(outer-radius (RENDER FIXED))
(num-stops CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(color (RENDER COLOR))))
((fixed (red-shift CARD16)
(red-mask CARD16)
(green-shift CARD16)
(green-mask CARD16)
(blue-shift CARD16)
(blue-mask CARD16)
(alpha-shift CARD16)
(alpha-mask CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(dst (RENDER PICTURE))
(color (RENDER COLOR)))
(array (rects #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(glyphset (RENDER GLYPHSET))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(glyphset (RENDER GLYPHSET)))
(array (glyphs #(#f (RENDER GLYPH)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))))
((fixed (width CARD16)
(height CARD16)
(x INT16)
(y INT16)
(x-off INT16)
(y-off INT16)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (pixel CARD32)
(red CARD16)
(green CARD16)
(blue CARD16)
(alpha CARD16)))
((fixed (depth CARD8)
(-pad #(1 BYTE))
(num-visuals CARD16)
(-pad #(4 BYTE)))
(array (visuals #(num-visuals (RENDER PICTVISUAL)))))
((fixed (id (RENDER PICTFORMAT))
(type CARD8)
(depth CARD8)
(-pad #(2 BYTE))
(direct (RENDER DIRECTFORMAT))
(colormap COLORMAP)))
((fixed (num-depths CARD32)
(fallback (RENDER PICTFORMAT)))
(array (depths #(num-depths PICTDEPTH))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-aliases CARD32)
(num-filters CARD32)
(-pad #(16 BYTE)))
(array (aliases #(num-aliases CARD16)))
(array (filters #(num-filters STR))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-formats CARD32)
(num-screens CARD32)
(num-depths CARD32)
(num-visuals CARD32)
(num-subpixel CARD32)
(-pad #(4 BYTE)))
(array (formats #(num-formats (RENDER PICTFORMINFO))))
(array (screens #(num-screens PICTSCREEN)))
(array (subpixels #(num-subpixel CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-values CARD32)
(-pad #(20 BYTE)))
(array (values #(num-values (RENDER INDEXVALUE)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(format (RENDER PICTFORMAT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD32)
(minor-version CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD32)
(client-minor-version CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(gsid (RENDER GLYPHSET))
(existing (RENDER GLYPHSET))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(clip-x-origin INT16)
(clip-y-origin INT16))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(filter-len CARD16))
(array (filter #(filter-len char)))
(array (values #(#f (RENDER FIXED)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(transform (RENDER TRANSFORM))))
((fixed (matrix11 (RENDER FIXED))
(matrix12 (RENDER FIXED))
(matrix13 (RENDER FIXED))
(matrix21 (RENDER FIXED))
(matrix22 (RENDER FIXED))
(matrix23 (RENDER FIXED))
(matrix31 (RENDER FIXED))
(matrix32 (RENDER FIXED))
(matrix33 (RENDER FIXED))))
((fixed (top (RENDER FIXED))
(bottom (RENDER FIXED))
(left (RENDER LINEFIX))
(right (RENDER LINEFIX))))
((fixed (p1 (RENDER POINTFIX))
(p2 (RENDER POINTFIX))
(p3 (RENDER POINTFIX))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(src-x INT16)
(src-y INT16))
(array (traps #(#f (RENDER TRAPEZOID)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(src-x INT16)
(src-y INT16))
(array (points #(#f (RENDER POINTFIX)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(src-x INT16)
(src-y INT16))
(array (points #(#f (RENDER POINTFIX)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(op CARD8)
(-pad #(3 BYTE))
(src (RENDER PICTURE))
(dst (RENDER PICTURE))
(mask-format (RENDER PICTFORMAT))
(src-x INT16)
(src-y INT16))
(array (triangles #(#f (RENDER TRIANGLE)))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cursor CURSOR)
(fore-red CARD16)
(fore-green CARD16)
(fore-blue CARD16)
(back-red CARD16)
(back-green CARD16)
(back-blue CARD16)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(parent WINDOW)
(x INT16)
(y INT16)
(override-redirect BOOL)
(%pad #(11 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)
(parent WINDOW)
(x INT16)
(y INT16)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(window WINDOW)
(width CARD16)
(height CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(window WINDOW)
(%length CARD16)
(atoms-len CARD16)
(delta INT16))
(array (atoms #(atoms-len ATOM))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(operation (SHAPE OP))
(destination-kind (SHAPE KIND))
(source-kind (SHAPE KIND))
(-pad #(1 BYTE))
(destination-window WINDOW)
(x-offset INT16)
(y-offset INT16)
(source-window WINDOW)))
((fixed (%status CARD8)
(ordering BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(rectangles-len CARD32))
(array (rectangles #(rectangles-len RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(source-kind (SHAPE KIND))))
((fixed (%status CARD8)
(enabled BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(destination-window WINDOW)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(operation (SHAPE OP))
(destination-kind (SHAPE KIND))
(-pad #(2 BYTE))
(destination-window WINDOW)
(x-offset INT16)
(y-offset INT16)
(source-bitmap PIXMAP)))
((fixed (%code CARD8)
(shape-kind (SHAPE KIND))
(%sequence-number CARD16)
(affected-window WINDOW)
(extents-x INT16)
(extents-y INT16)
(extents-width CARD16)
(extents-height CARD16)
(server-time TIMESTAMP)
(shaped BOOL)
(%pad #(11 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(destination-kind (SHAPE KIND))
(-pad #(3 BYTE))
(destination-window WINDOW)
(x-offset INT16)
(y-offset INT16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(bounding-shaped BOOL)
(clip-shaped BOOL)
(-pad #(2 BYTE))
(bounding-shape-extents-x INT16)
(bounding-shape-extents-y INT16)
(bounding-shape-extents-width CARD16)
(bounding-shape-extents-height CARD16)
(clip-shape-extents-x INT16)
(clip-shape-extents-y INT16)
(clip-shape-extents-width CARD16)
(clip-shape-extents-height CARD16)
(%pad #(4 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(destination-window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD16)
(minor-version CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(operation (SHAPE OP))
(destination-kind (SHAPE KIND))
(ordering BYTE)
(-pad #(1 BYTE))
(destination-window WINDOW)
(x-offset INT16)
(y-offset INT16))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(destination-window WINDOW)
(enable BOOL)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-alarm CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(kind CARD8)
(%sequence-number CARD16)
(alarm (SYNC ALARM))
(counter-value (SYNC INT64))
(alarm-value (SYNC INT64))
(timestamp TIMESTAMP)
(%pad #(4 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16))
(array (wait-list #(#f (SYNC WAITCONDITION)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(id (SYNC ALARM))
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(counter (SYNC COUNTER))
(amount (SYNC INT64))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-counter CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(kind CARD8)
(%sequence-number CARD16)
(counter (SYNC COUNTER))
(wait-value (SYNC INT64))
(counter-value (SYNC INT64))
(timestamp TIMESTAMP)
(count CARD16)
(destroyed BOOL)
(%pad #(1 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(id (SYNC ALARM))
(value-mask CARD32))
(array (value-list #(value-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(id (SYNC COUNTER))
(initial-value (SYNC INT64))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(alarm (SYNC ALARM))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(counter (SYNC COUNTER))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(priority INT32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(id CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD8)
(minor-version CARD8)
(%pad #(22 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(counters-len CARD32)
(-pad #(20 BYTE)))
(array (counters #(counters-len SYSTEMCOUNTER))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(trigger (SYNC TRIGGER))
(delta (SYNC INT64))
(events BOOL)
(state (SYNC ALARMSTATE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(alarm (SYNC ALARM))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(counter-value (SYNC INT64))
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(counter (SYNC COUNTER))))
((fixed (counter (SYNC COUNTER))
(resolution (SYNC INT64))
(name-len CARD16))
(array (name #(name-len CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(counter (SYNC COUNTER))
(value (SYNC INT64))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(id CARD32)
(priority INT32)))
((fixed (counter (SYNC COUNTER))
(wait-type (SYNC VALUETYPE))
(wait-value (SYNC INT64))
(test-type (SYNC TESTTYPE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(time TIMESTAMP)
(owner WINDOW)
(selection ATOM)
(%pad #(16 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(time TIMESTAMP)
(requestor WINDOW)
(selection ATOM)
(target ATOM)
(property ATOM)
(%pad #(8 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(time TIMESTAMP)
(owner WINDOW)
(requestor WINDOW)
(selection ATOM)
(target ATOM)
(property ATOM)
(%pad #(4 BYTE))))
((fixed (%major-opcode CARD8)
(propagate BOOL)
(%length CARD16)
(destination WINDOW)
(event-mask CARD32)
(event #(32 char))))
((fixed (%major-opcode CARD8)
(ordering BYTE)
(%length CARD16)
(gc GCONTEXT)
(clip-x-origin INT16)
(clip-y-origin INT16))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(gc GCONTEXT)
(dash-offset CARD16)
(dashes-len CARD16))
(array (dashes #(dashes-len CARD8))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(font-qty CARD16))
(array (path #(#f char))))
((fixed (%major-opcode CARD8)
(revert-to CARD8)
(%length CARD16)
(focus WINDOW)
(time TIMESTAMP)))
((fixed (%status CARD8)
(status BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(keycodes-per-modifier CARD8)
(%length CARD16))
(array (keycodes
#((/ (* keycodes-per-modifier 8) 1) KEYCODE))))
((fixed (%status CARD8)
(status BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(map-len CARD8)
(%length CARD16))
(array (map #(map-len CARD8))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(timeout INT16)
(interval INT16)
(prefer-blanking CARD8)
(allow-exposures CARD8)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(owner WINDOW)
(selection ATOM)
(time TIMESTAMP)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP))
(array (items #(#f COLORITEM))))
((fixed (%major-opcode CARD8)
(flags CARD8)
(%length CARD16)
(cmap COLORMAP)
(pixel CARD32)
(name-len CARD16))
(array (name #(name-len char))))
((fixed (%status CARD8)
(same-screen BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(child WINDOW)
(dst-x CARD16)
(dst-y CARD16)
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(src-window WINDOW)
(dst-window WINDOW)
(src-x INT16)
(src-y INT16)))
((fixed (%major-opcode CARD8)
(button CARD8)
(%length CARD16)
(grab-window WINDOW)
(modifiers CARD16)
(-pad #(2 BYTE))))
((fixed (%major-opcode CARD8)
(key KEYCODE)
(%length CARD16)
(grab-window WINDOW)
(modifiers CARD16)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(time TIMESTAMP)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(time TIMESTAMP)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(cmap COLORMAP)))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(event WINDOW)
(window WINDOW)
(from-configure BOOL)
(%pad #(19 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(window WINDOW)
(state BYTE)
(%pad #(23 BYTE))))
((fixed (%major-opcode CARD8)
(-pad #(1 BYTE))
(%length CARD16)
(src-window WINDOW)
(dst-window WINDOW)
(src-x INT16)
(src-y INT16)
(src-width CARD16)
(src-height CARD16)
(dst-x INT16)
(dst-y INT16)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(bad-value CARD32)
(minor-opcode CARD16)
(major-opcode CARD8)
(%pad #(21 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(bytes CARD32)
(bytes-overflow CARD32)
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(xid CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-types CARD32)
(-pad #(20 BYTE)))
(array (types #(num-types (X-Resource Type)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(xid CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-clients CARD32)
(-pad #(20 BYTE)))
(array (clients #(num-clients (X-Resource Client)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(server-major CARD16)
(server-minor CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major CARD8)
(client-minor CARD8)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(server-major-version CARD16)
(server-minor-version CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD16)
(client-minor-version CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(ids-len CARD32)
(-pad #(20 BYTE)))
(array (ids #(ids-len CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(count CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(start-id CARD32)
(count CARD32)
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cmap CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(server-major-version CARD16)
(server-minor-version CARD16)
(-pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD16)
(client-minor-version CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(event-mask CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(event (XEVIE Event))
(data-type CARD32)
(-pad #(64 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source CURSOR)
(destination CURSOR)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(src CURSOR)
(nbytes CARD16)
(-pad #(2 BYTE)))
(array (name #(nbytes CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(mode BYTE)
(target BYTE)
(map BYTE)
(-pad #(1 BYTE))
(window WINDOW)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source (XFIXES REGION))
(destination (XFIXES REGION))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION)))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))
(bitmap PIXMAP)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))
(gc GCONTEXT)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))
(picture (RENDER PICTURE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))
(window WINDOW)
(kind (SHAPE KIND))
(-pad #(3 BYTE))))
((fixed (%code CARD8)
(subtype CARD8)
(%sequence-number CARD16)
(window WINDOW)
(cursor-serial CARD32)
(timestamp TIMESTAMP)
(name ATOM)
(-pad #(12 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source (XFIXES REGION))
(destination (XFIXES REGION))
(left CARD16)
(right CARD16)
(top CARD16)
(bottom CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(extents RECTANGLE)
(-pad #(16 BYTE)))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(xhot CARD16)
(yhot CARD16)
(cursor-serial CARD32)
(-pad #(8 BYTE)))
(array (cursor-image #((/ (* width height) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(x INT16)
(y INT16)
(width CARD16)
(height CARD16)
(xhot CARD16)
(yhot CARD16)
(cursor-serial CARD32)
(cursor-atom ATOM)
(nbytes CARD16)
(-pad #(2 BYTE)))
(array (name #(nbytes CARD8)))
(array (cursor-image #((/ (* width height) 4) CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(atom ATOM)
(nbytes CARD16)
(-pad #(18 BYTE)))
(array (name #(nbytes CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cursor CURSOR)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source1 (XFIXES REGION))
(source2 (XFIXES REGION))
(destination (XFIXES REGION))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source (XFIXES REGION))
(bounds RECTANGLE)
(destination (XFIXES REGION))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD32)
(minor-version CARD32)
(-pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(client-major-version CARD32)
(client-minor-version CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source (XFIXES REGION))
(destination (XFIXES REGION))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(event-mask CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(selection ATOM)
(event-mask CARD32)))
((fixed (%code CARD8)
(subtype CARD8)
(%sequence-number CARD16)
(window WINDOW)
(owner WINDOW)
(selection ATOM)
(timestamp TIMESTAMP)
(selection-timestamp TIMESTAMP)
(-pad #(8 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cursor CURSOR)
(nbytes CARD16)
(-pad #(2 BYTE)))
(array (name #(nbytes CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(gc GCONTEXT)
(region (XFIXES REGION))
(x-origin INT16)
(y-origin INT16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(picture (RENDER PICTURE))
(region (XFIXES REGION))
(x-origin INT16)
(y-origin INT16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION)))
(array (rectangles #(#f RECTANGLE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(dest WINDOW)
(dest-kind (SHAPE KIND))
(-pad #(3 BYTE))
(x-offset INT16)
(y-offset INT16)
(region (XFIXES REGION))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source1 (XFIXES REGION))
(source2 (XFIXES REGION))
(destination (XFIXES REGION))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(region (XFIXES REGION))
(dx INT16)
(dy INT16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(source1 (XFIXES REGION))
(source2 (XFIXES REGION))
(destination (XFIXES REGION))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(authenticated CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(magic CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(hw-context CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(visual CARD32)
(screen CARD32)
(context CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(hw-drawable-handle CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(drawable CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(context CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(drawable CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(client-driver-major-version CARD32)
(client-driver-minor-version CARD32)
(client-driver-patch-version CARD32)
(client-driver-name-len CARD32)
(-pad #(8 BYTE)))
(array (client-driver-name
#(client-driver-name-len CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(framebuffer-handle-low CARD32)
(framebuffer-handle-high CARD32)
(framebuffer-origin-offset CARD32)
(framebuffer-size CARD32)
(framebuffer-stride CARD32)
(device-private-size CARD32))
(array (device-private #(device-private-size CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(drawable-table-index CARD32)
(drawable-table-stamp CARD32)
(drawable-origin-X INT16)
(drawable-origin-Y INT16)
(drawable-size-W INT16)
(drawable-size-H INT16)
(num-clip-rects CARD32)
(-pad #(4 BYTE)))
(array (clip-rects
#(num-clip-rects (XFree86-DRI DrmClipRect)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)
(drawable CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(drm-client-key-low CARD32)
(drm-client-key-high CARD32)
(sarea-handle-low CARD32)
(sarea-handle-high CARD32)
(bus-id-len CARD32)
(-pad #(12 BYTE)))
(array (bus-id #(bus-id-len CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(is-capable BOOL)
(%pad #(23 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(screen CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(dri-major-version CARD16)
(dri-minor-version CARD16)
(dri-minor-patch CARD32)
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(screen-count BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(window WINDOW)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(width CARD32)
(height CARD32)
(window WINDOW))
(array (screen #(1 SCREEN))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW))
(array (screen #(1 SCREEN))))
((fixed (%status CARD8)
(state BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(window WINDOW)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(state CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(number CARD32)
(-pad #(20 BYTE)))
(array (screen-info #(number (XINERAMA ScreenInfo)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major CARD16)
(minor CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(major CARD8)
(minor CARD8)))
((fixed (x-org INT16)
(y-org INT16)
(width CARD16)
(height CARD16)))
((fixed (%status CARD8)
(same BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)
(cursor CURSOR)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(type BYTE)
(detail BYTE)
(-pad #(2 BYTE))
(time CARD32)
(window WINDOW)
(-pad #(8 BYTE))
(rootX CARD16)
(rootY CARD16)
(-pad #(7 BYTE))
(deviceid CARD8)))
((fixed (%status CARD8)
(major-version CARD8)
(%sequence-number CARD16)
(%reply-length CARD32)
(minor-version CARD16)
(%pad #(22 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(major-version CARD8)
(-pad #(1 BYTE))
(minor-version CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(impervious BOOL)
(-pad #(3 BYTE))))
((fixed (base-id (XVideo PORT))
(name-size CARD16)
(num-ports CARD16)
(num-formats CARD16)
(type CARD8)
(pad CARD8))
(array (name #(name-size char)))
(array (formats #(num-formats Format))))
((fixed (flags CARD32)
(min INT32)
(max INT32)
(size CARD32))
(array (name #(size char))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (encoding (XVideo ENCODING))
(name-size CARD16)
(width CARD16)
(height CARD16)
(rate (XVideo Rational)))
(array (name #(name-size char))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(value INT32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(attribute ATOM)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)
(gc GCONTEXT)
(vid-x INT16)
(vid-y INT16)
(vid-w CARD16)
(vid-h CARD16)
(drw-x INT16)
(drw-y INT16)
(drw-w CARD16)
(drw-h CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)
(gc GCONTEXT)
(vid-x INT16)
(vid-y INT16)
(vid-w CARD16)
(vid-h CARD16)
(drw-x INT16)
(drw-y INT16)
(drw-w CARD16)
(drw-h CARD16)))
((fixed (%status CARD8)
(result BYTE)
(%sequence-number CARD16)
(%reply-length CARD32)
(%pad #(24 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(time TIMESTAMP)))
((fixed (id CARD32)
(width CARD16)
(height CARD16)
(data-size CARD32)
(num-planes CARD32))
(array (pitches #(num-planes CARD32)))
(array (offsets #(num-planes CARD32)))
(array (data #(data-size CARD8))))
((fixed (id CARD32)
(type CARD8)
(byte-order CARD8)
(pad1 CARD16)
(guid #(16 CARD8))
(bpp CARD8)
(num-planes CARD8)
(pad2 CARD16)
(depth CARD8)
(pad3 CARD8)
(pad4 CARD16)
(red-mask CARD32)
(green-mask CARD32)
(blue-mask CARD32)
(format CARD8)
(pad5 CARD8)
(pad6 CARD16)
(y-sample-bits CARD32)
(u-sample-bits CARD32)
(v-sample-bits CARD32)
(vhorz-y-period CARD32)
(vhorz-u-period CARD32)
(vhorz-v-period CARD32)
(vvert-y-period CARD32)
(vvert-u-period CARD32)
(vvert-v-period CARD32)
(vcomp-order #(32 CARD8))
(vscanline-order CARD8)
(vpad7 CARD8)
(vpad8 CARD16)
(vpad9 CARD32)
(vpad10 CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-formats CARD32)
(-pad #(20 BYTE)))
(array (format #(num-formats (XVideo ImageFormatInfo)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))))
((fixed (%code CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(time TIMESTAMP)
(port (XVideo PORT))
(attribute ATOM)
(value INT32)
(%pad #(12 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)
(gc GCONTEXT)
(id CARD32)
(src-x INT16)
(src-y INT16)
(src-w CARD16)
(src-h CARD16)
(drw-x INT16)
(drw-y INT16)
(drw-w CARD16)
(drw-h CARD16)
(width CARD16)
(height CARD16))
(array (data #(#f CARD8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)
(gc GCONTEXT)
(vid-x INT16)
(vid-y INT16)
(vid-w CARD16)
(vid-h CARD16)
(drw-x INT16)
(drw-y INT16)
(drw-w CARD16)
(drw-h CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)
(gc GCONTEXT)
(vid-x INT16)
(vid-y INT16)
(vid-w CARD16)
(vid-h CARD16)
(drw-x INT16)
(drw-y INT16)
(drw-w CARD16)
(drw-h CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-adaptors CARD16)
(-pad #(22 BYTE)))
(array (info #(num-adaptors AdaptorInfo))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(actual-width CARD16)
(actual-height CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(vid-w CARD16)
(vid-h CARD16)
(drw-w CARD16)
(drw-h CARD16)
(motion BOOL)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-encodings CARD16)
(-pad #(22 BYTE)))
(array (info #(num-encodings EncodingInfo))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major CARD16)
(minor CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-planes CARD32)
(data-size CARD32)
(width CARD16)
(height CARD16)
(-pad #(12 BYTE)))
(array (pitches #(num-planes CARD32)))
(array (offsets #(num-planes CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(id CARD32)
(width CARD16)
(height CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num-attributes CARD32)
(text-size CARD32)
(-pad #(16 BYTE)))
(array (attributes #(num-attributes AttributeInfo))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(onoff BOOL)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(onoff BOOL)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(attribute ATOM)
(value INT32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)
(gc GCONTEXT)
(shmseg (MIT-SHM SEG))
(id CARD32)
(offset CARD32)
(src-x INT16)
(src-y INT16)
(src-w CARD16)
(src-h CARD16)
(drw-x INT16)
(drw-y INT16)
(drw-w CARD16)
(drw-h CARD16)
(width CARD16)
(height CARD16)
(send-event CARD8)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(drawable DRAWABLE)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port (XVideo PORT))
(time TIMESTAMP)))
((fixed (%code CARD8)
(reason BYTE)
(%sequence-number CARD16)
(time TIMESTAMP)
(drawable DRAWABLE)
(port (XVideo PORT))
(%pad #(16 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(width-actual CARD16)
(height-actual CARD16)
(flags-return CARD32)
(-pad #(20 BYTE)))
(array (priv-data #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-id (XVideo-MotionCompensation CONTEXT))
(port-id (XVideo PORT))
(surface-id (XVideo-MotionCompensation SURFACE))
(width CARD16)
(height CARD16)
(flags CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(width-actual CARD16)
(height-actual CARD16)
(num-palette-entries CARD16)
(entry-bytes CARD16)
(component-order #(4 CARD8))
(-pad #(12 BYTE)))
(array (priv-data #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(subpicture-id
(XVideo-MotionCompensation SUBPICTURE))
(context (XVideo-MotionCompensation CONTEXT))
(xvimage-id CARD32)
(width CARD16)
(height CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(-pad #(24 BYTE)))
(array (priv-data #(#f CARD32))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(surface-id (XVideo-MotionCompensation SURFACE))
(context-id (XVideo-MotionCompensation CONTEXT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-id (XVideo-MotionCompensation CONTEXT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(subpicture-id
(XVideo-MotionCompensation SUBPICTURE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(surface-id (XVideo-MotionCompensation SURFACE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num CARD32)
(-pad #(20 BYTE)))
(array (types #(num (XVideo ImageFormatInfo)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port-id (XVideo PORT))
(surface-id (XVideo-MotionCompensation SURFACE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(num CARD32)
(-pad #(20 BYTE)))
(array (surfaces
#(num (XVideo-MotionCompensation SurfaceInfo)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(port-id (XVideo PORT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major CARD32)
(minor CARD32)
(%pad #(16 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (id (XVideo-MotionCompensation SURFACE))
(chroma-format CARD16)
(pad0 CARD16)
(max-width CARD16)
(max-height CARD16)
(subpicture-max-width CARD16)
(subpicture-max-height CARD16)
(mc-type CARD32)
(flags CARD32)))
((fixed (%code CARD8)
(detail CARD8)
(%sequence-number CARD16)
(context (XpExtension PCONTEXT))
(%pad #(24 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%status CARD8)
(%hint CARD8)
(%sequence-number CARD16)
(%pad #(28 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context-id CARD32)
(printerNameLen CARD32)
(localeLen CARD32))
(array (printerName
#(printerNameLen (XpExtension STRING8))))
(array (locale #(localeLen (XpExtension STRING8)))))
((fixed (%code CARD8)
(detail CARD8)
(%sequence-number CARD16)
(context (XpExtension PCONTEXT))
(cancel BOOL)
(%pad #(23 BYTE))))
((fixed (nameLen CARD32))
(array (name #(nameLen STRING8)))
(fixed (descLen CARD32))
(array (description #(descLen STRING8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context CARD32)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cancel BOOL)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cancel BOOL)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(cancel BOOL)
(-pad #(3 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(stringLen CARD32)
(-pad #(20 BYTE))
(attributes (XpExtension STRING8))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))
(pool CARD8)
(-pad #(3 BYTE))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(context CARD32)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(status-code CARD32)
(finished-flag CARD32)
(dataLen CARD32)
(-pad #(12 BYTE)))
(array (data #(dataLen BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))
(max-bytes CARD32)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(image-resolution CARD16)
(%pad #(22 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(valueLen CARD32)
(-pad #(20 BYTE)))
(array (value #(valueLen (XpExtension STRING8)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))
(nameLen CARD32)
(pool CARD8)
(-pad #(3 BYTE)))
(array (name #(nameLen (XpExtension STRING8)))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(width CARD16)
(height CARD16)
(offset-x CARD16)
(offset-y CARD16)
(reproducible-width CARD16)
(reproducible-height CARD16)
(%pad #(12 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(listCount CARD32)
(-pad #(20 BYTE)))
(array (printers #(listCount PRINTER))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(printerNameLen CARD32)
(localeLen CARD32))
(array (printer-name
#(printerNameLen (XpExtension STRING8))))
(array (locale #(localeLen (XpExtension STRING8)))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(root WINDOW)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(event-mask CARD32))
(array (event-list #(event-mask CARD32 mask)))
(fixed (all-events-mask CARD32))
(array (all-events-list #(all-events-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(drawable DRAWABLE)
(len-data CARD32)
(len-fmt CARD16)
(len-options CARD16))
(array (data #(len-data BYTE)))
(array (doc-format #(#f (XpExtension STRING8))))
(array (options #(#f (XpExtension STRING8)))))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(listCount CARD32)
(-pad #(20 BYTE)))
(array (roots #(listCount WINDOW))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%status CARD8)
(-pad #(1 BYTE))
(%sequence-number CARD16)
(%reply-length CARD32)
(major-version CARD16)
(minor-version CARD16)
(%pad #(20 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))
(event-mask CARD32))
(array (event-list #(event-mask CARD32 mask))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))
(stringLen CARD32)
(pool CARD8)
(rule CARD8)
(-pad #(2 BYTE)))
(array (attributes #(#f (XpExtension STRING8)))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context CARD32)))
((fixed (%status CARD8)
(status BOOL)
(%sequence-number CARD16)
(%reply-length CARD32)
(previous-resolutions CARD16)
(%pad #(22 BYTE))))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(context (XpExtension PCONTEXT))
(image-resolution CARD16)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(driver-mode CARD8)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(output-mode CARD8)))
((fixed (%major-opcode CARD8)
(%minor-opcode CARD8)
(%length CARD16)
(window WINDOW)))
This module provides facilities to handle keyboard input (keys, keysyms, keycodes, but not “user-level” keybindings) in the context of X.
The first three procedures are experimental abstractions; they will most likely end up being removed once the others stabilize.
Return a key object, basically a pair of integers representing the key's keysym and modifier.
The next two procedures wrap internal data tables made from scanning
the installed header keysymdef.h.
They both return #f if the requested keysym or symbol is not found.
The following procedure provides “core” (unaware of the XKEYBOARD
extension) functionality, namely translation among the keysyms and
modifiers mappings representations, including mapping between keysyms,
(Scheme) symbols, keycodes, modifiers (and modifier masks), and “nice”
names for modifiers.
A modifier's nice name is a symbol that is slightly easier to keep track of than the raw X symbol since it abstracts left-vs-right info. It is (arguably) also easier on the eyes, using hyphen instead of underscore, and eschewing capital letters.
Here is the builtin table that maps the modifier nice name to its X symbol(s).
| nice name | X symbol(s)
| |
|---|---|---|
| mode-switch | Mode_switch
| |
| shift-lock | Shift_Lock
| |
| caps-lock | Caps_Lock
| |
| num-lock | Num_Lock
| |
| shift | Shift_L | Shift_R
|
| control | Control_L | Control_R
|
| meta | Meta_L | Meta_R
|
| alt | Alt_L | Alt_R
|
| super | Super_L | Super_R
|
| hyper | Hyper_L | Hyper_R
|
You can augment it by specifying additional-modifiers,
a list of sub-lists, each of which has the form
(nice-name x-symbol[...]).
Keywords: finangle-meta?, additional-modifiersQuery conn for the current keysyms and modifiers mappings, massage the raw info — influenced by the keyword args
#:finangle-meta?and#:additional-modifiers— into an internal representation, and return a procedure p that provides “core” translation facilities.The procedure p takes two args command and arg, where command is a keyword. Valid invocations are:
#:infodetail- Return information on detail (a symbol), one of:
mode-switch-modnum-lock-mod- A
MapIndexenum, one of:Shift,Lock,Control, 1, 2, 3, 4 or 5, which means that theMode_switch(orNum_Lock) keysym is “bound” to that modifier; or#f, which means “not bound to any modifier”.lock-mod- One of:
#f,Caps_Lock,Shift_Lock.meta-finangled?#tifmetahas been finangled (see below), else#f.valid-modifiers- A list of nice names of the available recognized modifiers.
#:modifier-masknice-name- If nice-name is an available recognized modifier, return its 1-bit-set value (i.e., the mask), one of: 1, 2, 4, 8, 16, 32, 64, 128. Otherwise, return
#f.#:keypress<-eventevent- Translate an event object of type
KeyPressorKeyReleaseinto a keypress object, which has the form(name.press).If the event is a modifier key, name is the nice name or
#f, and press is the X symbol.If the event is not a modifier key, name is a string (one byte from the Latin 1 charset) or
#f, and press has the form(base[modifier...]), where base is an X symbol, and modifier is the nice name.#:code/modmask<-keypresspress- Translate a press into
(keycode.modmask). If press is a symbol, it must be either a modifier nice name or (one of) its X symbol(s). Otherwise press should be of the form returned by#:keypress<-event(in which case modifiers must be nice names).This may throw
invalid-symbol,symbol-not-mapped,invalid-modifierormodifier-not-mapped, along with the respective (base) symbol or modifier.If you specify non-
#ffinangle-meta?, andaltis “bound”, andmetais “not bound”, then you will seemetaeverywherealtshould appear, and specifyingaltas a modifier in a (non modifier) arg to#:code/modmask<-keypresswill result in amodifier-not-mappederror.
Some examples of #:keypress<-event output:
(#f F1)
(#f F1 meta)
(#f F1 shift)
(#f F1 meta shift)
("a" a)
("a" a meta)
("A" A) ; NB: no ‘shift’
("A" A meta) ; NB: no ‘shift’
(" " space)
("^@" space control) ; #\nul
("^@" space meta control) ; #\nul
(#f KP_Home)
(shift . Shift_L)
("7" KP_7)
(num-lock . Num_Lock)
("7" KP_7 num-lock)
(shift . Shift_L)
(#f KP_Home num-lock)
Here we pile insult upon injury (see zzz x-protocol).
The first set of procedures operate independently of the connection status
to the X server. The rest (aside from the procedure connection,
itself) require the object returned by connection.
Return the integer value of the EventMask x, a symbol or list of symbols. For a list, the value is the
logiorof each element's value.
The preceding three procedures are defined using the following one. For a list of enums, See x-protocol enums.
Return a procedure p that maps a symbol in the enum name to an integer value (or
#fif that symbol is not recognized). Various options configure the procedure:
(omitkey...)- Omit the specified keys (symbols) from the lookup table.
mask- Construct the lookup table taking the enum's values as bit positions (e.g., for original value 3, the table holds 8, or
(ash 1 3)). Additionally, arrange for p to accept either a single symbol, or a list of symbols, in which case the integer values are combined withlogior.
Here are miscellaneous procedures useful for looking up static data and transforming property values to more convenient forms.
Look up color name in the standard color database file /etc/X11/rgb.txt and return its RGB value (integer), or
#fif name cannot be found. If name is a list of names, likewise return a list of values (some of which may be#f). Each name must match exactly; no case or other conversion is done. For example:(n<-color-name "sky blue") ⇒ 49151 (n<-color-name "SkyBlue") ⇒ 49151 (n<-color-name "Sky Blue") ⇒ #f (n<-color-name '("red" "rad")) ⇒ (13458524 #f)Optional arg color-db-filename specifies an alternative database. It should be a plain text file with lines of the form:
R G B NAMEwhere r, g, b are decimal integers in the range 0 to 255, and fields are separated by at least one whitespace character.
Return a list of new shared-substrings made by splitting string on (and subsequently discarding the) ‘#\nul’ bytes. Unlike
string-tokenize, however, this does not squash consecutive ‘#\nul’ bytes; the resulting list may contain empty strings. See SRFI-13 Miscellaneous.
Lastly, a bunch of constant data.
Return constant data table name (a symbol), one of:
icccm-size-hints-offsets- Alist with symbolic keys:
flags,min-width,min-height,max-width,max-height,width-inc,height-inc,min-aspect-x,min-aspect-y,max-aspect-x,max-aspect-y,base-width,base-height,gravity.icccm-size-hints-flags-mask- Alist with symbolic keys:
min-size,max-size,resize-inc,aspect,base-size,gravity. The values are masks.If no such data table name exists, return
#f.
Return a procedure that handles a connection to the server specified by the env var
DISPLAY. IfDISPLAYis not set, signal error. If connection fails, do(exit #f). The procedure takes a single keyword arg, one of:
#:fdes- Return the file descriptor of the connection. This is intended for testing with
selectrather than for direct i/o, which would confuse things. See Ports and File Descriptors.#:setup- Return the “setup” part of the “connection object” as returned by
-connect, an alist.#:extensions- Return a list of available extension names (symbols).
#:q- Return the proc returned by
-synchronous-request-proc, configured to takekeyword-stylearguments.#:io- Return the proc returned by
-simple-io-manager, likewise configured to takekeyword-stylearguments.#:xid-manager- Return a procedure p that manages XIDs and type-specific resources for the connection. p takes one arg, which determines its behavior:
- type (symbol)
- Return a newly allocated XID internally associated with type. If no more XIDs are available, throw
no-more-xidwith the connection's resource-id base and mask (both integers) as args.Valid types are:
colormap,cursor,font,gc,pixmap,window.- xid (integer)
- Free the type-specific resources (if any) associated with xid, and make xid available for subsequent allocation.
#:bye- Do a
-disconnect, andexitwith its return value.
Return a procedure that handles numeric/symbolic atom conversion (including caching) for conn, the object returned by
connection. The procedure takes a keyword and an argument:
#:symbolicatom- Return the symbolic name associated with atom, an integer, or
#fif no such atom exists on the server. NB: A name may have embedded ‘#\space’ or other non-‘#\nul’ bytes.#:numericsymbol#:numeric!symbol- Return the atom (non-zero integer) value associated with symbol. The first form may return
#fif no such atom is defined on the server. The second form will always return non-#f.#:intern!symbols- Intern symbols (list of symbols) as atoms in the server. The effect is the same as using
#:numeric!on each individual symbol, but the implementation is more efficient.
Return a procedure p that can change a property on a window via
((conn#:io) 'ChangeProperty ...). Procedure p takes five arguments:
- mode
- A symbol
Append,PrependorReplace, or the numeric (integer) value of anPropModeenum.- xwid
- The xid of the window where the change is to occur.
- property
- type
- Symbols representing atoms, or numeric (integer) values.
- v
- The value, either a string or a uniform vector with elements of size 1, 2 or 4 bytes (aka format 8, 16, 32, respectively).
Set icccm properties (via conn) for window xwid. plist consists of alternating symbols (representing property names), and the values for these properties. Valid properties and their expected associated values are:
WM_NAMEWM_ICON_NAMEWM_CLIENT_MACHINE- A string.
WM_NORMAL_HINTS- A sub-plist with possible keys:
min-sizemax-sizeresize-incbase-size- A pair of non-negative integers. For
resize-inc, the integers should additionally be positive (non-zero). The car specifies the width, the cdr the height.aspect- A pair of pairs of integers. For the top-level pair, the car is the minimum aspect ratio, the cdr the maximum aspect ratio. For each aspect ratio (pair), the car specifies the x component, the cdr the y component.
gravity- A symbol, one of:
BitForget,NorthWest,North,NorthEast,West,Center,East,SouthWest,South,SouthEast,Static.WM_HINTS- A sub-plist with possible keys:
inputurgency- A boolean.
initial-state- A symbol, one of:
withdrawn,normal,iconic.icon-pixmapicon-mask- A pixmap XID.
icon-windowwindow-group- A window XID.
icon-position- A pair of integers. The car specifies the x component, the cdr the y component.
WM_CLASS- A pair of strings representing the instance and class names, respectively.
WM_TRANSIENT_FOR- A window XID (integer).
WM_PROTOCOLS- An atom (symbolic or numeric) or a list of them. Note that, unlike the atoms used to represent properties (and internally, their types), the value atoms are not automatically interned; that is the caller's responsibility.
WM_COLORMAP_WINDOWS- A window XID.
For unrecognized keys or malformed values, signal “bad property”, “bad size-hints key”, “bad wm-hints key”, or other errors as appropriate.
Associate (via conn) font xfid with drawable did and graphic context gcid. This means that xfid will be used for subsequent text drawing operations.
Return a procedure that handles drawing manipulations for
conn, the object returned byconnection. The procedure takes a keyword arg followed by zero or more data args. The keyword and data should be one of:
#:screen-w#:screen-h- Return the “screen width” or “screen height”, respectively.
#:root-wid- Return the ID of the root window.
#:open-fontname- Open the font name (a string). If successful, return information on the font as an alist, with additional key
xfidwhose value is the font id, an integer. If name cannot be opened, return an alist that includes key%error-name, suitable for passing to an error handler.#:create-gcdid plist- Create a new graphics context on drawable did (an integer), with the “value-list” specified by plist. Return the graphics context id, an integer.
#:create-windowkeyword-args...#:create-pixmapkeyword-args...#:create-cursorkeyword-args...- Create a new window, pixmap or cursor, respectively, configured with keyword-args, a series of alternating keywords and values. Return the id (integer) of the window, pixmap or cursor, respectively.
#:create-glyph-cursorsfont mfont keyword-args...- Create a new cursor based on the source and mask fonts sfont and mfont (both font XIDs). Return the id (integer) of the cursor. Note that unlike
#create-cursor, which uses the X protocol requestCreateCursor, this usesCreateGlyphCursorinstead.#:dropxid...- For each xid, free the type-specific resources (if any) associated with xid, and make xid available for subsequent allocation.
Return a procedure that calculates the pixel-width of a string based on font-info (an alist). For example:
(define CONN (connection)) (define DMGR (drawing CONN)) (define FONT-INFO (DMGR #:open-font "10x20")) (define pixel-width (pixel-width-proc FONT-INFO)) (pixel-width "hello world") ⇒ 110
WARNING: HIGHLY EXPERIMENTAL!
Arrange to do
(conn#:bye)if the ESC key is pressed. Normally, other events are ignored. Optional second arg meh, however, is a procedure to be passed those events, instead (each in the form of an alist).This uses
((conn#:io) #:set-external-event-queue! ...)internally.
Return the tree:
("<?xml version=\"1.0\" encoding=\"" encoding "\"?>" :LF)
Return the tree:
("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 " type-as-capitalized-string "//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-" type-as-string ".dtd\">" :LF)type is one of
#:strict,#:transitional,#:frameset; or a symbol with the same name.
Following is the list of other exported procedures. Each expands (see zzz publishing) its arglist into a tree where the element name is the same as the procedure name, but without the tilde (‘~’).
~html
~head ~title ~base ~meta ~link ~style
~script ~noscript
~body
~div ~p ~h1 ~h2 ~h3 ~h4 ~h5 ~h6
~ul ~ol ~li ~dl ~dt ~dd
~address
~hr
~pre ~blockquote
~ins ~del
~a
~span
~bdo
~br
~em ~strong
~dfn ~code ~samp ~kbd ~var ~cite ~abbr ~acronym
~q ~sub ~sup
~tt ~i ~b ~big ~small
~object ~param
~img ~map ~area
~form ~label ~input ~select ~optgroup ~option
~textarea ~fieldset ~legend ~button
~table ~caption ~thead ~tfoot ~tbody ~colgroup ~col
~tr ~th ~td
Basically:
(list (~?xml "utf-8") (~!DOCTYPE #:strict) (~html 'xmlns "http://www.w3.org/1999/xhtml" 'xml:lang "en" 'lang "en" x))
Will Emacs and Guile ever truly merge? Who knows?
Keywords: checkReturn a stream delivering unsigned bytes from source. source can be a port; a string; a list, vector or uniform vector of unsigned bytes (integers in the range [0,255]), or a pre-existing unsigned byte stream object. For a list or vector, the elements may also be Scheme characters, which are automatically converted via
char->integer. This conversion also occurs automatically if source is a string or a port. For a uniform vector (which must have prototype#\nul), elements are taken modulo 256 i.e.,#y(-1 2 -42)yields the three integers 255, 2 and 214.Normally, source elements are delivered without validation. If
#:checksymbol is specified, however, if an element is not an integer in the range [0,255], throw symbol with the element as arg.
Return a procedure that internally parses the UTF8-encoded input from, which may be a string, a port, a list of characters, a list of unsigned bytes (integers in the range [0,255]), or the “extracted ubs” from a previous call to
utf8-reader(see below).Optional arg INIT-POS is a pair
(byte.char), defaulting to (0 . 0), that specifies the stream's initial position.If the returned procedure p is called with no arguments, it reads the next UTF8 encoded character (one or more bytes), updates the stream position, updates the reused-storage pair:
(BYTES-CONSUMED . UVAL)and returns it. Both byte-count and uval are integers. If there is a problem, p throws
invalid-utf8with the list of problematic bytes. Note that decoding does not perform UCS-specific checks (seevalid-ucs?et al for that). On the other hand, if the stream is empty, p returns#f.Internally, for speed, storage for stream state is allocated once and subsequently reused. To access this state, p can also be called with command args..., where command is one of:
#:raw-bytes- This returns the vector (length six) used to temporarily store the bytes taken from the stream. Some elements may be unspecified, and some elements may represent bytes from previous calls. On
invalid-utf8error, the proper subset is also thrown.#:posbox- This returns the pair
(byte.char), where both byte and char are counters of bytes and characters parsed, respectively.#:rvbox- This returns the pair
(bytes-consumed.uval), the same one (updated and) returned by calling p with no arguments.#:ubs- This returns the unsigned-byte stream object constructed from from, marked in a way that it is recognizable if passed to another call to utf8-reader.
Aside from directly manipulating the state (which is not recommended practice, by the way), two additional commands provide common abstractions.
#:skip!n[acc?]- This advances the stream by n bytes or until the stream is empty, whichever happens first. The value is of the form:
((BEFORE . DIFF) [BYTE...])where before is the byte-position before skipping, diff is how many bytes were skipped (less than or equal to n), and the rest the list of bytes skipped, if acc? is specified and non-
#f.#:sync!- This advances the stream (if necessary) until the “current byte” looks like the beginning of a valid UTF8-encoded character, or until the stream is empty, whichever happens first, and returns a form similar to that of the
#:skip!command.
Return
#tiff uval is a UCS value that is neither a UTF-16 surrogate (in the range [#xD800,#xDFFF]) nor a non-character (one of #xFFFE, #xFFFF).
Return
#tiff uval is a UCS value that fits in two bytes. This usesvalid-ucs?.
(use-modules
((ttn-do zzz personally) #:select (fs fso))
((ttn-do zzz emacsdream) #:select (utf8-reader)))
(define (hex n) (number->string n 16))
(define next (utf8-reader (current-input-port)))
(define (wow1 bail?)
(let ((w (next #:posbox))
(x (next #:rvbox))
(y (next #:raw-bytes)))
(let loop ()
(let ((b (car w)))
(and (zero? (random 3))
(fso "skipped: ~S~%" (next #:skip! (1+ (random 4)) #t)))
(and (catch 'invalid-utf8 next
(lambda (key . args)
(and bail? (< 40 (car w))
(throw 'bail))
(set-car! x 'sync)
(set-cdr! x (cons* key args w (next #:sync!)))
#t))
(if (number? (car x))
(fso "~A\t~A\t~S\tU+~A\t~A~A~%"
b (cdr w)
x (hex (cdr x))
(map hex (list-head (vector->list y) (car x)))
(if (> 128 (cdr x))
(fs "\t~S" (integer->char (cdr x)))
""))
(fso "~A: ~S~%" (car x) (cdr x)))
(loop))))))
(define (wow bail?)
(catch 'bail
(lambda ()
(wow1 bail?))
(lambda (key . args)
(fso "bailing: ~S~%" args)
args)))
(set! *random-state* (seed->random-state (let ((p (gettimeofday)))
(* (car p) (cdr p)))))
(wow #t)
(fso "eof: ~A~%" (car (next #:posbox)))
(fso "-----~%")
(set! next (utf8-reader (next #:ubs) (next #:posbox)))
(wow #f)
(fso "eof: ~A~%" (next #:posbox))
100x md-local-configure
10x mgrabmue-webserver
api-diff mkinstalldirs
apt-search-show module-fan-in
beep-5-times mozilla
biomail2ris my-lpr
cgoban my-updatedb
config.guess notify-home-tmp-nonempty
connected-p prepare-glade2scm-wip-tarball
console-prefs psql
cvs-fresh publish
cvs-zonk punify
cvspserver push-ttn-cvs-modules
decss-using-dig qmake
default.xsession release-snapshot-repo
diff-last-release repl-server
display-cvs-state-summary resize-png
display-rcs-state-summary rotate-image
door scan-msdos-image-for-offset
dump-ttn-table scavenger.xsession
find-neartime scsh
floppy-control scwm-start
front-door show-pubstats
gelnet sofix
get-glug-stats symlink-automake-files
gltron twerpdoc-anchor-names
glug-anon-cvs uninstall-sofixed
guile-scripts update-rebuild
gxsed update-rebuild-guile
hack update-rebuild-guile-pg
import-rcs-tree update-rebuild-gush
install-ttn-do update-www.glug.org
isoloop update-www.glug.org-results
kick-beguiled updenv
kick-postgres use2dot
lessclose web-proxy-setup
lessopen www
lesspipe wzcat
local-configure x-start
lynx-proxy xearth.xsession
make-gnu-project xjig-start
make-home-bin-symlinks xmailnotify
md-local-build
(Access err): x-protocol structs(Alloc err): x-protocol structs(AllocColor ans): x-protocol structs(AllocColor req): x-protocol structs(AllocColorCells ans): x-protocol structs(AllocColorCells req): x-protocol structs(AllocColorPlanes ans): x-protocol structs(AllocColorPlanes req): x-protocol structs(AllocNamedColor ans): x-protocol structs(AllocNamedColor req): x-protocol structs(AllowEvents req): x-protocol structs(Atom err): x-protocol structs(Bell req): x-protocol structs(BIG-REQUESTS Enable ans): x-protocol structs(BIG-REQUESTS Enable req): x-protocol structs(ButtonPress ev): x-protocol structs(ButtonRelease ev): x-protocol structs(ChangeActivePointerGrab req): x-protocol structs(ChangeGC req): x-protocol structs(ChangeHosts req): x-protocol structs(ChangeKeyboardControl req): x-protocol structs(ChangeKeyboardMapping req): x-protocol structs(ChangePointerControl req): x-protocol structs(ChangeProperty req): x-protocol structs(ChangeSaveSet req): x-protocol structs(ChangeWindowAttributes req): x-protocol structs(CirculateNotify ev): x-protocol structs(CirculateRequest ev): x-protocol structs(CirculateWindow req): x-protocol structs(ClearArea req): x-protocol structs(ClientMessage ev): x-protocol structs(CloseFont req): x-protocol structs(Colormap err): x-protocol structs(ColormapNotify ev): x-protocol structs(Composite CreateRegionFromBorderClip req): x-protocol structs(Composite GetOverlayWindow ans): x-protocol structs(Composite GetOverlayWindow req): x-protocol structs(Composite NameWindowPixmap req): x-protocol structs(Composite QueryVersion ans): x-protocol structs(Composite QueryVersion req): x-protocol structs(Composite RedirectSubwindows req): x-protocol structs(Composite RedirectWindow req): x-protocol structs(Composite ReleaseOverlayWindow req): x-protocol structs(Composite UnredirectSubwindows req): x-protocol structs(Composite UnredirectWindow req): x-protocol structs(ConfigureNotify ev): x-protocol structs(ConfigureRequest ev): x-protocol structs(ConfigureWindow req): x-protocol structs(ConvertSelection req): x-protocol structs(CopyArea req): x-protocol structs(CopyColormapAndFree req): x-protocol structs(CopyGC req): x-protocol structs(CopyPlane req): x-protocol structs(CreateColormap req): x-protocol structs(CreateCursor req): x-protocol structs(CreateGC req): x-protocol structs(CreateGlyphCursor req): x-protocol structs(CreateNotify ev): x-protocol structs(CreatePixmap req): x-protocol structs(CreateWindow req): x-protocol structs(Cursor err): x-protocol structs(DAMAGE BadDamage err): x-protocol structs(DAMAGE Create req): x-protocol structs(DAMAGE Destroy req): x-protocol structs(DAMAGE Notify ev): x-protocol structs(DAMAGE QueryVersion ans): x-protocol structs(DAMAGE QueryVersion req): x-protocol structs(DAMAGE Subtract req): x-protocol structs(DeleteProperty req): x-protocol structs(DestroyNotify ev): x-protocol structs(DestroySubwindows req): x-protocol structs(DestroyWindow req): x-protocol structs(DPMS Capable ans): x-protocol structs(DPMS Capable req): x-protocol structs(DPMS Disable req): x-protocol structs(DPMS Enable req): x-protocol structs(DPMS ForceLevel req): x-protocol structs(DPMS GetTimeouts ans): x-protocol structs(DPMS GetTimeouts req): x-protocol structs(DPMS GetVersion ans): x-protocol structs(DPMS GetVersion req): x-protocol structs(DPMS Info ans): x-protocol structs(DPMS Info req): x-protocol structs(DPMS SetTimeouts req): x-protocol structs(Drawable err): x-protocol structs(EnterNotify ev): x-protocol structs(Expose ev): x-protocol structs(FillPoly req): x-protocol structs(FocusIn ev): x-protocol structs(FocusOut ev): x-protocol structs(Font err): x-protocol structs(ForceScreenSaver req): x-protocol structs(FreeColormap req): x-protocol structs(FreeColors req): x-protocol structs(FreeCursor req): x-protocol structs(FreeGC req): x-protocol structs(FreePixmap req): x-protocol structs(GContext err): x-protocol structs(GetAtomName ans): x-protocol structs(GetAtomName req): x-protocol structs(GetFontPath ans): x-protocol structs(GetFontPath req): x-protocol structs(GetGeometry ans): x-protocol structs(GetGeometry req): x-protocol structs(GetImage ans): x-protocol structs(GetImage req): x-protocol structs(GetInputFocus ans): x-protocol structs(GetInputFocus req): x-protocol structs(GetKeyboardControl ans): x-protocol structs(GetKeyboardControl req): x-protocol structs(GetKeyboardMapping ans): x-protocol structs(GetKeyboardMapping req): x-protocol structs(GetModifierMapping ans): x-protocol structs(GetModifierMapping req): x-protocol structs(GetMotionEvents ans): x-protocol structs(GetMotionEvents req): x-protocol structs(GetPointerControl ans): x-protocol structs(GetPointerControl req): x-protocol structs(GetPointerMapping ans): x-protocol structs(GetPointerMapping req): x-protocol structs(GetProperty ans): x-protocol structs(GetProperty req): x-protocol structs(GetScreenSaver ans): x-protocol structs(GetScreenSaver req): x-protocol structs(GetSelectionOwner ans): x-protocol structs(GetSelectionOwner req): x-protocol structs(GetWindowAttributes ans): x-protocol structs(GetWindowAttributes req): x-protocol structs(GLX AreTexturesResident ans): x-protocol structs(GLX AreTexturesResident req): x-protocol structs(GLX BadContext err): x-protocol structs(GLX BadContextState err): x-protocol structs(GLX BadContextTag err): x-protocol structs(GLX BadCurrentDrawable err): x-protocol structs(GLX BadCurrentWindow err): x-protocol structs(GLX BadDrawable err): x-protocol structs(GLX BadFBConfig err): x-protocol structs(GLX BadLargeRequest err): x-protocol structs(GLX BadPbuffer err): x-protocol structs(GLX BadPixmap err): x-protocol structs(GLX BadRenderRequest err): x-protocol structs(GLX BadWindow err): x-protocol structs(GLX ChangeDrawableAttributes req): x-protocol structs(GLX ClientInfo req): x-protocol structs(GLX CopyContext req): x-protocol structs(GLX CreateContext req): x-protocol structs(GLX CreateGLXPixmap req): x-protocol structs(GLX CreateNewContext req): x-protocol structs(GLX CreatePbuffer req): x-protocol structs(GLX CreatePixmap req): x-protocol structs(GLX CreateWindow req): x-protocol structs(GLX DeleteLists req): x-protocol structs(GLX DeleteQueriesARB req): x-protocol structs(GLX DeleteTextures req): x-protocol structs(GLX DeleteWindow req): x-protocol structs(GLX DestroyContext req): x-protocol structs(GLX DestroyGLXPixmap req): x-protocol structs(GLX DestroyPbuffer req): x-protocol structs(GLX DestroyPixmap req): x-protocol structs(GLX EndList req): x-protocol structs(GLX FeedbackBuffer req): x-protocol structs(GLX Finish ans): x-protocol structs(GLX Finish req): x-protocol structs(GLX Flush req): x-protocol structs(GLX Generic err): x-protocol structs(GLX GenLists ans): x-protocol structs(GLX GenLists req): x-protocol structs(GLX GenQueriesARB ans): x-protocol structs(GLX GenQueriesARB req): x-protocol structs(GLX GenTextures ans): x-protocol structs(GLX GenTextures req): x-protocol structs(GLX GetBooleanv ans): x-protocol structs(GLX GetBooleanv req): x-protocol structs(GLX GetClipPlane ans): x-protocol structs(GLX GetClipPlane req): x-protocol structs(GLX GetColorTable ans): x-protocol structs(GLX GetColorTable req): x-protocol structs(GLX GetColorTableParameterfv ans): x-protocol structs(GLX GetColorTableParameterfv req): x-protocol structs(GLX GetColorTableParameteriv ans): x-protocol structs(GLX GetColorTableParameteriv req): x-protocol structs(GLX GetCompressedTexImageARB ans): x-protocol structs(GLX GetCompressedTexImageARB req): x-protocol structs(GLX GetConvolutionFilter ans): x-protocol structs(GLX GetConvolutionFilter req): x-protocol structs(GLX GetConvolutionParameterfv ans): x-protocol structs(GLX GetConvolutionParameterfv req): x-protocol structs(GLX GetConvolutionParameteriv ans): x-protocol structs(GLX GetConvolutionParameteriv req): x-protocol structs(GLX GetDoublev ans): x-protocol structs(GLX GetDoublev req): x-protocol structs(GLX GetDrawableAttributes ans): x-protocol structs(GLX GetDrawableAttributes req): x-protocol structs(GLX GetError ans): x-protocol structs(GLX GetError req): x-protocol structs(GLX GetFBConfigs ans): x-protocol structs(GLX GetFBConfigs req): x-protocol structs(GLX GetFloatv ans): x-protocol structs(GLX GetFloatv req): x-protocol structs(GLX GetHistogram ans): x-protocol structs(GLX GetHistogram req): x-protocol structs(GLX GetHistogramParameterfv ans): x-protocol structs(GLX GetHistogramParameterfv req): x-protocol structs(GLX GetHistogramParameteriv ans): x-protocol structs(GLX GetHistogramParameteriv req): x-protocol structs(GLX GetIntegerv ans): x-protocol structs(GLX GetIntegerv req): x-protocol structs(GLX GetLightfv ans): x-protocol structs(GLX GetLightfv req): x-protocol structs(GLX GetLightiv ans): x-protocol structs(GLX GetLightiv req): x-protocol structs(GLX GetMapdv ans): x-protocol structs(GLX GetMapdv req): x-protocol structs(GLX GetMapfv ans): x-protocol structs(GLX GetMapfv req): x-protocol structs(GLX GetMapiv ans): x-protocol structs(GLX GetMapiv req): x-protocol structs(GLX GetMaterialfv ans): x-protocol structs(GLX GetMaterialfv req): x-protocol structs(GLX GetMaterialiv ans): x-protocol structs(GLX GetMaterialiv req): x-protocol structs(GLX GetMinmax ans): x-protocol structs(GLX GetMinmax req): x-protocol structs(GLX GetMinmaxParameterfv ans): x-protocol structs(GLX GetMinmaxParameterfv req): x-protocol structs(GLX GetMinmaxParameteriv ans): x-protocol structs(GLX GetMinmaxParameteriv req): x-protocol structs(GLX GetPixelMapfv ans): x-protocol structs(GLX GetPixelMapfv req): x-protocol structs(GLX GetPixelMapuiv ans): x-protocol structs(GLX GetPixelMapuiv req): x-protocol structs(GLX GetPixelMapusv ans): x-protocol structs(GLX GetPixelMapusv req): x-protocol structs(GLX GetPolygonStipple ans): x-protocol structs(GLX GetPolygonStipple req): x-protocol structs(GLX GetQueryivARB ans): x-protocol structs(GLX GetQueryivARB req): x-protocol structs(GLX GetQueryObjectivARB ans): x-protocol structs(GLX GetQueryObjectivARB req): x-protocol structs(GLX GetQueryObjectuivARB ans): x-protocol structs(GLX GetQueryObjectuivARB req): x-protocol structs(GLX GetSeparableFilter ans): x-protocol structs(GLX GetSeparableFilter req): x-protocol structs(GLX GetString ans): x-protocol structs(GLX GetString req): x-protocol structs(GLX GetTexEnvfv ans): x-protocol structs(GLX GetTexEnvfv req): x-protocol structs(GLX GetTexEnviv ans): x-protocol structs(GLX GetTexEnviv req): x-protocol structs(GLX GetTexGendv ans): x-protocol structs(GLX GetTexGendv req): x-protocol structs(GLX GetTexGenfv ans): x-protocol structs(GLX GetTexGenfv req): x-protocol structs(GLX GetTexGeniv ans): x-protocol structs(GLX GetTexGeniv req): x-protocol structs(GLX GetTexImage ans): x-protocol structs(GLX GetTexImage req): x-protocol structs(GLX GetTexLevelParameterfv ans): x-protocol structs(GLX GetTexLevelParameterfv req): x-protocol structs(GLX GetTexLevelParameteriv ans): x-protocol structs(GLX GetTexLevelParameteriv req): x-protocol structs(GLX GetTexParameterfv ans): x-protocol structs(GLX GetTexParameterfv req): x-protocol structs(GLX GetTexParameteriv ans): x-protocol structs(GLX GetTexParameteriv req): x-protocol structs(GLX GetVisualConfigs ans): x-protocol structs(GLX GetVisualConfigs req): x-protocol structs(GLX IsDirect ans): x-protocol structs(GLX IsDirect req): x-protocol structs(GLX IsList ans): x-protocol structs(GLX IsList req): x-protocol structs(GLX IsQueryARB ans): x-protocol structs(GLX IsQueryARB req): x-protocol structs(GLX IsTexture ans): x-protocol structs(GLX IsTexture req): x-protocol structs(GLX MakeContextCurrent ans): x-protocol structs(GLX MakeContextCurrent req): x-protocol structs(GLX MakeCurrent ans): x-protocol structs(GLX MakeCurrent req): x-protocol structs(GLX NewList req): x-protocol structs(GLX PbufferClobber ev): x-protocol structs(GLX PixelStoref req): x-protocol structs(GLX PixelStorei req): x-protocol structs(GLX QueryContext ans): x-protocol structs(GLX QueryContext req): x-protocol structs(GLX QueryExtensionsString ans): x-protocol structs(GLX QueryExtensionsString req): x-protocol structs(GLX QueryServerString ans): x-protocol structs(GLX QueryServerString req): x-protocol structs(GLX QueryVersion ans): x-protocol structs(GLX QueryVersion req): x-protocol structs(GLX ReadPixels ans): x-protocol structs(GLX ReadPixels req): x-protocol structs(GLX Render req): x-protocol structs(GLX RenderLarge req): x-protocol structs(GLX RenderMode ans): x-protocol structs(GLX RenderMode req): x-protocol structs(GLX SelectBuffer req): x-protocol structs(GLX SwapBuffers req): x-protocol structs(GLX UnsupportedPrivateRequest err): x-protocol structs(GLX UseXFont req): x-protocol structs(GLX VendorPrivate req): x-protocol structs(GLX VendorPrivateWithReply ans): x-protocol structs(GLX VendorPrivateWithReply req): x-protocol structs(GLX WaitGL req): x-protocol structs(GLX WaitX req): x-protocol structs(GrabButton req): x-protocol structs(GrabKey req): x-protocol structs(GrabKeyboard ans): x-protocol structs(GrabKeyboard req): x-protocol structs(GrabPointer ans): x-protocol structs(GrabPointer req): x-protocol structs(GrabServer req): x-protocol structs(GraphicsExposure ev): x-protocol structs(GravityNotify ev): x-protocol structs(IDChoice err): x-protocol structs(ImageText16 req): x-protocol structs(ImageText8 req): x-protocol structs(Implementation err): x-protocol structs(InstallColormap req): x-protocol structs(InternAtom ans): x-protocol structs(InternAtom req): x-protocol structs(KeymapNotify ev): x-protocol structs(KeyPress ev): x-protocol structs(KeyRelease ev): x-protocol structs(KillClient req): x-protocol structs(LeaveNotify ev): x-protocol structs(Length err): x-protocol structs(ListExtensions ans): x-protocol structs(ListExtensions req): x-protocol structs(ListFonts ans): x-protocol structs(ListFonts req): x-protocol structs(ListFontsWithInfo ans): x-protocol structs(ListFontsWithInfo req): x-protocol structs(ListHosts ans): x-protocol structs(ListHosts req): x-protocol structs(ListInstalledColormaps ans): x-protocol structs(ListInstalledColormaps req): x-protocol structs(ListProperties ans): x-protocol structs(ListProperties req): x-protocol structs(LookupColor ans): x-protocol structs(LookupColor req): x-protocol structs(MapNotify ev): x-protocol structs(MappingNotify ev): x-protocol structs(MapRequest ev): x-protocol structs(MapSubwindows req): x-protocol structs(MapWindow req): x-protocol structs(Match err): x-protocol structs(MIT-SCREEN-SAVER Notify ev): x-protocol structs(MIT-SCREEN-SAVER QueryInfo ans): x-protocol structs(MIT-SCREEN-SAVER QueryInfo req): x-protocol structs(MIT-SCREEN-SAVER QueryVersion ans): x-protocol structs(MIT-SCREEN-SAVER QueryVersion req): x-protocol structs(MIT-SCREEN-SAVER SelectInput req): x-protocol structs(MIT-SCREEN-SAVER SetAttributes req): x-protocol structs(MIT-SCREEN-SAVER Suspend req): x-protocol structs(MIT-SCREEN-SAVER UnsetAttributes req): x-protocol structs(MIT-SHM Attach req): x-protocol structs(MIT-SHM BadSeg err): x-protocol structs(MIT-SHM Completion ev): x-protocol structs(MIT-SHM CreatePixmap req): x-protocol structs(MIT-SHM Detach req): x-protocol structs(MIT-SHM GetImage ans): x-protocol structs(MIT-SHM GetImage req): x-protocol structs(MIT-SHM PutImage req): x-protocol structs(MIT-SHM QueryVersion ans): x-protocol structs(MIT-SHM QueryVersion req): x-protocol structs(MotionNotify ev): x-protocol structs(Name err): x-protocol structs(NoExposure ev): x-protocol structs(NoOperation req): x-protocol structs(OpenFont req): x-protocol structs(Pixmap err): x-protocol structs(PolyArc req): x-protocol structs(PolyFillArc req): x-protocol structs(PolyFillRectangle req): x-protocol structs(PolyLine req): x-protocol structs(PolyPoint req): x-protocol structs(PolyRectangle req): x-protocol structs(PolySegment req): x-protocol structs(PolyText16 req): x-protocol structs(PolyText8 req): x-protocol structs(PropertyNotify ev): x-protocol structs(PutImage req): x-protocol structs(QueryBestSize ans): x-protocol structs(QueryBestSize req): x-protocol structs(QueryColors ans): x-protocol structs(QueryColors req): x-protocol structs(QueryExtension ans): x-protocol structs(QueryExtension req): x-protocol structs(QueryFont ans): x-protocol structs(QueryFont req): x-protocol structs(QueryKeymap ans): x-protocol structs(QueryKeymap req): x-protocol structs(QueryPointer ans): x-protocol structs(QueryPointer req): x-protocol structs(QueryTextExtents ans): x-protocol structs(QueryTextExtents req): x-protocol structs(QueryTree ans): x-protocol structs(QueryTree req): x-protocol structs(RANDR GetScreenInfo ans): x-protocol structs(RANDR GetScreenInfo req): x-protocol structs(RANDR QueryVersion ans): x-protocol structs(RANDR QueryVersion req): x-protocol structs(RANDR RefreshRates): x-protocol structs(RANDR ScreenChangeNotify ev): x-protocol structs(RANDR ScreenSize): x-protocol structs(RANDR SelectInput req): x-protocol structs(RANDR SetScreenConfig ans): x-protocol structs(RANDR SetScreenConfig req): x-protocol structs(RecolorCursor req): x-protocol structs(RECORD BadContext err): x-protocol structs(RECORD ClientInfo): x-protocol structs(RECORD CreateContext req): x-protocol structs(RECORD DisableContext req): x-protocol structs(RECORD EnableContext ans): x-protocol structs(RECORD EnableContext req): x-protocol structs(RECORD ExtRange): x-protocol structs(RECORD FreeContext req): x-protocol structs(RECORD GetContext ans): x-protocol structs(RECORD GetContext req): x-protocol structs(RECORD QueryVersion ans): x-protocol structs(RECORD QueryVersion req): x-protocol structs(RECORD Range): x-protocol structs(RECORD Range16): x-protocol structs(RECORD Range8): x-protocol structs(RECORD RegisterClients req): x-protocol structs(RECORD UnregisterClients req): x-protocol structs(RENDER AddGlyphs req): x-protocol structs(RENDER AddTraps req): x-protocol structs(RENDER ANIMCURSORELT): x-protocol structs(RENDER ChangePicture req): x-protocol structs(RENDER COLOR): x-protocol structs(RENDER Composite req): x-protocol structs(RENDER CompositeGlyphs16 req): x-protocol structs(RENDER CompositeGlyphs32 req): x-protocol structs(RENDER CompositeGlyphs8 req): x-protocol structs(RENDER CreateAnimCursor req): x-protocol structs(RENDER CreateConicalGradient req): x-protocol structs(RENDER CreateCursor req): x-protocol structs(RENDER CreateGlyphSet req): x-protocol structs(RENDER CreateLinearGradient req): x-protocol structs(RENDER CreatePicture req): x-protocol structs(RENDER CreateRadialGradient req): x-protocol structs(RENDER CreateSolidFill req): x-protocol structs(RENDER DIRECTFORMAT): x-protocol structs(RENDER FillRectangles req): x-protocol structs(RENDER FreeGlyphs req): x-protocol structs(RENDER FreeGlyphSet req): x-protocol structs(RENDER FreePicture req): x-protocol structs(RENDER Glyph err): x-protocol structs(RENDER GLYPHINFO): x-protocol structs(RENDER GlyphSet err): x-protocol structs(RENDER INDEXVALUE): x-protocol structs(RENDER LINEFIX): x-protocol structs(RENDER PICTDEPTH): x-protocol structs(RENDER PictFormat err): x-protocol structs(RENDER PICTFORMINFO): x-protocol structs(RENDER PictOp err): x-protocol structs(RENDER PICTSCREEN): x-protocol structs(RENDER Picture err): x-protocol structs(RENDER PICTVISUAL): x-protocol structs(RENDER POINTFIX): x-protocol structs(RENDER QueryFilters ans): x-protocol structs(RENDER QueryFilters req): x-protocol structs(RENDER QueryPictFormats ans): x-protocol structs(RENDER QueryPictFormats req): x-protocol structs(RENDER QueryPictIndexValues ans): x-protocol structs(RENDER QueryPictIndexValues req): x-protocol structs(RENDER QueryVersion ans): x-protocol structs(RENDER QueryVersion req): x-protocol structs(RENDER ReferenceGlyphSet req): x-protocol structs(RENDER SetPictureClipRectangles req): x-protocol structs(RENDER SetPictureFilter req): x-protocol structs(RENDER SetPictureTransform req): x-protocol structs(RENDER SPANFIX): x-protocol structs(RENDER TRANSFORM): x-protocol structs(RENDER TRAP): x-protocol structs(RENDER TRAPEZOID): x-protocol structs(RENDER Trapezoids req): x-protocol structs(RENDER TRIANGLE): x-protocol structs(RENDER Triangles req): x-protocol structs(RENDER TriFan req): x-protocol structs(RENDER TriStrip req): x-protocol structs(ReparentNotify ev): x-protocol structs(ReparentWindow req): x-protocol structs(Request err): x-protocol structs(ResizeRequest ev): x-protocol structs(RotateProperties req): x-protocol structs(SelectionClear ev): x-protocol structs(SelectionNotify ev): x-protocol structs(SelectionRequest ev): x-protocol structs(SendEvent req): x-protocol structs(SetAccessControl req): x-protocol structs(SetClipRectangles req): x-protocol structs(SetCloseDownMode req): x-protocol structs(SetDashes req): x-protocol structs(SetFontPath req): x-protocol structs(SetInputFocus req): x-protocol structs(SetModifierMapping ans): x-protocol structs(SetModifierMapping req): x-protocol structs(SetPointerMapping ans): x-protocol structs(SetPointerMapping req): x-protocol structs(SetScreenSaver req): x-protocol structs(SetSelectionOwner req): x-protocol structs(SHAPE Combine req): x-protocol structs(SHAPE GetRectangles ans): x-protocol structs(SHAPE GetRectangles req): x-protocol structs(SHAPE InputSelected ans): x-protocol structs(SHAPE InputSelected req): x-protocol structs(SHAPE Mask req): x-protocol structs(SHAPE Notify ev): x-protocol structs(SHAPE Offset req): x-protocol structs(SHAPE QueryExtents ans): x-protocol structs(SHAPE QueryExtents req): x-protocol structs(SHAPE QueryVersion ans): x-protocol structs(SHAPE QueryVersion req): x-protocol structs(SHAPE Rectangles req): x-protocol structs(SHAPE SelectInput req): x-protocol structs(StoreColors req): x-protocol structs(StoreNamedColor req): x-protocol structs(SYNC Alarm err): x-protocol structs(SYNC AlarmNotify ev): x-protocol structs(SYNC Await req): x-protocol structs(SYNC ChangeAlarm req): x-protocol structs(SYNC ChangeCounter req): x-protocol structs(SYNC Counter err): x-protocol structs(SYNC CounterNotify ev): x-protocol structs(SYNC CreateAlarm req): x-protocol structs(SYNC CreateCounter req): x-protocol structs(SYNC DestroyAlarm req): x-protocol structs(SYNC DestroyCounter req): x-protocol structs(SYNC GetPriority ans): x-protocol structs(SYNC GetPriority req): x-protocol structs(SYNC Initialize ans): x-protocol structs(SYNC Initialize req): x-protocol structs(SYNC INT64): x-protocol structs(SYNC ListSystemCounters ans): x-protocol structs(SYNC ListSystemCounters req): x-protocol structs(SYNC QueryAlarm ans): x-protocol structs(SYNC QueryAlarm req): x-protocol structs(SYNC QueryCounter ans): x-protocol structs(SYNC QueryCounter req): x-protocol structs(SYNC SetCounter req): x-protocol structs(SYNC SetPriority req): x-protocol structs(SYNC SYSTEMCOUNTER): x-protocol structs(SYNC TRIGGER): x-protocol structs(SYNC WAITCONDITION): x-protocol structs(TranslateCoordinates ans): x-protocol structs(TranslateCoordinates req): x-protocol structs(UngrabButton req): x-protocol structs(UngrabKey req): x-protocol structs(UngrabKeyboard req): x-protocol structs(UngrabPointer req): x-protocol structs(UngrabServer req): x-protocol structs(UninstallColormap req): x-protocol structs(UnmapNotify ev): x-protocol structs(UnmapSubwindows req): x-protocol structs(UnmapWindow req): x-protocol structs(Value err): x-protocol structs(VisibilityNotify ev): x-protocol structs(WarpPointer req): x-protocol structs(Window err): x-protocol structs(X-Resource Client): x-protocol structs(X-Resource QueryClientPixmapBytes ans): x-protocol structs(X-Resource QueryClientPixmapBytes req): x-protocol structs(X-Resource QueryClientResources ans): x-protocol structs(X-Resource QueryClientResources req): x-protocol structs(X-Resource QueryClients ans): x-protocol structs(X-Resource QueryClients req): x-protocol structs(X-Resource QueryVersion ans): x-protocol structs(X-Resource QueryVersion req): x-protocol structs(X-Resource Type): x-protocol structs(XC-MISC GetVersion ans): x-protocol structs(XC-MISC GetVersion req): x-protocol structs(XC-MISC GetXIDList ans): x-protocol structs(XC-MISC GetXIDList req): x-protocol structs(XC-MISC GetXIDRange ans): x-protocol structs(XC-MISC GetXIDRange req): x-protocol structs(XEVIE End ans): x-protocol structs(XEVIE End req): x-protocol structs(XEVIE Event): x-protocol structs(XEVIE QueryVersion ans): x-protocol structs(XEVIE QueryVersion req): x-protocol structs(XEVIE SelectInput ans): x-protocol structs(XEVIE SelectInput req): x-protocol structs(XEVIE Send ans): x-protocol structs(XEVIE Send req): x-protocol structs(XEVIE Start ans): x-protocol structs(XEVIE Start req): x-protocol structs(XFIXES BadRegion err): x-protocol structs(XFIXES ChangeCursor req): x-protocol structs(XFIXES ChangeCursorByName req): x-protocol structs(XFIXES ChangeSaveSet req): x-protocol structs(XFIXES CopyRegion req): x-protocol structs(XFIXES CreateRegion req): x-protocol structs(XFIXES CreateRegionFromBitmap req): x-protocol structs(XFIXES CreateRegionFromGC req): x-protocol structs(XFIXES CreateRegionFromPicture req): x-protocol structs(XFIXES CreateRegionFromWindow req): x-protocol structs(XFIXES CursorNotify ev): x-protocol structs(XFIXES DestroyRegion req): x-protocol structs(XFIXES ExpandRegion req): x-protocol structs(XFIXES FetchRegion ans): x-protocol structs(XFIXES FetchRegion req): x-protocol structs(XFIXES GetCursorImage ans): x-protocol structs(XFIXES GetCursorImage req): x-protocol structs(XFIXES GetCursorImageAndName ans): x-protocol structs(XFIXES GetCursorImageAndName req): x-protocol structs(XFIXES GetCursorName ans): x-protocol structs(XFIXES GetCursorName req): x-protocol structs(XFIXES HideCursor req): x-protocol structs(XFIXES IntersectRegion req): x-protocol structs(XFIXES InvertRegion req): x-protocol structs(XFIXES QueryVersion ans): x-protocol structs(XFIXES QueryVersion req): x-protocol structs(XFIXES RegionExtents req): x-protocol structs(XFIXES SelectCursorInput req): x-protocol structs(XFIXES SelectionNotify ev): x-protocol structs(XFIXES SelectSelectionInput req): x-protocol structs(XFIXES SetCursorName req): x-protocol structs(XFIXES SetGCClipRegion req): x-protocol structs(XFIXES SetPictureClipRegion req): x-protocol structs(XFIXES SetRegion req): x-protocol structs(XFIXES SetWindowShapeRegion req): x-protocol structs(XFIXES ShowCursor req): x-protocol structs(XFIXES SubtractRegion req): x-protocol structs(XFIXES TranslateRegion req): x-protocol structs(XFIXES UnionRegion req): x-protocol structs(XFree86-DRI AuthConnection ans): x-protocol structs(XFree86-DRI AuthConnection req): x-protocol structs(XFree86-DRI CloseConnection req): x-protocol structs(XFree86-DRI CreateContext ans): x-protocol structs(XFree86-DRI CreateContext req): x-protocol structs(XFree86-DRI CreateDrawable ans): x-protocol structs(XFree86-DRI CreateDrawable req): x-protocol structs(XFree86-DRI DestroyContext req): x-protocol structs(XFree86-DRI DestroyDrawable req): x-protocol structs(XFree86-DRI DrmClipRect): x-protocol structs(XFree86-DRI GetClientDriverName ans): x-protocol structs(XFree86-DRI GetClientDriverName req): x-protocol structs(XFree86-DRI GetDeviceInfo ans): x-protocol structs(XFree86-DRI GetDeviceInfo req): x-protocol structs(XFree86-DRI GetDrawableInfo ans): x-protocol structs(XFree86-DRI GetDrawableInfo req): x-protocol structs(XFree86-DRI OpenConnection ans): x-protocol structs(XFree86-DRI OpenConnection req): x-protocol structs(XFree86-DRI QueryDirectRenderingCapable ans): x-protocol structs(XFree86-DRI QueryDirectRenderingCapable req): x-protocol structs(XFree86-DRI QueryVersion ans): x-protocol structs(XFree86-DRI QueryVersion req): x-protocol structs(XINERAMA GetScreenCount ans): x-protocol structs(XINERAMA GetScreenCount req): x-protocol structs(XINERAMA GetScreenSize ans): x-protocol structs(XINERAMA GetScreenSize req): x-protocol structs(XINERAMA GetState ans): x-protocol structs(XINERAMA GetState req): x-protocol structs(XINERAMA IsActive ans): x-protocol structs(XINERAMA IsActive req): x-protocol structs(XINERAMA QueryScreens ans): x-protocol structs(XINERAMA QueryScreens req): x-protocol structs(XINERAMA QueryVersion ans): x-protocol structs(XINERAMA QueryVersion req): x-protocol structs(XINERAMA ScreenInfo): x-protocol structs(XpExtension AttributNotify ev): x-protocol structs(XpExtension BadContext err): x-protocol structs(XpExtension BadSequence err): x-protocol structs(XpExtension CreateContext req): x-protocol structs(XpExtension Notify ev): x-protocol structs(XpExtension PrintDestroyContext req): x-protocol structs(XpExtension PrintEndDoc req): x-protocol structs(XpExtension PrintEndJob req): x-protocol structs(XpExtension PrintEndPage req): x-protocol structs(XpExtension PRINTER): x-protocol structs(XpExtension PrintGetAttributes ans): x-protocol structs(XpExtension PrintGetAttributes req): x-protocol structs(XpExtension PrintGetContext ans): x-protocol structs(XpExtension PrintGetContext req): x-protocol structs(XpExtension PrintGetDocumentData ans): x-protocol structs(XpExtension PrintGetDocumentData req): x-protocol structs(XpExtension PrintGetImageResolution ans): x-protocol structs(XpExtension PrintGetImageResolution req): x-protocol structs(XpExtension PrintGetOneAttributes ans): x-protocol structs(XpExtension PrintGetOneAttributes req): x-protocol structs(XpExtension PrintGetPageDimensions ans): x-protocol structs(XpExtension PrintGetPageDimensions req): x-protocol structs(XpExtension PrintGetPrinterList ans): x-protocol structs(XpExtension PrintGetPrinterList req): x-protocol structs(XpExtension PrintGetScreenOfContext ans): x-protocol structs(XpExtension PrintGetScreenOfContext req): x-protocol structs(XpExtension PrintInputSelected ans): x-protocol structs(XpExtension PrintInputSelected req): x-protocol structs(XpExtension PrintPutDocumentData req): x-protocol structs(XpExtension PrintQueryScreens ans): x-protocol structs(XpExtension PrintQueryScreens req): x-protocol structs(XpExtension PrintQueryVersion ans): x-protocol structs(XpExtension PrintQueryVersion req): x-protocol structs(XpExtension PrintRehashPrinterList req): x-protocol structs(XpExtension PrintSelectInput req): x-protocol structs(XpExtension PrintSetAttributes req): x-protocol structs(XpExtension PrintSetContext req): x-protocol structs(XpExtension PrintSetImageResolution ans): x-protocol structs(XpExtension PrintSetImageResolution req): x-protocol structs(XpExtension PrintStartDoc req): x-protocol structs(XpExtension PrintStartJob req): x-protocol structs(XpExtension PrintStartPage req): x-protocol structs(XTEST CompareCursor ans): x-protocol structs(XTEST CompareCursor req): x-protocol structs(XTEST FakeInput req): x-protocol structs(XTEST GetVersion ans): x-protocol structs(XTEST GetVersion req): x-protocol structs(XTEST GrabControl req): x-protocol structs(XVideo AdaptorInfo): x-protocol structs(XVideo AttributeInfo): x-protocol structs(XVideo BadControl err): x-protocol structs(XVideo BadEncoding err): x-protocol structs(XVideo BadPort err): x-protocol structs(XVideo EncodingInfo): x-protocol structs(XVideo Format): x-protocol structs(XVideo GetPortAttribute ans): x-protocol structs(XVideo GetPortAttribute req): x-protocol structs(XVideo GetStill req): x-protocol structs(XVideo GetVideo req): x-protocol structs(XVideo GrabPort ans): x-protocol structs(XVideo GrabPort req): x-protocol structs(XVideo Image): x-protocol structs(XVideo ImageFormatInfo): x-protocol structs(XVideo ListImageFormats ans): x-protocol structs(XVideo ListImageFormats req): x-protocol structs(XVideo PortNotify ev): x-protocol structs(XVideo PutImage req): x-protocol structs(XVideo PutStill req): x-protocol structs(XVideo PutVideo req): x-protocol structs(XVideo QueryAdaptors ans): x-protocol structs(XVideo QueryAdaptors req): x-protocol structs(XVideo QueryBestSize ans): x-protocol structs(XVideo QueryBestSize req): x-protocol structs(XVideo QueryEncodings ans): x-protocol structs(XVideo QueryEncodings req): x-protocol structs(XVideo QueryExtension ans): x-protocol structs(XVideo QueryExtension req): x-protocol structs(XVideo QueryImageAttributes ans): x-protocol structs(XVideo QueryImageAttributes req): x-protocol structs(XVideo QueryPortAttributes ans): x-protocol structs(XVideo QueryPortAttributes req): x-protocol structs(XVideo Rational): x-protocol structs(XVideo SelectPortNotify req): x-protocol structs(XVideo SelectVideoNotify req): x-protocol structs(XVideo SetPortAttribute req): x-protocol structs(XVideo ShmPutImage req): x-protocol structs(XVideo StopVideo req): x-protocol structs(XVideo UngrabPort req): x-protocol structs(XVideo VideoNotify ev): x-protocol structs(XVideo-MotionCompensation CreateContext ans): x-protocol structs(XVideo-MotionCompensation CreateContext req): x-protocol structs(XVideo-MotionCompensation CreateSubpicture ans): x-protocol structs(XVideo-MotionCompensation CreateSubpicture req): x-protocol structs(XVideo-MotionCompensation CreateSurface ans): x-protocol structs(XVideo-MotionCompensation CreateSurface req): x-protocol structs(XVideo-MotionCompensation DestroyContext req): x-protocol structs(XVideo-MotionCompensation DestroySubpicture req): x-protocol structs(XVideo-MotionCompensation DestroySurface req): x-protocol structs(XVideo-MotionCompensation ListSubpictureTypes ans): x-protocol structs(XVideo-MotionCompensation ListSubpictureTypes req): x-protocol structs(XVideo-MotionCompensation ListSurfaceTypes ans): x-protocol structs(XVideo-MotionCompensation ListSurfaceTypes req): x-protocol structs(XVideo-MotionCompensation QueryVersion ans): x-protocol structs(XVideo-MotionCompensation QueryVersion req): x-protocol structs(XVideo-MotionCompensation SurfaceInfo): x-protocol structs*format-changes*: sgfc*properties*: sgfc-connect: x-protocol procedures-disconnect: x-protocol procedures-event-data: x-protocol procedures-event-synthetic?: x-protocol procedures-event-type: x-protocol procedures-internal-data: x-protocol procedures-simple-io-manager: x-protocol procedures-synchronous-request-proc: x-protocol procedures-wire<-event: x-protocol procedures-x: x-protocol procedures:DQ: zzz publishing:LF: zzz publishing:NULL: zzz publishingaccumulator: zzz personallyact: audio-cd-controlanalyze: sgfcARC: x-protocol structsargs->normalized-list: zzz subprocessassociate-font!: x-umbrages on the wireatom-manager: x-umbrages on the wirebit-field-diagram: bit-field-diagramcall-process: zzz subprocesscall-process->buffers: zzz subprocesschange-property!-proc: x-umbrages on the wireCHAR2B: x-protocol structsCHARINFO: x-protocol structscheck-hv: zzz banalitiescheck-ports: valid-ucs-pchildren: sgfccluster-mangler: zzz ciabattoneCOLORITEM: x-protocol structscondition-case: zzz personallyconnection: x-umbrages on the wirecopyright: zzz publishingcopyright-since: zzz publishingcreate-index-file!: fortunecron!: cron-walkcss-tree: zzz publishingdaemonize: zzz senz-altrodata: x-umbrages off the wiredefine-mapping: htmlize-schemeDEPTH: x-protocol structsdir-exists?: zzz filesystemdirectory-files: zzz filesystemdirectory-index-tree: write-html-directory-indexdirectory-vicinity: zzz filesystemdrawing: x-umbrages on the wireediting-buffer: mogrifyediting-buffer-manager: mogrifyexpand: zzz publishingexpand-file-name: zzz filesystemexpand-file-name-substituting-env-vars: zzz filesystemextract-stem-proc: zzz filesystemFE: zzz personallyfile-digest: whirlpool-sumfile-lines: zzz subprocessfile-newer-than-file?: zzz filesystemfilename-absolute-or-in-vicinity: zzz filesystemfilename-components: zzz filesystemfilename-components-append: zzz filesystemfilename-sans-end-sep-proc: zzz filesystemfilename-sans-end-slash: zzz filesystemfilename:: mogrifyfiltered-files: zzz filesystemfiltered-files-in-vicinity: zzz filesystemfind-file: mogrifyfind-file-read-only: mogrifyfind-program: zzz subprocessflatten: zzz publishingflatten-to: zzz publishingflock/exclusive: zz sys linux-gnuflock/shared: zz sys linux-gnuflock/unlock: zz sys linux-gnuFONTPROP: x-protocol structsFORMAT: x-protocol structsformat-atom-feed: format-atom-feedforms<-port: zzz personallyfortune-cookie: fortunefs: zzz personallyfse: zzz personallyfshell-command->string: zzz subprocessfso: zzz personallygenerate-C-symbol-set: generate-C-symbol-setget: sgfcget-meta-file: zzz various-dbget-one: sgfcgethostname: zz sys linux-gnugetopt-long: zzz bamboozledgetsid: zz sys linux-gnugrep: zzz lookingforgrep-l: zzz lookingforgrep-matches: zzz lookingforHFE: zzz personallyHOST: x-protocol structshtml-wurld-tree: display-wurldiovec: zz sys linux-gnukey-mod: zzz x-kbgrungekey-sym: zzz x-kbgrungekeysym<-symbol: zzz x-kbgrungekthx-core: zzz x-kbgrungelist<-: zzz publishingmake-buffered-caller: zzz subprocessmake-fso: zzz personallymake-text-outline-reader: todomake-unsigned-byte-stream: zzz emacsdreammark-up-news-excerpt: mark-up-news-excerptmk-key: zzz x-kbgrungemkdir-p: zzz filesystemn-from-enum: x-umbrages off the wiren<-color-name: x-umbrages off the wiren<-event-mask: x-umbrages off the wiren<-gx: x-umbrages off the wiren<-window-class: x-umbrages off the wirenodes: sgfcnot-dot-not-dotdot: zzz filesystemoption-ref: zzz bamboozledpeel: zzz publishingpersonal-pgtable-all: zzz various-dbpersonal-pgtable-defs: zzz various-dbpersonal-pgtable-manager: zzz various-dbpersonal-pgtable-worker: zzz various-dbpixel-width-proc: x-umbrages on the wirePOINT: x-protocol structsport-lines: zzz subprocesspp: pppress-ESC-to-quit!: x-umbrages on the wireprimes: primesqop<-alist: zzz banalitiesqop<-args: zzz banalitiesrandomly-hyperlinked: imgtxtlinkread-sgf: sgfcread-text-db-table: zzz various-dbread-xpilot-robots: read-xpilot-robotsreadv: zz sys linux-gnuRECTANGLE: x-protocol structsreport-zonkables!: report-zonkablesreset-tilde-cache!: zzz filesystemRGB: x-protocol structsrm-rf!: rm-rfsafe-rewind: zzz filesystemsave-cwd: zzz filesystemscan!-proc: valid-ucs-pSCREEN: x-protocol structsSEGMENT: x-protocol structssendfile: zz sys linux-gnusendfile/never-fewer: zz sys linux-gnuset-icccm-properties!: x-umbrages on the wireset-meta-file!: zzz various-dbSetup: x-protocol structsSetupAuthenticate: x-protocol structsSetupFailed: x-protocol structsSetupRequest: x-protocol structsshell-command->list: zzz subprocessshell-command->string: zzz subprocessshell-quote-argument: zzz subprocesssmhdwy: zzz publishingspew-html!: zzz publishingSTR: x-protocol structsstring-digest: whirlpool-sumstring-split-on-null: x-umbrages off the wirestring<-image-command: imgtxtlinkstring<-kw/sym: zzz publishingsubstitute-env-vars: zzz filesystemsymbol<-keysym: zzz x-kbgrungesymbol<-kw/sym: zzz publishingsysfmt: zzz subprocesssystem*: zzz subprocesstemporary-file-port: zzz filesystemtext-db-table-meta: zzz various-dbTIMECOORD: x-protocol structstxtoutline-reader: zzz txtoutlineupdate-all-html-data-pages!: zzz publishingupdate-page!: zzz publishingutf8-reader: zzz emacsdreamvalid-ucs2?: zzz emacsdreamvalid-ucs?: zzz emacsdreamVISUALTYPE: x-protocol structswhatever: zzz personallywith-cwd: zzz filesystemwrite-punily: scm2binwrite-sgf: sgfcwritev: zz sys linux-gnuxml2sexp: xml2sexpYYYY: zzz publishing~!DOCTYPE: zzz xhtml-tree~?xml: zzz xhtml-tree~a: zzz xhtml-tree~abbr: zzz xhtml-tree~acronym: zzz xhtml-tree~address: zzz xhtml-tree~area: zzz xhtml-tree~b: zzz xhtml-tree~base: zzz xhtml-tree~bdo: zzz xhtml-tree~big: zzz xhtml-tree~blockquote: zzz xhtml-tree~body: zzz xhtml-tree~br: zzz xhtml-tree~button: zzz xhtml-tree~caption: zzz xhtml-tree~cite: zzz xhtml-tree~code: zzz xhtml-tree~col: zzz xhtml-tree~colgroup: zzz xhtml-tree~dd: zzz xhtml-tree~del: zzz xhtml-tree~dfn: zzz xhtml-tree~div: zzz xhtml-tree~dl: zzz xhtml-tree~dt: zzz xhtml-tree~em: zzz xhtml-tree~fieldset: zzz xhtml-tree~form: zzz xhtml-tree~h1: zzz xhtml-tree~h2: zzz xhtml-tree~h3: zzz xhtml-tree~h4: zzz xhtml-tree~h5: zzz xhtml-tree~h6: zzz xhtml-tree~head: zzz xhtml-tree~hr: zzz xhtml-tree~html: zzz xhtml-tree~i: zzz xhtml-tree~img: zzz xhtml-tree~input: zzz xhtml-tree~ins: zzz xhtml-tree~kbd: zzz xhtml-tree~label: zzz xhtml-tree~legend: zzz xhtml-tree~li: zzz xhtml-tree~link: zzz xhtml-tree~map: zzz xhtml-tree~meta: zzz xhtml-tree~noscript: zzz xhtml-tree~object: zzz xhtml-tree~ol: zzz xhtml-tree~optgroup: zzz xhtml-tree~option: zzz xhtml-tree~p: zzz xhtml-tree~param: zzz xhtml-tree~pre: zzz xhtml-tree~q: zzz xhtml-tree~samp: zzz xhtml-tree~script: zzz xhtml-tree~select: zzz xhtml-tree~simple-strict-xhtml: zzz xhtml-tree~small: zzz xhtml-tree~span: zzz xhtml-tree~strong: zzz xhtml-tree~style: zzz xhtml-tree~sub: zzz xhtml-tree~sup: zzz xhtml-tree~table: zzz xhtml-tree~tbody: zzz xhtml-tree~td: zzz xhtml-tree~textarea: zzz xhtml-tree~tfoot: zzz xhtml-tree~th: zzz xhtml-tree~thead: zzz xhtml-tree~title: zzz xhtml-tree~tr: zzz xhtml-tree~tt: zzz xhtml-tree~ul: zzz xhtml-tree~var: zzz xhtml-tree