ttn-do

Table of Contents

ttn-do

This manual is for ttn-do 419, 2017-07-11.
Copyright 2017 Thien-Thi Nguyen.


1 as-xhtml

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.

2 base64

base64 1.0

 Usage: base64 [options] [FILE | -]

 Options are:
  -d, --decode       -- decode data
  -w, --wrap COLS    -- wrap encoded lines after COLS character
                        (default 76)

 With no FILE, or when FILE is "-", read standard input.

 The base64 encoding (RFC 2045) is basically a 3-byte to
 4-byte transform:

 GGGGGGGG NNNNNNNN UUUUUUUU <=> GGGGGG GGNNNN NNNNUU UUUUUU
 GGGGGGRR RRRROOOO OOKKKKKK <=> GGGGGG RRRRRR OOOOOO KKKKKK

 modulo line breaks and terminating delimiters.  It is widely used
 in MIME and other protocols where the transmission medium may not
 be guaranteed 8-bit clean.

2.1 Usage from Scheme

Procedure: base64-encode out-port input [line-break [crlf?]]

Write to out-port the result of base64-encoding input and return the number of bytes written. If out-port is #t, send to the current output port. If out-port is #f, return the result as a string, instead. input may be a string or a port.

Optional third arg line-break specifies the maximum number of columns to appear in the result before a line break. Actual number of columns is a rounded-down multiple of four, but not less than four. The result never ends with a line break. #f means omit line breaks entirely.

Optional fourth arg crlf? non-#f means use CRLF for line breaks instead of simply LF.

Procedure: base64-decode out-port input

Write to out-port the result of base64-decoding input and return the number of bytes written. If out-port is #t, send to the current output port. If out-port is #f, return the result as a string, instead. input may be a string or a port.


3 bit-field-diagram

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.

3.1 Usage from Scheme

Procedure: bit-field-diagram out port/spec

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 be read, or a specification (structured expression) itself.


4 browse-grumi

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.

5 bump-version

bump-version 2.3

 Usage: bump-version [--cool] [--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’).

 Normally it is an error if there is no configure.{ac,in} file.
 Option ‘--cool’ (short form ‘-c’) relaxes this.

 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.

6 burn-iso

burn-iso 1.6

 Usage: burn-iso [options] ISO

 Options:
  -d, --device DEVICE    -- use DEVICE (default: "/dev/hdc")
  -e, --eject            -- eject when done
  -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.

7 check-topodefs

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.

8 circle-frisk

circle-frisk 1.2

 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.

9 concordance

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.

10 cron-walk

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.

10.1 Usage from Scheme

Syntax: cron! [handlers…]

(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)))

11 cs

#!/bin/sh
if [ x$1 = x-f ] ; then
    rm -rf config.cache autom4te.cache
    set -- -r
fi
if [ x$1 = x-r ] ; then
    ./config.status --recheck && ./config.status
else
    ./config.status "$@"
fi

12 debian-package-downstream

debian-package-downstream 1.4

 Usage: debian-package-downstream [[--recurse] PKG ...]

 Find the downstream packages for each installed package 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.

13 demo

demo 2.2

 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.

14 display-state-summary

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.

15 display-wurld

display-wurld 1.4

 Usage: display-wurld [URL-LIST]

 Display an XHTML "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.

15.1 Usage from Scheme

Procedure: html-wurld-tree [keyword value…]
Keywords: size, gen, links 

Return an html-data tree made from an ASCII-representation of a globe image. Keyword parameters, default values, and their meanings:

#:size150Size in pixels (NxN) of the originating image.
#:gen#:ppmforgePreferred backend program used to generate the image, one of #:xearth, #:xplanet or #:ppmforge. The value can also be a symbol.
#:links#fA 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 a element, with the reference (attribute href) taken randomly from links. If links is a filename, that file should contain one URL per line.

16 edit-script-header

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.

17 format-css

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.

18 fortune

fortune 2.0

 Usage: fortune -l    (like "ls -l -I '*.dat' <standard-cookie-dir>")
        fortune
        fortune literature   [or other filename in standard cookie dir]
        fortune DIR/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.

 Usage: fortune --create-index [options] [FILENAME...]

 Invoked with ‘--create-index’ (or ‘-c’ for short), scan each FILENAME,
 which should be in fortune cookie format, and write FILENAME.dat, its
 index.

 The fortune cookie format is text containing groups of lines separated
 by "delim lines", a specially chosen character (traditionally the percent
 ‘%’ character) on a line by itself.  Use ‘--delim’ (or ‘-d’ for short)
 to specify another character.  The first and last lines may also be
 delim lines.  Each group of lines thus delimited is a "cookie".
 Thus, a file with N cookies may have N-1, N or N+1 delim lines.

 Use ‘--flag FLAG’ (or ‘-f’ for short) to set a bit corresponding
 to FLAG in the index.  This option may be specified multiple times,
 in which case the value is a list, accumulating left to right.
 Valid values for FLAG are:

  random   -- This does not do anything at the moment.
  ordered  -- Sort the cookies lexically, ignoring non-alphanumeric
              leading characters.
  rotated  -- Note that the cookies are ROT13.

18.1 Usage from Scheme

Procedure: create-index-file! out-name in-name delim [flags…]

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.

Procedure: fortune-cookie cookie-file [dat-file]

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.


19 function-tree

function-tree 1.2

 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.

20 generate-C-symbol-set

generate-C-symbol-set 1.2

 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
 -n, --numeric             -- produce numeric byte values only
 -e, --essential           -- omit count

 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 -n -e \
     Author Date Id
   const BYTE keywords[18] =
   {
     /* Author */ 6,65,117,116,104,111,114,0,
     /* Date */ 4,68,97,116,101,0,
     /* Id */ 2,73,100,0
   };

 Note that with ‘--zero’, the pool (sub)strings are C-compatible.

20.1 Usage from Scheme

Procedure: generate-C-symbol-set configuration ls

Return a string tree representing the C code for the symbol set ls (a list of strings), customized by configuration (an alist). Recognized configuration keys (symbols) are: zero, global, byte-type and pool-name. Values are boolean for zero and global, and string for the others.

You can use flatten (see zzz publishing), to render this tree. (This is what the shell command does.)


21 gnuvola-wip

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.

22 grumi

grumi 1.8

 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`

23 gutenberg2mbox

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.

24 gxferm

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.

25 hmm

hmm 1.0

 Usage: hmm [REPOS-LIST]

 Read file REPOS-LIST which contains the relative filenames
 of .git directories under the directory of REPOS-LIST.
 If unspecified, REPOS-LIST defaults to .USER.hmm.list in the
 current directory, where USER is the value of env var ‘USER’
 or env var ‘LOGIN’ or simply "nobody".

 Sort the dirs by modification time of the HEAD file,
 most recent first.

 For each related working dir WDIR (i.e., parent of .git dir),
 display to stdout the line:

  * YYYY-MM-DD HH:MM:SS  [[file:WDIR][WDIR]]  DESC

 followed by the output of shell command:

  git branch && git status

 (in WDIR) indented by two spaces (nice for Emacs Org mode).
 YYYY et al represent the modification time (localtime).  DESC
 is the output of "git describe", if applicable, or "-" otherwise.

26 htmlize-scheme

htmlize-scheme 2.2

 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)’
  -e, --emacs PROG   -- use PROG instead of default "emacs"

 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)
    (add-hook 'htmlize-before-hook 'scheme-mode)
    ;;;
    ;;; maybe do (load-file FILE) here
    ;;;
    (let ((enable-local-variables nil)
          (enable-local-eval nil))
      (htmlize-many-files command-line-args-left)))

26.1 Usage from Scheme

Procedure: define-mapping name [keyword value…]
Keywords: stem, type, recognize, lookup, data 

Define a mapping named name, a keyword or symbol. Valid keywords are:

#:stem string

This is the constant prefix for all targets in name.

#:type type

type is a keyword. At this time, only #:module-name is supported. That is the default value (thus, at this time, this keyword is entirely optional).

#:recognize recog

(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 #f or left unspecified, compose the regexp from the first symbol in each of the keys specified in the #:data value (see below).

#:lookup lookup

lookup is a procedure that takes two arguments: data (see below) and key. It should return the leaf associated with key, or #f if not found. This is typically assoc-ref, assv-ref or assq-ref. If recog is #f, this MUST be one of those for the constructed-regexp hack to work. key will be a the recognized text read as a Scheme object. For example, when type is #:module-name, key is a list of symbols.

#:data data

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:


27 imgtxtlink

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.

27.1 Usage from Scheme

Procedure: string<-image-command source [invert?]

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-#f means to include a call to pnminvert in the pipeline.

Execute the pipeline in a subshell and return its output as a string.

Procedure: randomly-hyperlinked string list-of-links [link-tree]

Profile string for small non-whitespace intervals to be “marked up” as the text of an XHTML anchor (a element), with reference taken randomly from list-of-links (list of strings). As as special case, if the CAR of list-of-links is the symbol file-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).


28 local-build

local-build 2.2

 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
 (filename of the form ‘STEM.tgz’ or ‘STEM.tar.[glx]z’),
 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

29 ls-tarballs

ls-tarballs 1.2

 Usage: ls-tarballs [DIR]

 List the compressed archives 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-*.FTYPE,
 FTYPE is either "tar.gz", "tar.lz" or "tar.xz",
 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 ".FTYPE").

 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.

30 magic

magic 1.3

 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.

31 maintainer-tools-versions

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.

32 make-boot-set

make-boot-set 2.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.

33 make-gnu-pkg-homepage

make-gnu-pkg-homepage 1.1

 Usage: make-gnu-pkg-homepage [options] INFILE

 Write to stdout some XHTML suitable for a GNU project
 homepage, using the contents of INFILE.  Options are:

  -o, --output FILE   -- write output to FILE
  -D, --debug         -- keep temporary html-data file;
                         write its name to stderr at finish

 The format was adapted from boilerplate.html w/ Parent-Version: 1.75.
 INFILE is a series of alternating keywords and sexps:

 #:name -- STRING
   the package name; in the output ‘tarname’ is downcased ‘name’
   and ‘bug-report-email’ is "bug-" prefixed to ‘tarname’

 #:license -- SYMBOL
   typically ‘GPLv3+’

 #:intro -- list of XHTML-TREE
   introduction to the package (what is it, why use it, etc);
   typically this is a series of ‘(~p ...)’ (paragraph) forms
   comprising strings and (properly nested) XHTML "~FOO" forms

 #:mailing-lists -- (BUG-REPORT-ROLE [(NAME ROLE) ...])
   a list whose car is a XHTML-TREE describing the role of
   ‘bug-report-email’, followed by sub-lists, naming other
   mailing lists and their respective roles

 #:helping-out -- list of SYMBOL
   flags for the "Getting involved" section; valid SYMBOLs:
     no-test        -- don't mention test releases
     no-translation -- don't mention translation efforts

 #:maintainers -- STRING
   real names of maintainers, comma-separated

 #:donation -- STRING
   URL for the "tip jar" link appended after the list of
   maintainers, in a pair of parens

 #:more-source -- list of STRING
   other filenames (in cwd) to link to in the "source" footer;
   no need to specify ‘NEWS-excerpt’

33.1 Usage from Scheme

Procedure: ~~standard-homepage alist

Expand to a tree comprising several ssi (or “server-side include”) directives and other boilerplate, properly formatted, based on the values of alist. This is an “internal” procedure.


34 make-pgtable

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.

35 mark-up-news-excerpt

mark-up-news-excerpt 1.3

 Usage: mark-up-news-excerpt [options] SPECFILE

 Process SPCEFILE, which must be in a special format, and
 display to stdout the XHTML tree of its "Latest release"
 paragraph and NEWS outline, including headings and body text.

 The NEWS must be in the format:

   PREAMBLE

   - VERSION | DATE
     - ITEM
     ...

   - OLDER-VERSION | OLDER-DATE
   ...

 Any PREAMBLE and OLDER-VERSION tree onwards are ignored.

 The SPECFILE format is line-oriented UTF-8 text, with comments
 starting with semicolon and going to the end of the line:

   ;;; HEADER

   * TAG   TEXT
   ...

   #:KEY  VALUE
   ...

   ;;; 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.

 The rest of the file is the "config section", made of alternating
 Scheme keywords and values.  These keywords are supported:

 * #:download-dir URI (string)
   In the "Latest release" paragraph, VERSION and DATE are
   formatted as "VERSION (DATE)".  If this option is given,
   that text is hyperlinked to URI.

 * #:extract FILENAME (string)
   By default the news file to mark up is taken as SPECFILE sans
   its extension -- e.g., for SPECFILE "NEWS.mune", use "NEWS".
   If this option is given, use FILENAME, instead.

 If optional arg ‘--xhtml’ (‘-x’ for short) is given, flatten
 the XHTML tree and display XHTML instead.  Follow each top-level
 element (i.e., ‘<p>’ and ‘<ul>’) with a newline.


 Usage: mark-up-news-excerpt -e excerpt-file [-d URL] [-x]

 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, including headings and body text.

 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’.

 If optional arg ‘--xhtml’ (‘-x’ for short) is given, flatten
 the XHTML tree and display XHTML instead.  Follow each top-level
 element (i.e., ‘<p>’ and ‘<ul>’) with a newline.

35.1 Usage from Scheme

Procedure: mark-up-news-excerpt excerpt-file [download-dir]

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).

Procedure: tree<-news-excerpt filename download-dir

Return a tree made from evaluating:

(mark-up-news-excerpt filename download-dir)

in the “current module”.


36 mmci

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.

37 mogrify

mogrify 1.2

 Usage: mogrify

 Do nothing and exit successfully.

37.1 Usage from Scheme

Syntax: editing-buffer buffer [body…]

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-buffer to 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-buffer and 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.

Object Property: filename: object

Return the (string) filename associated with object, or #f. This is an object property so you can set! it; that’s what find-file and find-file-read-only do on the buffer objects they return to effect visiting.

Procedure: editing-buffer-manager [buffer]

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.

Procedure: find-file-read-only filename

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.

Procedure: find-file filename

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.


38 new-cvsroot

new-cvsroot 1.1

 Usage: new-cvsroot NEW-ROOT

 Replace contents of all CVS/Root files under cwd w/ NEW-ROOT.

39 pg2edb

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")

40 phone

phone 2.0

 Usage: phone REGEXP

 Grep for REGEXP in ~/.phone database.

41 pp

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!)

41.1 Usage from Scheme

Procedure: pp sexp [port]

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 characters escaped, e.g., with ‘#\newline’ represented as ‘\n’ (two chars: #\\ and #\n).


42 ppmglobe

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.

43 primes

primes 1.1

 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.

43.1 Usage from Scheme

Procedure: primes limit

Return a list of prime numbers in the range [2,limit].


44 qm

#!/bin/sh
exec make --no-print-directory "$@"

45 random-info-node

random-info-node 1.4

 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 ".xz" or ".lzma" it is read using "xz -dc".
 If INFO ends with ".lz" it is read using "lzip -dc".
 If INFO ends with ".gz" it is read using "gzip -dc".

46 randomish-wep-key

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.

47 rcs-fast-export

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!

48 read-xpilot-robots

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.

48.1 Usage from Scheme

Procedure: read-xpilot-robots port

Read input in xpilot robots file format from port. Return a list of sexps.


49 refresh-hardlinks

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.

50 report-zonkables

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.

50.1 Usage from Scheme

Procedure: report-zonkables! filename

Scan filename, which must name a file in zonkables text db table format, and display current zonkables analysis to the current output port.


51 rescue-xcb

rescue-xcb 1.2

 Usage: rescue-xcb INPUT-DIR OUTPUT-DIR

 Read INPUT-DIR/*.xml and write OUTPUT-DIR/*.eaab.
 Filenames undergo s/_/-/g.

52 rm-rf

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.

52.1 Usage from Scheme

Procedure: rm-rf! verbose? dir

Recursively delete dir. Display progress messages if verbose? is non-#f.


53 run-signed-batch-job

run-signed-batch-job 2.2

 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)

54 scm2bin

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.

54.1 Usage from Scheme

Procedure: write-punily x

Behave like (write x), 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  \v

Additionally, ‘#\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

55 serve-debiso

serve-debiso 2.3

 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.)

56 sizzweb

sizzweb 1.16

 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.

57 snap-iso

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.

58 st

#!/bin/sh
exec strace -f -e open "$@" 2>&1 | sed /o.such.file/d

59 sta

#!/bin/sh
exec strace -f -e open "$@" 2>&1

60 todo

todo 1.2

 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

60.1 Usage from Scheme

Procedure: make-text-outline-reader re [specs…]

Use txtoutline-reader (see zzz txtoutline) on re and specs and return a procedure that scans a file given its filename.


61 urxvt-setfont

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).

62 utf8-dump

utf8-dump 1.0

 Usage: utf8-dump [options] [FILE | -]

 Display a running analysis of the (presumed) UTF-8 byte stream from
 FILE (or stdin if FILE is "-" or omitted), and a summary when done.

 Options:
  -u, --uni-data FILENAME  -- Consult FILENAME for Unicode names
  -A, --omit-ascii         -- Don't display values < 128

 Output lines have form:

   V-COUNT  B-OFS  B-COUNT  U+N  (BYTE...)  [CHAR  [- NAME]]

 Columns are separated by one or more space (U+20) characaters.

 - V-COUNT is the decoded value count, starting with 1.

 - B-OFS is the byte stream offset, starting with 0.

 - B-COUNT is how many bytes the encoded value occupies
   (thus, this line B-OFS + B-COUNT => next line B-OFS).

 - In ‘U+N’, the ‘U+’ is literal, while N is four (or more)
   hex digits that indicate the decoded value.

 - BYTE... is one or more two-hex-digit, space-separated
   values in the range [0,255] (i.e., ‘00’ through ‘ff’).

 - If N is less than 128, CHAR is its Scheme character object as
   produced by ‘integer->char’, otherwise this column is omitted.

 - If given ‘--uni-data FILENAME’ -- typically UnicodeData.txt:

      0000;<control>;Cc;0;BN;;;;;N;NULL;;;;
      0001;<control>;Cc;0;BN;;;;;N;START OF HEADING;;;;
      0002;<control>;Cc;0;BN;;;;;N;START OF TEXT;;;;
      ...

   then NAME is the Unicode name, e.g., "LATIN SMALL LETTER U".
   If NAME is "<control>" it is appended with a parenthetical
   "second name".  If no second name is defined, use U+N instead.

 On EOF, display two lines:

   eof: B-OFS
   -----

 On invalid bytes, scan forward until a valid lead byte is found and
 display the line:

   B-OFS   - (BAD...) [(IGNORED...)]

 where B-OFS is aligned with the normal output B-OFS, the "-" is
 literal, and (BAD...) is aligned with the normal output (BYTE...).
 Each BAD is a byte that failed validation.  If stream resync ignored
 some bytes, those are in (IGNORED...), otherwise that info is omitted.

 Finally, display the line:

   eof: (B-OFS . V-COUNT)

 where B-OFS and V-COUNT are the finishing values.  If the stream is
 from a file, B-OFS should be identical to the file size (in bytes).

 Example:
  $ printf '\342\200\230u\342\200\230\n' \
     | utf8-dump -u ~/tmp/UnicodeData-9.0.0.txt
         1       0  3  U+2018 (e2 80 98) - LEFT SINGLE QUOTATION MARK
         2       3  1  U+0075 (75) #\u - LATIN SMALL LETTER U
         3       4  3  U+2019 (e2 80 99) - RIGHT SINGLE QUOTATION MARK
         4       7  1  U+000a (0a) #\newline - <control> (LINE FEED (LF))
  eof: 8
  -----
  eof: (8 . 4)

63 valid-ucs-p

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.

63.1 Usage from Scheme

Procedure: scan!-proc skip-ucs-check?

Return a procedure p capable 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 p may throw invalid-utf8 or invalid-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.

Procedure: check-ports skip-ucs-check? ports

Check each port in ports using the procedure p returned calling scan!-proc with arg skip-ucs-check?. ports may also be a single input-port.

If scanning results in invalid-utf8 or invalid-ucs errors, display the location of the error in the form:

FILENAME:LNO:COL: KEY (HEX-BYTE-VALUE...)

where key is either invalid-utf8 or invalid-ucs, and hex-byte-value is a hexadecimal integer in the range [0,255]; then do (exit #f).


64 vcg-convert

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.

65 wcat

wcat 1.6

 Usage: wcat [options] [URL ...]

 Options:
  -h, --headers   -- output only headers (unless --both)
  -z, --zcat      -- pass output through "gzip -d -c -f"
  -b, --both      -- output headers, blank line, body
  -n, --newline   -- make sure each output starts on a new line
  -B, --bad ELEM  -- send a non-well formed ELEM (for server testing)

 Cat out web arguments.  When headers are output, the format is:

   PROTOCOL/VERSION RESPONSE-CODE RESPONSE-MESSAGE
   HEADER-NAME: HEADER-VALUE
   ...

 URL can have a "standard" form (e.g., "http://HOST:PORT/PATH"),
 or SOCKET-NAME,PATH (note comma separator), where SOCKET-NAME is
 a Unix-domain filename and PATH is the same as for a standard URL.

 ELEM is one of:
 * header-no-colon
   Send a "header" line "WRONG".
 * header-no-name
   Send a "header" line ":WRONG".

66 whirlpool-sum

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.

66.1 Usage from Scheme

Procedure: string-digest string

Compute the WHIRLPOOL digest of string. Return a vector of length 64, with each element a byte value (0–255), representing the digest.

Procedure: file-digest filename

Return the string-digest of the contents of filename.


67 write-html-directory-index

write-html-directory-index 1.11

 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.

67.1 Usage from Scheme

Procedure: directory-index-tree ignored labels upath dir

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/

68 x-list-extensions

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.

69 xearth-mapdata-to-text-db-table

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.

70 xlsatoms

xlsatoms 1.1

 Usage: xlsatoms

 Display atoms from the X server, one per line.

71 xlsfonts

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.

72 xml2sexp

xml2sexp 1.8

 Usage: xml2sexp [options] [XMLFILE...]

 Pretty-print contents of XMLFILE... to stdout.
 If XMLFILE is "-" or omitted, 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 from stdin

 -c, --combine-chardata  -- combine contiguous ‘character-data’ nodes;
                            done prior to ‘-w’ processing

 -w, --keep-whitespace   -- do NOT ignore ‘character-data’ nodes where
                            all characters are in ‘char-set: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

 -m, --map MAPFILE       -- Read external entity reference map from
                            MAPFILE [~/.ttn-do/xml2sexp.d/map]

 -s, --sxml N            -- output SXML N normal form, where N
                            is one of 0, 1, 2, 3 (EXPERIMENTAL)

 External entity references are resolved using the ‘system-id’
 portion only.  If ‘system-id’ starts with "http://", then fail.
 (Support for download / caching these is not yet implemented.)
 If ‘system-id’ names a file in the current directory, open it.
 If MAPFILE exists, ‘read’ it to map the ‘system-id’ to a local
 filename; open it.  Each entry in MAPFILE looks something like:

 ("http://www.gnu.org/software/texinfo/dtd/4.13/texinfo.dtd"
  . "~/tmp/texinfo.dtd")

 In other words: (SYSTEM-ID . LOCAL-FILENAME), where both
 SYSTEM-ID and LOCAL-FILENAME are normal Scheme strings.

 On failure, display message w/ all unresolved reference portions
 (context, base, system-id ,public-id) to stderr and exit failurefully.

72.1 Usage from Scheme

Procedure: xml2sexp options port

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, with one exception: there is no default mapfile (in which case handling for external entity references is not enabled). Also, the value for keep-whitespace is a boolean, whereas that for omit is a list of symbols.


73 xout

xout 1.3

 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").  If NAME
                         begins with "-" (hyphen), prefix wth "/" (slash),
                         i.e., "/NAME", to avoid arg parsing problems.

 -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

74 xprop

xprop 1.5

 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.

75 module (ttn-do zz sys linux-gnu)

Some of these are POSIX and thus really belong in Guile proper.

Scheme Procedure: getsid pid

Return the session id associated with pid.

Scheme Procedure: gethostname

Return the host name as a string, or #f if there were problems.

Scheme Procedure: sendfile outfd infd offset count

Call sendfile(2) with args outfd, infd, offset and count, all non-negative integers. As a special case, offset may also be #f, which means start to read from the “current” file offset, and update it afterwards. Return the number of bytes actually written.

Scheme Procedure: sendfile/never-fewer outfd infd offset count

Call sendfile(2) with args outfd, infd, offset and count, all non-negative integers. Loop until all bytes are sent (or error).

Scheme Procedure: iovec sequence

Return an iovec derived from sequence, a list or vector. This object is suitable for passing to readv and writev. 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.

The iovec object keeps track of the current element, initially, the first. After the i/o operation that uses it finishes (and returns #f), this state is reset so that subsequent calls proceed from the beginning.

Scheme Procedure: readv fdes iovec [count]

Read from fdes data specified by iovec using readv(2). Return number of bytes successfully read, or #f if 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”).

Scheme Procedure: writev fdes iovec [count]

Write to fdes data specified by iovec using writev(2). Return number of bytes successfully written, or #f if 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”).


76 module (ttn-do zzz bamboozled)

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?.

Scheme Procedure: getopt-long args grammar

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. version if 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-char char)

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-long will raise an error if it is not found in args.

(value bool)

If bool is #t, the option accepts a value; if it is #f, it does not; and if it is the symbol optional, the option may appear in args with or without a value.

(merge-multiple? bool)

If bool is #t and the value property 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.

(predicate func)

If the option accepts a value (i.e. you specified (value #t) for this option), then getopt-long will 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.

Scheme Procedure: option-ref options key default

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 to getopt-long.


77 module (ttn-do zzz banalities)

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…

See Command-Line Interfaces in The GNU Coding Standards.

Scheme Procedure: check-hv args config [flags…]

Check args (list of strings) for second element being ‘--help’ or ‘--version’. If found, display the respective information, using config, to stdout and then exit successfully. 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 package is specified, is:

PROGRAM (PACKAGE) VERSION
PROGRAM VERSION

where program is (basename (car args)).

help

Either a (typically multi-line) string, a thunk that produces a string, or the symbol commentary, which means use file-commentary from 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:

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.

Scheme Procedure: qop<-args args option-spec

Do (getopt-long args 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-long call.

(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-long stops 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 proc with the value and return its result. Otherwise, return #f. This is a shorthand for (and=> (qop key) 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.

Scheme Procedure: qop<-alist alist

Return a procedure qop that encapsulates alist, an association list with eq?-comparable keys. This is like qop<-args, except that (qop #t) simply returns alist.


78 module (ttn-do zzz personally)

Miscellaneous stuff that doesn’t really belong anywhere else (yet?).

Scheme Syntax: whatever [body…]

Evaluate body. The value is explicitly “unspecified”.

Scheme Syntax: FE ls1 [... lsN] proc

Basically: (for-each proc ls1lsN)
proc is an n-ary procedure, where n is the number of lists.

Scheme Syntax: HFE k v ht) body[...]

Expand to hash-for-each like so:

(HFE (k v ht) foo...)
⇒
(hash-for-each (lambda (k v) foo...) ht)
Scheme Syntax: condition-case var bodyform [handlers…]

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-case and 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.

Scheme Procedure: fs s [args…]

Apply simple-format to format string s and args. Return a string.

Scheme Procedure: fso s [args…]

Apply simple-format to format string s and args. Send the result to the current output port.

Scheme Procedure: fse s [args…]

Apply simple-format to format string s and args. Send the result to the current error port.

Scheme Procedure: make-fso port

Return a procedure that acts like fso for port.

78.1 Accumulators

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))
Scheme Procedure: accumulator

Return an accumulator.

78.2 Miscellaneous

Scheme Procedure: forms<-port port

Return a list of forms read from port.


79 module (ttn-do zzz filesystem)

79.1 file ports

Scheme Procedure: safe-rewind port

Flush port (with force-output) if an output port, then seek to its initial position (zero). Return port.

Scheme Procedure: temporary-file-port

Return a new read/write temporary file port, i.e., one backed by the filesystem, and automatically deleted on process exit.

79.2 directories

Scheme Procedure: directory-vicinity directory

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.

Scheme Procedure: dir-exists? name

Return #t iff directory name exists.

Scheme Procedure: mkdir-p dir

Create a directory dir, as well as any missing parent dirs.

Scheme Procedure: directory-files dir

Return list of file names in directory dir.

Scheme Procedure: filtered-files filter dir

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.

Scheme Procedure: filtered-files-in-vicinity dir filter [options…]

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.

Scheme Procedure: not-dot-not-dotdot file

Return #f if file is "." or "..", otherwise return file. The directory component (prefix up to and including the /, if any) is ignored.

Scheme Procedure: extract-stem-proc ext [transform]

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.

Scheme Procedure: filename-sans-end-sep-proc sep-char

Take sep-char and return a procedure that, given filename, returns a copy of it w/o the ending sep-char.

Scheme Procedure: file-newer-than-file? file1 file2

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.

Scheme Syntax: save-cwd [body…]

Evaluate body and restore the original cwd afterward. It is an error to specify a null body.

Scheme Syntax: with-cwd dir [body…]

Change directory to dir, evaluate body and restore cwd. Return what body returns. It is an error to specify a null body.

79.3 filenames

Scheme Procedure: filename-absolute-or-in-vicinity name dir

If name begins with "/", return it. Otherwise, return a new string composed by taking name in vicinity of dir.

Scheme Procedure: filename-stem filename

Return filename without the trailing ‘.extension’. It is an error if filename does not contain #\..

(filename-stem "abc.def")
⇒ "abc"
Scheme Procedure: filename-sans-end-slash name

Return name, a string, stripping the terminating "/" character. If there is no "/", just return name.

Scheme Procedure: filename-components string

Return a list of filename components parsed from string. Components are delimited by "/", which is discarded. Null string components are also discarded.

Scheme Procedure: filename-components-append ls

Return a string composed by prefixing each element of ls with "/".

Scheme Procedure: expand-file-name name [default-directory]

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.

Scheme Procedure: reset-tilde-cache! [size]

Reset the cache expand-file-name uses for the results of expanding ~ and ~USER. Optional arg size specifies the hash table bucket count to use (default is 7).

Scheme Procedure: substitute-env-vars string

Substitute environment variables referred to in string. $FOO where 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, in ab$cd-x, $cd is treated as an environment variable.

Use $$ to insert a single dollar sign.

Scheme Procedure: expand-file-name-substituting-env-vars name [default-directory]

Substitute env vars in string then expand it as a filename. See substitute-env-vars and expand-file-name.

79.4 misc

Scheme Procedure: write-if-changed s filename

Write string s to filename only if either filename does not already exist, or its contents differ from s. Return #t if s is written, #f otherwise.


80 module (ttn-do zzz lookingfor)

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).

Scheme Procedure: grep re strings [flags…]

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.

Scheme Procedure: grep-matches re strings [flags…]

Return non-#f match results of regexp-exec of 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 count flag 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.

Scheme Procedure: grep-l re files

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.


81 module (ttn-do zzz publishing)

81.1 template management

Scheme Procedure: flatten tree [out]

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.

Scheme Procedure: flatten-to port tree

Flatten to port (using flatten) the tree, a nested list of strings. If port is #f return a string, instead.

Scheme Procedure: html-data<-file filename

Evaluate the forms in filename (in the “current module”) and return the value of the last form.

Scheme Procedure: update-all-html-data-pages! pages

Update all elements of pages, a list of filenames. The template for each filename is named filename-data, e.g., index.xhtml in pages uses template index.xhtml-data. For each filename:

“Load” template file (evaluating forms in the “current module”); take the last value as a tree; construct a string by flattening it; and if filename does not exist or if the string differs from the contents of filename, write it there. In that case, set the mode of filename to #o644.

Write status to stdout, either “wrote filename” or “filename unchanged”, followed by newline.

81.2 markup

Scheme Procedure: w/o-<&> string

Return a tree from string made by replacing:

#\< with "&lt;"
#\&      "&amp;"
#\>      "&gt;"

If there are no such characters in string, simply return it.

In addition to the procs described below, the following named strings are available (NB: the colon is part of the variable name):

String: :DQ

The double-quote character #\", as a string.

String: :LF

The newline character #\newline, as a string.

String: :NULL

The null string, "".

Scheme Procedure: symbol<-kw/sym keyword-or-symbol

Return keyword-or-symbol as a symbol.

Scheme Procedure: string<-kw/sym keyword-or-symbol

Return keyword-or-symbol as a string.

Scheme Procedure: peel list

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.

Scheme Procedure: expand elem [keyword value…]
Keywords: xbsc, neck, prep-body,
no-end-tag-if-null-body?, end-tag, tail 

Return a proc p that expands into a tree based on elem. Precisely, p partitions its arglist with peel into 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-#f means “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 :LF when 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 map and 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-#f specifies 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 :LF when specified.

Scheme Procedure: list<- arg

If arg is already a list, return it. Otherwise return (list arg).

Scheme Procedure: css-tree rule

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.

81.3 miscellaneous

Scheme Procedure: parent-directories upath

Split upath into directory components and return a list of elements (ref name), where ref is a tree and name is a string. If upath has no parent directories, return #f.

(parent-directories "/top")
⇒ #f

(parent-directories "/top/mid/low")
⇒
(("/" "/")
 (("/" "top/") "top/")
 ((("/" "top/") "mid/") "mid/"))
Scheme Procedure: YYYY

Return current year, as a string.

Scheme Procedure: copyright [prefix…]

Return tree with optional prefix:

("Copyright (C) " prefix YEAR " Thien-Thi Nguyen")
Scheme Procedure: copyright-since year

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.

Scheme Procedure: smhdwy diff [sep]

Return a tree describing the time duration diff (number of seconds). Blocks are (suffix, name, max value, number of seconds):

sseconds591, (*)
mminutes5960, (* 60)
hhours233600, (* 60 60)
ddays9086400, (* 60 60 24)
wweeks104604800, (* 60 60 24 7)
yyears(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"

82 module (ttn-do zzz senz-altro)

Scheme Procedure: daemonize rest play pidfile [etc…]

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 a primitive-fork.

For parent:

For child:


83 module (ttn-do zzz txtoutline)

Scheme Procedure: txtoutline-reader re specs

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                1

In 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             1

re 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-number in 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-divisor or compute-level in 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? bool

The proc value associated with key compute-level should take a Scheme match structure (as returned by regexp-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-number if re specifies the whole body, or if you want to make use of the extra fields parsing. The extra-fields value is a sub-alist, whose keys name additional fields that are to be recognized. These fields along with level are 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 #t if there is a match and the result is not an empty string, and #f otherwise.

Normally, only header lines are considered. Use more-lines? with a non-#f value 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 newline characters and all trailing whitespace (as per SRFI 13 ‘string-trim-right’) removed.


84 module (ttn-do zzz subprocess)

84.1 low level

Scheme Procedure: shell-quote-argument arg

Quote arg for passing as argument to an inferior shell.

Scheme Procedure: args->normalized-list [args…]

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")
Scheme Procedure: call-process program [keyword value…]
Keywords: inp, outp, errp, norm, args 

Call 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. #f means /dev/null.

#:outp (current-output-port)

Output port. #f means discard output; 0 (zero) means discard, don’t wait for program to terminate, and return #f.

#:errp (current-error-port)

Error output port. #f means discard output.

#:norm #f

Non-#f means program and args should be passed through args->normalized-list.

#:args ()

List of additional args to pass to program.

Scheme Procedure: call-process->buffers program [keyword value…]
Keywords: inb, outb, errb, norm, args 

Call 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-#f means that program and args should be passed through args->normalized-list.

#:args ()

List of additional args to pass to program.

Scheme Procedure: make-buffered-caller program [keyword value…]
Keywords: inb, args 

Return 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-val for 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-lines and #:errbuf-lines commands use newline to separate.

84.2 high level

Scheme Procedure: shell-command->string cmd

Run shell command cmd and return its output as a string.

Scheme Procedure: fshell-command->string s [args…]

Like shell-command->string, with the command formed by applying simple-format to 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 (guile)Line/Delimited). If unspecified, the default is trim.

Scheme Procedure: shell-command->list cmd [handle-delim…]

Run shell command cmd and return its output as a list of strings.

Scheme Procedure: port-lines port [handle-delim…]

Return a list of strings, representing the lines read from port.

Scheme Procedure: file-lines filename [handle-delim…]

Return a list of strings, representing the lines found in filename.

Scheme Procedure: system* [args…]

Echo args to make a string and pass it to system.

Scheme Procedure: sysfmt [args…]

Apply simple-format to args and pass to system. The CAR of args is the format string.

84.3 misc

Scheme Procedure: find-program name

Search env var PATH for executable program name. If found, return the absolute name, otherwise #f.


85 module (ttn-do zzz ciabattone)

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.

Scheme Procedure: cluster-mangler who root [tweaks]

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-#f if successful. Optional arg tweaks is for command make-cluster, described below. Recognized commands (keywords ok, too):

cluster-exists?

Return non-#f if the cluster (directory structure) exists.

make-cluster

If the directory root does not exist, create the cluster with encoding UNICODE via external command initdb under root and modify two files therein:

pg_hba.conf

Set the contents to local all login trust, where login is for the current user, per (getpwuid (getuid)).

postgresql.conf

Set option listen_addresses (if present) to nothing, and the option unix_socket_directory to 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 (#t spec), that is, consing a #t onto 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-running?

Return non-#f if the daemon is up.

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 database template1. 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 #f to specify silent operation, or a short string to be used for certain progress messages.

Of course, there’s always miscellaneous maintenance to do… Note that in the following, argument host may be a host name or a directory named by that cluster’s unix_socket_directory setting, in postgresql.conf.

Scheme Procedure: custom-dump db-name outfile [keyword value…]
Keywords: host, listing 

Dump database db-name to outfile in “custom” format with maximum compression (via ‘pg_dump’). Return #t if successful, #f otherwise. Keyword args:

host

Specify also ‘-h host’ to ‘pg_dump’.

listing

After successfully generating outfile, also write a listing (via ‘pg_restore -l’) to listing (a filename).

Scheme Procedure: custom-restore db-name infile [keyword value…]
Keywords: host, listing, create? 

Restore database db-name (via ‘pg_restore’) from infile, which should be in “custom” format. Return #t if successful, #f otherwise. Keyword args:

host

Specify also ‘-h host’ to ‘pg_restore’.

listing

Specify also ‘-L listing’ to ‘pg_restore’.

create?

If non-#f, specify also ‘-C’ to ‘pg_restore’.


86 module (ttn-do zzz various-db)

86.1 personal postgresql

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 (guile-pg)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!.

Scheme Procedure: get-meta-file

Return the meta-file filename.

Scheme Procedure: set-meta-file! filename

Set the meta-file to be filename.

Scheme Procedure: personal-pgtable-all

Return a list of all the definitions described in the meta-file.

Scheme Procedure: personal-pgtable-defs db table

Return the definitions for database db, table table.

Scheme Procedure: personal-pgtable-manager db table

Return a “pgtable manager” procedure (see (guile-pg)Single-Table Abstraction) for database db, table table.

Scheme Procedure: personal-pgtable-worker db table

Return a “pgtable worker” procedure (see (guile-pg)Single-Table Abstraction) for database db, table table.

86.2 text database

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:

sexp

Use read.

sexp-line

Use read, then discard trailing whitespace.

line

Use read-line, discarding eol chars (CR, LF).

rest-lines

Read lines, including eol chars, until next delim.

rest-lines-trim

Like rest-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.

Scheme Procedure: read-text-db-table filename/port [flags…]

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 #:list is specified, sel is a 0-based integer to index into the record’s data. Otherwise, sel names a field in the record’s data.


87 module (ttn-do zzz x-protocol)

WARNING: HIGHLY EXPERIMENTAL!

This module provides procedures to communicate with an X Windows server using the X Protocol, major version 11, minor version 0.


87.1 procedures

Scheme Procedure: -connect [server]

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 server specifics. extensions is a list of extensions (each a symbol) available on the server.

The env var XAUTHORITY names a file to be read for authorization records. Presently, this has only been tested with auth type MIT-MAGIC-COOKIE-1.

Scheme Procedure: -disconnect conn

Disconnect from conn. Using conn afterwards is an error.

Scheme Procedure: -synchronous-request-proc conn [opts…]

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 alist is 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).

Scheme Procedure: -simple-io-manager conn [opts…]

Return a procedure that manages (simply) i/o on conn. See -synchronous-request-proc for 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 #t if 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-serial and %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 #f to 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-proc for 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).

Scheme Procedure: -x x tree

Return x (-: which marks the spot :-) from the alist tree. x can take many forms:

()

Return tree.

symbol

Return (assq-ref tree x).

integer

Return (vector-ref tree x).

list

Use (car x) to extract a subtree and recurse on it with (cdr x). For example:

(define CONN (-connect))
(define SETUP (vector-ref CONN 1))
(-x '(roots 0 width-in-pixels) SETUP) ⇒ 1280
Scheme Procedure: -internal-data name

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 with req, and (possibly) one with ans.

Use hash-ref for hash tables.

gnarly

Scheme Procedure: -wire<-event type alist

Return a new 32-byte string made by packing event type (a symbol) data alist, suitable for the value of the event field in a SendEvent protocol 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 ClientMessage and an alist key is /client-message-data, the associated value should be a list of integers in the format specified in the format field:

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.

object components

Scheme Procedure: -event-type event

Return the type (a symbol) of event. This uses the EventMask enum.

Scheme Procedure: -event-synthetic? event

Return #f if event originated from the server, or #t if it was generated due to a SendEvent request.

Scheme Procedure: -event-data event

Return the event data, an alist.


87.2 some enums

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)

87.3 some structs

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).

X Struct: ARC
((fixed (x INT16)
        (y INT16)
        (width CARD16)
        (height CARD16)
        (angle1 INT16)
        (angle2 INT16)))
X Struct: CHAR2B
((fixed (byte1 CARD8) (byte2 CARD8)))
X Struct: CHARINFO
((fixed (left-side-bearing INT16)
        (right-side-bearing INT16)
        (character-width INT16)
        (ascent INT16)
        (descent INT16)
        (attributes CARD16)))
X Struct: COLORITEM
((fixed (pixel CARD32)
        (red CARD16)
        (green CARD16)
        (blue CARD16)
        (flags BYTE)
        (-pad #(1 BYTE))))
X Struct: DEPTH
((fixed (depth CARD8)
        (-pad #(1 BYTE))
        (visuals-len CARD16)
        (-pad #(4 BYTE)))
 (array (visuals #(visuals-len VISUALTYPE))))
X Struct: FONTPROP
((fixed (name ATOM) (value CARD32)))
X Struct: FORMAT
((fixed (depth CARD8)
        (bits-per-pixel CARD8)
        (scanline-pad CARD8)
        (-pad #(5 BYTE))))
X Struct: HOST
((fixed (family CARD8)
        (-pad #(1 BYTE))
        (address-len CARD16))
 (array (address #(address-len BYTE))))
X Struct: POINT
((fixed (x INT16) (y INT16)))
X Struct: RECTANGLE
((fixed (x INT16)
        (y INT16)
        (width CARD16)
        (height CARD16)))
X Struct: RGB
((fixed (red CARD16)
        (green CARD16)
        (blue CARD16)
        (-pad #(2 BYTE))))
X Struct: SCREEN
((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))))
X Struct: SEGMENT
((fixed (x1 INT16)
        (y1 INT16)
        (x2 INT16)
        (y2 INT16)))
X Struct: STR
((fixed (name-len CARD8))
 (array (name #(name-len char))))
X Struct: Setup
((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))))
X Struct: SetupAuthenticate
((fixed (status CARD8)
        (-pad #(5 BYTE))
        (length CARD16))
 (array (reason #((/ (* length 4) 1) char))))
X Struct: SetupFailed
((fixed (status CARD8)
        (reason-len CARD8)
        (protocol-major-version CARD16)
        (protocol-minor-version CARD16)
        (length CARD16))
 (array (reason #(reason-len char))))
X Struct: SetupRequest
((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))))
X Struct: TIMECOORD
((fixed (time TIMESTAMP) (x INT16) (y INT16)))
X Struct: VISUALTYPE
((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))))
X Struct: (Access err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (Alloc err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (AllocColor ans)
((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))))
X Struct: (AllocColor req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)
        (red CARD16)
        (green CARD16)
        (blue CARD16)))
X Struct: (AllocColorCells ans)
((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))))
X Struct: (AllocColorCells req)
((fixed (%major-opcode CARD8)
        (contiguous BOOL)
        (%length CARD16)
        (cmap COLORMAP)
        (colors CARD16)
        (planes CARD16)))
X Struct: (AllocColorPlanes ans)
((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))))
X Struct: (AllocColorPlanes req)
((fixed (%major-opcode CARD8)
        (contiguous BOOL)
        (%length CARD16)
        (cmap COLORMAP)
        (colors CARD16)
        (reds CARD16)
        (greens CARD16)
        (blues CARD16)))
X Struct: (AllocNamedColor ans)
((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))))
X Struct: (AllocNamedColor req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)
        (name-len CARD16))
 (array (name #(name-len char))))
X Struct: (AllowEvents req)
((fixed (%major-opcode CARD8)
        (mode CARD8)
        (%length CARD16)
        (time TIMESTAMP)))
X Struct: (Atom err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (BIG-REQUESTS Enable ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (maximum-request-length CARD32)
        (%pad #(20 BYTE))))
X Struct: (BIG-REQUESTS Enable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (Bell req)
((fixed (%major-opcode CARD8)
        (percent INT8)
        (%length CARD16)))
X Struct: (ButtonPress ev)
((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))))
X Struct: (ButtonRelease ev)
((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))))
X Struct: (ChangeActivePointerGrab req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cursor CURSOR)
        (time TIMESTAMP)
        (event-mask CARD16)))
X Struct: (ChangeGC req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (gc GCONTEXT)
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (ChangeHosts req)
((fixed (%major-opcode CARD8)
        (mode CARD8)
        (%length CARD16)
        (family CARD8)
        (-pad #(1 BYTE))
        (address-len CARD16))
 (array (address #(address-len char))))
X Struct: (ChangeKeyboardControl req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (ChangeKeyboardMapping req)
((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))))
X Struct: (ChangePointerControl req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (acceleration-numerator INT16)
        (acceleration-denominator INT16)
        (threshold INT16)
        (do-acceleration BOOL)
        (do-threshold BOOL)))
X Struct: (ChangeProperty req)
((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))))
X Struct: (ChangeSaveSet req)
((fixed (%major-opcode CARD8)
        (mode BYTE)
        (%length CARD16)
        (window WINDOW)))
X Struct: (ChangeWindowAttributes req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (CirculateNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (event WINDOW)
        (window WINDOW)
        (-pad #(4 BYTE))
        (place BYTE)
        (%pad #(15 BYTE))))
X Struct: (CirculateRequest ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (event WINDOW)
        (window WINDOW)
        (-pad #(4 BYTE))
        (place BYTE)
        (%pad #(15 BYTE))))
X Struct: (CirculateWindow req)
((fixed (%major-opcode CARD8)
        (direction CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (ClearArea req)
((fixed (%major-opcode CARD8)
        (exposures BOOL)
        (%length CARD16)
        (window WINDOW)
        (x INT16)
        (y INT16)
        (width CARD16)
        (height CARD16)))
X Struct: (ClientMessage ev)
((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))))
X Struct: (CloseFont req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (font FONT)))
X Struct: (Colormap err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (ColormapNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (window WINDOW)
        (colormap COLORMAP)
        (new BOOL)
        (state BYTE)
        (%pad #(18 BYTE))))
X Struct: (Composite CreateRegionFromBorderClip req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))
        (window WINDOW)))
X Struct: (Composite GetOverlayWindow ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (overlay-win WINDOW)
        (-pad #(20 BYTE))))
X Struct: (Composite GetOverlayWindow req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (Composite NameWindowPixmap req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (pixmap PIXMAP)))
X Struct: (Composite QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD32)
        (minor-version CARD32)
        (-pad #(16 BYTE))))
X Struct: (Composite QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD32)
        (client-minor-version CARD32)))
X Struct: (Composite RedirectSubwindows req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (update CARD8)
        (-pad #(3 BYTE))))
X Struct: (Composite RedirectWindow req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (update CARD8)
        (-pad #(3 BYTE))))
X Struct: (Composite ReleaseOverlayWindow req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (Composite UnredirectSubwindows req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (update CARD8)
        (-pad #(3 BYTE))))
X Struct: (Composite UnredirectWindow req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (update CARD8)
        (-pad #(3 BYTE))))
X Struct: (ConfigureNotify ev)
((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))))
X Struct: (ConfigureRequest ev)
((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))))
X Struct: (ConfigureWindow req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)
        (value-mask CARD16))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (ConvertSelection req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (requestor WINDOW)
        (selection ATOM)
        (target ATOM)
        (property ATOM)
        (time TIMESTAMP)))
X Struct: (CopyArea req)
((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)))
X Struct: (CopyColormapAndFree req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (mid COLORMAP)
        (src-cmap COLORMAP)))
X Struct: (CopyGC req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (src-gc GCONTEXT)
        (dst-gc GCONTEXT)
        (value-mask CARD32)))
X Struct: (CopyPlane req)
((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)))
X Struct: (CreateColormap req)
((fixed (%major-opcode CARD8)
        (alloc BYTE)
        (%length CARD16)
        (mid COLORMAP)
        (window WINDOW)
        (visual VISUALID)))
X Struct: (CreateCursor req)
((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)))
X Struct: (CreateGC req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cid GCONTEXT)
        (drawable DRAWABLE)
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (CreateGlyphCursor req)
((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)))
X Struct: (CreateNotify ev)
((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))))
X Struct: (CreatePixmap req)
((fixed (%major-opcode CARD8)
        (depth CARD8)
        (%length CARD16)
        (pid PIXMAP)
        (drawable DRAWABLE)
        (width CARD16)
        (height CARD16)))
X Struct: (CreateWindow req)
((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))))
X Struct: (Cursor err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (DAMAGE BadDamage err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (DAMAGE Create req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (damage (DAMAGE DAMAGE))
        (drawable DRAWABLE)
        (level CARD8)
        (-pad #(3 BYTE))))
X Struct: (DAMAGE Destroy req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (damage (DAMAGE DAMAGE))))
X Struct: (DAMAGE Notify ev)
((fixed (%code CARD8)
        (level CARD8)
        (%sequence-number CARD16)
        (drawable DRAWABLE)
        (damage (DAMAGE DAMAGE))
        (timestamp TIMESTAMP)
        (area RECTANGLE)
        (geometry RECTANGLE)))
X Struct: (DAMAGE QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD32)
        (minor-version CARD32)
        (-pad #(16 BYTE))))
X Struct: (DAMAGE QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD32)
        (client-minor-version CARD32)))
X Struct: (DAMAGE Subtract req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (damage (DAMAGE DAMAGE))
        (repair (XFIXES REGION))
        (parts (XFIXES REGION))))
X Struct: (DPMS Capable ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (capable BOOL)
        (%pad #(23 BYTE))))
X Struct: (DPMS Capable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (DPMS Disable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (DPMS Enable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (DPMS ForceLevel req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (power-level CARD16)))
X Struct: (DPMS GetTimeouts ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (standby-timeout CARD16)
        (suspend-timeout CARD16)
        (off-timeout CARD16)
        (%pad #(18 BYTE))))
X Struct: (DPMS GetTimeouts req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (DPMS GetVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (server-major-version CARD16)
        (server-minor-version CARD16)
        (%pad #(20 BYTE))))
X Struct: (DPMS GetVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD16)
        (client-minor-version CARD16)))
X Struct: (DPMS Info ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (power-level CARD16)
        (state BOOL)
        (%pad #(21 BYTE))))
X Struct: (DPMS Info req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (DPMS SetTimeouts req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (standby-timeout CARD16)
        (suspend-timeout CARD16)
        (off-timeout CARD16)))
X Struct: (DeleteProperty req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)
        (property ATOM)))
X Struct: (DestroyNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (event WINDOW)
        (window WINDOW)
        (%pad #(20 BYTE))))
X Struct: (DestroySubwindows req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (DestroyWindow req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (Drawable err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (EnterNotify ev)
((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)))
X Struct: (Expose ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (window WINDOW)
        (x CARD16)
        (y CARD16)
        (width CARD16)
        (height CARD16)
        (count CARD16)
        (%pad #(14 BYTE))))
X Struct: (FillPoly req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT)
        (shape CARD8)
        (coordinate-mode CARD8))
 (array (points #(#f POINT))))
X Struct: (FocusIn ev)
((fixed (%code CARD8)
        (detail BYTE)
        (%sequence-number CARD16)
        (event WINDOW)
        (mode BYTE)
        (%pad #(23 BYTE))))
X Struct: (FocusOut ev)
((fixed (%code CARD8)
        (detail BYTE)
        (%sequence-number CARD16)
        (event WINDOW)
        (mode BYTE)
        (%pad #(23 BYTE))))
X Struct: (Font err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (ForceScreenSaver req)
((fixed (%major-opcode CARD8)
        (mode CARD8)
        (%length CARD16)))
X Struct: (FreeColormap req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)))
X Struct: (FreeColors req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)
        (plane-mask CARD32))
 (array (pixels #(#f CARD32))))
X Struct: (FreeCursor req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cursor CURSOR)))
X Struct: (FreeGC req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (gc GCONTEXT)))
X Struct: (FreePixmap req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (pixmap PIXMAP)))
X Struct: (GContext err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (GLX AreTexturesResident ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (ret-val (GLX BOOL32))
        (-pad #(20 BYTE)))
 (array (data #(#f BOOL))))
X Struct: (GLX AreTexturesResident req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (n INT32))
 (array (textures #(n CARD32))))
X Struct: (GLX BadContext err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadContextState err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadContextTag err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadCurrentDrawable err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadCurrentWindow err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadDrawable err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadFBConfig err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadLargeRequest err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadPbuffer err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadPixmap err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadRenderRequest err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX BadWindow err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX ChangeDrawableAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable (GLX DRAWABLE))
        (num-attribs CARD32))
 (array (attribs #((/ (* num-attribs 2) 4) CARD32))))
X Struct: (GLX ClientInfo req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (major-version CARD32)
        (minor-version CARD32)
        (str-len CARD32))
 (array (string #(str-len CARD8))))
X Struct: (GLX CopyContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (src (GLX CONTEXT))
        (dest (GLX CONTEXT))
        (mask CARD32)
        (src-context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX CreateContext req)
((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))))
X Struct: (GLX CreateGLXPixmap req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (visual VISUALID)
        (pixmap PIXMAP)
        (glx-pixmap (GLX PIXMAP))))
X Struct: (GLX CreateNewContext req)
((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)))
X Struct: (GLX CreatePbuffer req)
((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))))
X Struct: (GLX CreatePixmap req)
((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))))
X Struct: (GLX CreateWindow req)
((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))))
X Struct: (GLX DeleteLists req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (list CARD32)
        (range INT32)))
X Struct: (GLX DeleteQueriesARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (n INT32))
 (array (ids #(n CARD32))))
X Struct: (GLX DeleteTextures req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (n INT32))
 (array (textures #(n CARD32))))
X Struct: (GLX DeleteWindow req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (glxwindow (GLX WINDOW))))
X Struct: (GLX DestroyContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (GLX CONTEXT))))
X Struct: (GLX DestroyGLXPixmap req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (glx-pixmap (GLX PIXMAP))))
X Struct: (GLX DestroyPbuffer req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (pbuffer (GLX PBUFFER))))
X Struct: (GLX DestroyPixmap req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (glx-pixmap (GLX PIXMAP))))
X Struct: (GLX EndList req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX FeedbackBuffer req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (size INT32)
        (type INT32)))
X Struct: (GLX Finish ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (GLX Finish req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX Flush req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX GenLists ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (ret-val CARD32)
        (%pad #(20 BYTE))))
X Struct: (GLX GenLists req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (range INT32)))
X Struct: (GLX GenQueriesARB ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (data #(#f CARD32))))
X Struct: (GLX GenQueriesARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (n INT32)))
X Struct: (GLX GenTextures ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (data #(#f CARD32))))
X Struct: (GLX GenTextures req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (n INT32)))
X Struct: (GLX Generic err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX GetBooleanv ans)
((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))))
X Struct: (GLX GetBooleanv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (pname INT32)))
X Struct: (GLX GetClipPlane ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (data #(#f (GLX FLOAT64)))))
X Struct: (GLX GetClipPlane req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (plane INT32)))
X Struct: (GLX GetColorTable ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(8 BYTE))
        (width INT32)
        (-pad #(12 BYTE)))
 (array (data #(#f BYTE))))
X Struct: (GLX GetColorTable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (format CARD32)
        (type CARD32)
        (swap-bytes BOOL)))
X Struct: (GLX GetColorTableParameterfv ans)
((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)))))
X Struct: (GLX GetColorTableParameterfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetColorTableParameteriv ans)
((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))))
X Struct: (GLX GetColorTableParameteriv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetCompressedTexImageARB ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(8 BYTE))
        (size INT32)
        (-pad #(12 BYTE)))
 (array (data #(#f BYTE))))
X Struct: (GLX GetCompressedTexImageARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (level INT32)))
X Struct: (GLX GetConvolutionFilter ans)
((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))))
X Struct: (GLX GetConvolutionFilter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (format CARD32)
        (type CARD32)
        (swap-bytes BOOL)))
X Struct: (GLX GetConvolutionParameterfv ans)
((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)))))
X Struct: (GLX GetConvolutionParameterfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetConvolutionParameteriv ans)
((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))))
X Struct: (GLX GetConvolutionParameteriv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetDoublev ans)
((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)))))
X Struct: (GLX GetDoublev req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (pname CARD32)))
X Struct: (GLX GetDrawableAttributes ans)
((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))))
X Struct: (GLX GetDrawableAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable (GLX DRAWABLE))))
X Struct: (GLX GetError ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (error INT32)
        (%pad #(20 BYTE))))
X Struct: (GLX GetError req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX GetFBConfigs ans)
((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))))
X Struct: (GLX GetFBConfigs req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (GLX GetFloatv ans)
((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)))))
X Struct: (GLX GetFloatv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (pname CARD32)))
X Struct: (GLX GetHistogram ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(8 BYTE))
        (width INT32)
        (-pad #(12 BYTE)))
 (array (data #(#f BYTE))))
X Struct: (GLX GetHistogram req)
((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)))
X Struct: (GLX GetHistogramParameterfv ans)
((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)))))
X Struct: (GLX GetHistogramParameterfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetHistogramParameteriv ans)
((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))))
X Struct: (GLX GetHistogramParameteriv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetIntegerv ans)
((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))))
X Struct: (GLX GetIntegerv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (pname CARD32)))
X Struct: (GLX GetLightfv ans)
((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)))))
X Struct: (GLX GetLightfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (light CARD32)
        (pname CARD32)))
X Struct: (GLX GetLightiv ans)
((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))))
X Struct: (GLX GetLightiv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (light CARD32)
        (pname CARD32)))
X Struct: (GLX GetMapdv ans)
((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)))))
X Struct: (GLX GetMapdv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (query CARD32)))
X Struct: (GLX GetMapfv ans)
((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)))))
X Struct: (GLX GetMapfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (query CARD32)))
X Struct: (GLX GetMapiv ans)
((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))))
X Struct: (GLX GetMapiv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (query CARD32)))
X Struct: (GLX GetMaterialfv ans)
((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)))))
X Struct: (GLX GetMaterialfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (face CARD32)
        (pname CARD32)))
X Struct: (GLX GetMaterialiv ans)
((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))))
X Struct: (GLX GetMaterialiv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (face CARD32)
        (pname CARD32)))
X Struct: (GLX GetMinmax ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (data #(#f BYTE))))
X Struct: (GLX GetMinmax req)
((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)))
X Struct: (GLX GetMinmaxParameterfv ans)
((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)))))
X Struct: (GLX GetMinmaxParameterfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetMinmaxParameteriv ans)
((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))))
X Struct: (GLX GetMinmaxParameteriv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetPixelMapfv ans)
((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)))))
X Struct: (GLX GetPixelMapfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (map CARD32)))
X Struct: (GLX GetPixelMapuiv ans)
((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))))
X Struct: (GLX GetPixelMapuiv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (map CARD32)))
X Struct: (GLX GetPixelMapusv ans)
((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))))
X Struct: (GLX GetPixelMapusv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (map CARD32)))
X Struct: (GLX GetPolygonStipple ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (data #(#f BYTE))))
X Struct: (GLX GetPolygonStipple req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (lsb-first BOOL)))
X Struct: (GLX GetQueryObjectivARB ans)
((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))))
X Struct: (GLX GetQueryObjectivARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (id CARD32)
        (pname CARD32)))
X Struct: (GLX GetQueryObjectuivARB ans)
((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))))
X Struct: (GLX GetQueryObjectuivARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (id CARD32)
        (pname CARD32)))
X Struct: (GLX GetQueryivARB ans)
((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))))
X Struct: (GLX GetQueryivARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetSeparableFilter ans)
((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))))
X Struct: (GLX GetSeparableFilter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (format CARD32)
        (type CARD32)
        (swap-bytes BOOL)))
X Struct: (GLX GetString ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(4 BYTE))
        (n CARD32)
        (-pad #(16 BYTE)))
 (array (string #(n CARD8))))
X Struct: (GLX GetString req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (name CARD32)))
X Struct: (GLX GetTexEnvfv ans)
((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)))))
X Struct: (GLX GetTexEnvfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetTexEnviv ans)
((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))))
X Struct: (GLX GetTexEnviv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetTexGendv ans)
((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)))))
X Struct: (GLX GetTexGendv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (coord CARD32)
        (pname CARD32)))
X Struct: (GLX GetTexGenfv ans)
((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)))))
X Struct: (GLX GetTexGenfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (coord CARD32)
        (pname CARD32)))
X Struct: (GLX GetTexGeniv ans)
((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))))
X Struct: (GLX GetTexGeniv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (coord CARD32)
        (pname CARD32)))
X Struct: (GLX GetTexImage ans)
((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))))
X Struct: (GLX GetTexImage req)
((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)))
X Struct: (GLX GetTexLevelParameterfv ans)
((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)))))
X Struct: (GLX GetTexLevelParameterfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (level INT32)
        (pname CARD32)))
X Struct: (GLX GetTexLevelParameteriv ans)
((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))))
X Struct: (GLX GetTexLevelParameteriv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (level INT32)
        (pname CARD32)))
X Struct: (GLX GetTexParameterfv ans)
((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)))))
X Struct: (GLX GetTexParameterfv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetTexParameteriv ans)
((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))))
X Struct: (GLX GetTexParameteriv req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (target CARD32)
        (pname CARD32)))
X Struct: (GLX GetVisualConfigs ans)
((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))))
X Struct: (GLX GetVisualConfigs req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (GLX IsDirect ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (is-direct BOOL)
        (-pad #(23 BYTE))))
X Struct: (GLX IsDirect req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (GLX CONTEXT))))
X Struct: (GLX IsList ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (ret-val (GLX BOOL32))
        (%pad #(20 BYTE))))
X Struct: (GLX IsList req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (list CARD32)))
X Struct: (GLX IsQueryARB ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (ret-val (GLX BOOL32))
        (%pad #(20 BYTE))))
X Struct: (GLX IsQueryARB req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (id CARD32)))
X Struct: (GLX IsTexture ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (ret-val (GLX BOOL32))
        (%pad #(20 BYTE))))
X Struct: (GLX IsTexture req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (texture CARD32)))
X Struct: (GLX MakeContextCurrent ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (context-tag (GLX CONTEXT-TAG))
        (-pad #(20 BYTE))))
X Struct: (GLX MakeContextCurrent req)
((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))))
X Struct: (GLX MakeCurrent ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (context-tag (GLX CONTEXT-TAG))
        (-pad #(20 BYTE))))
X Struct: (GLX MakeCurrent req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable (GLX DRAWABLE))
        (context (GLX CONTEXT))
        (old-context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX NewList req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (list CARD32)
        (mode CARD32)))
X Struct: (GLX PbufferClobber ev)
((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))))
X Struct: (GLX PixelStoref req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (pname CARD32)
        (datum (GLX FLOAT32))))
X Struct: (GLX PixelStorei req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (pname CARD32)
        (datum INT32)))
X Struct: (GLX QueryContext ans)
((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))))
X Struct: (GLX QueryContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (GLX CONTEXT))))
X Struct: (GLX QueryExtensionsString ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(4 BYTE))
        (n CARD32)
        (-pad #(16 BYTE))))
X Struct: (GLX QueryExtensionsString req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (GLX QueryServerString ans)
((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))))
X Struct: (GLX QueryServerString req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (name CARD32)))
X Struct: (GLX QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD32)
        (minor-version CARD32)
        (-pad #(16 BYTE))))
X Struct: (GLX QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (major-version CARD32)
        (minor-version CARD32)))
X Struct: (GLX ReadPixels ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (data #(#f BYTE))))
X Struct: (GLX ReadPixels req)
((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)))
X Struct: (GLX Render req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG)))
 (array (data #(#f BYTE))))
X Struct: (GLX RenderLarge req)
((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))))
X Struct: (GLX RenderMode ans)
((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))))
X Struct: (GLX RenderMode req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (mode CARD32)))
X Struct: (GLX SelectBuffer req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (size INT32)))
X Struct: (GLX SwapBuffers req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (drawable (GLX DRAWABLE))))
X Struct: (GLX UnsupportedPrivateRequest err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (-pad #(21 BYTE))))
X Struct: (GLX UseXFont req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))
        (font FONT)
        (first CARD32)
        (count CARD32)
        (list-base CARD32)))
X Struct: (GLX VendorPrivate req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (vendor-code CARD32)
        (context-tag (GLX CONTEXT-TAG)))
 (array (data #(#f BYTE))))
X Struct: (GLX VendorPrivateWithReply ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (retval CARD32)
        (data1 #(24 BYTE)))
 (array (data2 #(#f BYTE))))
X Struct: (GLX VendorPrivateWithReply req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (vendor-code CARD32)
        (context-tag (GLX CONTEXT-TAG)))
 (array (data #(#f BYTE))))
X Struct: (GLX WaitGL req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))))
X Struct: (GLX WaitX req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-tag (GLX CONTEXT-TAG))))
X Struct: (GetAtomName ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (name-len CARD16)
        (-pad #(22 BYTE)))
 (array (name #(name-len CARD8))))
X Struct: (GetAtomName req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (atom ATOM)))
X Struct: (GetFontPath ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (path-len CARD16)
        (-pad #(22 BYTE)))
 (array (path #(path-len STR))))
X Struct: (GetFontPath req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetGeometry ans)
((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))))
X Struct: (GetGeometry req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)))
X Struct: (GetImage ans)
((fixed (%status CARD8)
        (depth CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (visual VISUALID)
        (-pad #(20 BYTE)))
 (array (data #((/ (* length 4) 1) BYTE))))
X Struct: (GetImage req)
((fixed (%major-opcode CARD8)
        (format CARD8)
        (%length CARD16)
        (drawable DRAWABLE)
        (x INT16)
        (y INT16)
        (width CARD16)
        (height CARD16)
        (plane-mask CARD32)))
X Struct: (GetInputFocus ans)
((fixed (%status CARD8)
        (revert-to CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (focus WINDOW)
        (%pad #(20 BYTE))))
X Struct: (GetInputFocus req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetKeyboardControl ans)
((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))))
X Struct: (GetKeyboardControl req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetKeyboardMapping ans)
((fixed (%status CARD8)
        (keysyms-per-keycode BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (keysyms #((/ (* length 4) 4) KEYSYM))))
X Struct: (GetKeyboardMapping req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (first-keycode KEYCODE)
        (count CARD8)))
X Struct: (GetModifierMapping ans)
((fixed (%status CARD8)
        (keycodes-per-modifier CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (keycodes
          #((/ (* keycodes-per-modifier 8) 1) KEYCODE))))
X Struct: (GetModifierMapping req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetMotionEvents ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (events-len CARD32)
        (-pad #(20 BYTE)))
 (array (events #(events-len TIMECOORD))))
X Struct: (GetMotionEvents req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)
        (start TIMESTAMP)
        (stop TIMESTAMP)))
X Struct: (GetPointerControl ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (acceleration-numerator CARD16)
        (acceleration-denominator CARD16)
        (threshold CARD16)
        (%pad #(18 BYTE))))
X Struct: (GetPointerControl req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetPointerMapping ans)
((fixed (%status CARD8)
        (map-len CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (map #(map-len CARD8))))
X Struct: (GetPointerMapping req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetProperty ans)
((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))))
X Struct: (GetProperty req)
((fixed (%major-opcode CARD8)
        (delete BOOL)
        (%length CARD16)
        (window WINDOW)
        (property ATOM)
        (type ATOM)
        (long-offset CARD32)
        (long-length CARD32)))
X Struct: (GetScreenSaver ans)
((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))))
X Struct: (GetScreenSaver req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GetSelectionOwner ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (owner WINDOW)
        (%pad #(20 BYTE))))
X Struct: (GetSelectionOwner req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (selection ATOM)))
X Struct: (GetWindowAttributes ans)
((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)))
X Struct: (GetWindowAttributes req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (GrabButton req)
((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)))
X Struct: (GrabKey req)
((fixed (%major-opcode CARD8)
        (owner-events BOOL)
        (%length CARD16)
        (grab-window WINDOW)
        (modifiers CARD16)
        (key KEYCODE)
        (pointer-mode CARD8)
        (keyboard-mode CARD8)))
X Struct: (GrabKeyboard ans)
((fixed (%status CARD8)
        (status BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (GrabKeyboard req)
((fixed (%major-opcode CARD8)
        (owner-events BOOL)
        (%length CARD16)
        (grab-window WINDOW)
        (time TIMESTAMP)
        (pointer-mode BYTE)
        (keyboard-mode BYTE)))
X Struct: (GrabPointer ans)
((fixed (%status CARD8)
        (status BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (GrabPointer req)
((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)))
X Struct: (GrabServer req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (GraphicsExposure ev)
((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))))
X Struct: (GravityNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (event WINDOW)
        (window WINDOW)
        (x INT16)
        (y INT16)
        (%pad #(16 BYTE))))
X Struct: (IDChoice err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (ImageText16 req)
((fixed (%major-opcode CARD8)
        (string-len BYTE)
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT)
        (x INT16)
        (y INT16))
 (array (string #(string-len CHAR2B))))
X Struct: (ImageText8 req)
((fixed (%major-opcode CARD8)
        (string-len BYTE)
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT)
        (x INT16)
        (y INT16))
 (array (string #(string-len char))))
X Struct: (Implementation err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (InstallColormap req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)))
X Struct: (InternAtom ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (atom ATOM)
        (%pad #(20 BYTE))))
X Struct: (InternAtom req)
((fixed (%major-opcode CARD8)
        (only-if-exists BOOL)
        (%length CARD16)
        (name-len CARD16)
        (-pad #(2 BYTE)))
 (array (name #(name-len char))))
X Struct: (KeyPress ev)
((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))))
X Struct: (KeyRelease ev)
((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))))
X Struct: (KeymapNotify ev)
((fixed (%code CARD8) (keys #(31 CARD8))))
X Struct: (KillClient req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (resource CARD32)))
X Struct: (LeaveNotify ev)
((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)))
X Struct: (Length err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (ListExtensions ans)
((fixed (%status CARD8)
        (names-len CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (names #(names-len STR))))
X Struct: (ListExtensions req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (ListFonts ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (names-len CARD16)
        (-pad #(22 BYTE)))
 (array (names #(names-len STR))))
X Struct: (ListFonts req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (max-names CARD16)
        (pattern-len CARD16))
 (array (pattern #(pattern-len char))))
X Struct: (ListFontsWithInfo ans)
((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))))
X Struct: (ListFontsWithInfo req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (max-names CARD16)
        (pattern-len CARD16))
 (array (pattern #(pattern-len char))))
X Struct: (ListHosts ans)
((fixed (%status CARD8)
        (mode BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (hosts-len CARD16)
        (-pad #(22 BYTE)))
 (array (hosts #(hosts-len HOST))))
X Struct: (ListHosts req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (ListInstalledColormaps ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (cmaps-len CARD16)
        (-pad #(22 BYTE)))
 (array (cmaps #(cmaps-len COLORMAP))))
X Struct: (ListInstalledColormaps req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (ListProperties ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (atoms-len CARD16)
        (-pad #(22 BYTE)))
 (array (atoms #(atoms-len ATOM))))
X Struct: (ListProperties req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (LookupColor ans)
((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))))
X Struct: (LookupColor req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)
        (name-len CARD16))
 (array (name #(name-len char))))
X Struct: (MIT-SCREEN-SAVER Notify ev)
((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))))
X Struct: (MIT-SCREEN-SAVER QueryInfo ans)
((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))))
X Struct: (MIT-SCREEN-SAVER QueryInfo req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable DRAWABLE)))
X Struct: (MIT-SCREEN-SAVER QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (server-major-version CARD16)
        (server-minor-version CARD16)
        (-pad #(20 BYTE))))
X Struct: (MIT-SCREEN-SAVER QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD8)
        (client-minor-version CARD8)
        (-pad #(2 BYTE))))
X Struct: (MIT-SCREEN-SAVER SelectInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable DRAWABLE)
        (event-mask CARD32)))
X Struct: (MIT-SCREEN-SAVER SetAttributes req)
((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))))
X Struct: (MIT-SCREEN-SAVER Suspend req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (suspend BOOL)
        (-pad #(3 BYTE))))
X Struct: (MIT-SCREEN-SAVER UnsetAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable DRAWABLE)))
X Struct: (MIT-SHM Attach req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (shmseg (MIT-SHM SEG))
        (shmid CARD32)
        (read-only BOOL)))
X Struct: (MIT-SHM BadSeg err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (MIT-SHM Completion ev)
((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))))
X Struct: (MIT-SHM CreatePixmap req)
((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)))
X Struct: (MIT-SHM Detach req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (shmseg (MIT-SHM SEG))))
X Struct: (MIT-SHM GetImage ans)
((fixed (%status CARD8)
        (depth CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (visual VISUALID)
        (size CARD32)
        (%pad #(16 BYTE))))
X Struct: (MIT-SHM GetImage req)
((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)))
X Struct: (MIT-SHM PutImage req)
((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)))
X Struct: (MIT-SHM QueryVersion ans)
((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))))
X Struct: (MIT-SHM QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (MapNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (event WINDOW)
        (window WINDOW)
        (override-redirect BOOL)
        (%pad #(19 BYTE))))
X Struct: (MapRequest ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (parent WINDOW)
        (window WINDOW)
        (%pad #(20 BYTE))))
X Struct: (MapSubwindows req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (MapWindow req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (MappingNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (request BYTE)
        (first-keycode KEYCODE)
        (count CARD8)
        (%pad #(25 BYTE))))
X Struct: (Match err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (MotionNotify ev)
((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))))
X Struct: (Name err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (NoExposure ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (drawable DRAWABLE)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (NoOperation req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (OpenFont req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (fid FONT)
        (name-len CARD16))
 (array (name #(name-len char))))
X Struct: (Pixmap err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (PolyArc req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (arcs #(#f ARC))))
X Struct: (PolyFillArc req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (arcs #(#f ARC))))
X Struct: (PolyFillRectangle req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (PolyLine req)
((fixed (%major-opcode CARD8)
        (coordinate-mode BYTE)
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (points #(#f POINT))))
X Struct: (PolyPoint req)
((fixed (%major-opcode CARD8)
        (coordinate-mode BYTE)
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (points #(#f POINT))))
X Struct: (PolyRectangle req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (PolySegment req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT))
 (array (segments #(#f SEGMENT))))
X Struct: (PolyText16 req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT)
        (x INT16)
        (y INT16))
 (array (items #(#f BYTE))))
X Struct: (PolyText8 req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (drawable DRAWABLE)
        (gc GCONTEXT)
        (x INT16)
        (y INT16))
 (array (items #(#f BYTE))))
X Struct: (PropertyNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (window WINDOW)
        (atom ATOM)
        (time TIMESTAMP)
        (state BYTE)
        (%pad #(15 BYTE))))
X Struct: (PutImage req)
((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))))
X Struct: (QueryBestSize ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (width CARD16)
        (height CARD16)
        (%pad #(20 BYTE))))
X Struct: (QueryBestSize req)
((fixed (%major-opcode CARD8)
        (class CARD8)
        (%length CARD16)
        (drawable DRAWABLE)
        (width CARD16)
        (height CARD16)))
X Struct: (QueryColors ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (colors-len CARD16)
        (-pad #(22 BYTE)))
 (array (colors #(colors-len RGB))))
X Struct: (QueryColors req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP))
 (array (pixels #(#f CARD32))))
X Struct: (QueryExtension ans)
((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))))
X Struct: (QueryExtension req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (name-len CARD16))
 (array (name #(name-len char))))
X Struct: (QueryFont ans)
((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))))
X Struct: (QueryFont req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (font FONTABLE)))
X Struct: (QueryKeymap ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (keys #(32 CARD8))))
X Struct: (QueryKeymap req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (QueryPointer ans)
((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))))
X Struct: (QueryPointer req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (QueryTextExtents ans)
((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))))
X Struct: (QueryTextExtents req)
((fixed (%major-opcode CARD8)
        (odd-length BOOL (logand string-len 1))
        (%length CARD16)
        (font FONTABLE))
 (array (string #(#f CHAR2B))))
X Struct: (QueryTree ans)
((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))))
X Struct: (QueryTree req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (RANDR GetScreenInfo ans)
((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))))
X Struct: (RANDR GetScreenInfo req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (RANDR QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD32)
        (minor-version CARD32)
        (-pad #(16 BYTE))))
X Struct: (RANDR QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (major-version CARD32)
        (minor-version CARD32)))
X Struct: (RANDR RefreshRates)
((fixed (nRates CARD16))
 (array (rates #(nRates CARD16))))
X Struct: (RANDR ScreenChangeNotify ev)
((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)))
X Struct: (RANDR ScreenSize)
((fixed (width INT16)
        (height INT16)
        (mwidth INT16)
        (mheight INT16)))
X Struct: (RANDR SelectInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (enable CARD16)
        (-pad #(2 BYTE))))
X Struct: (RANDR SetScreenConfig ans)
((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))))
X Struct: (RANDR SetScreenConfig req)
((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))))
X Struct: (RECORD BadContext err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (invalid-record CARD32)
        (%pad #(24 BYTE))))
X Struct: (RECORD ClientInfo)
((fixed (client-resource (RECORD ClientSpec))
        (num-ranges CARD32))
 (array (ranges #(num-ranges (RECORD Range)))))
X Struct: (RECORD CreateContext req)
((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)))))
X Struct: (RECORD DisableContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (RECORD CONTEXT))))
X Struct: (RECORD EnableContext ans)
((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))))
X Struct: (RECORD EnableContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (RECORD CONTEXT))))
X Struct: (RECORD ExtRange)
((fixed (major (RECORD Range8))
        (minor (RECORD Range16))))
X Struct: (RECORD FreeContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (RECORD CONTEXT))))
X Struct: (RECORD GetContext ans)
((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))))
X Struct: (RECORD GetContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (RECORD CONTEXT))))
X Struct: (RECORD QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD16)
        (minor-version CARD16)
        (%pad #(20 BYTE))))
X Struct: (RECORD QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (major-version CARD16)
        (minor-version CARD16)))
X Struct: (RECORD Range)
((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)))
X Struct: (RECORD Range16)
((fixed (first CARD16) (last CARD16)))
X Struct: (RECORD Range8)
((fixed (first CARD8) (last CARD8)))
X Struct: (RECORD RegisterClients req)
((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)))))
X Struct: (RECORD UnregisterClients req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (RECORD CONTEXT))
        (num-client-specs CARD32))
 (array (client-specs
          #(num-client-specs (RECORD ClientSpec)))))
X Struct: (RENDER ANIMCURSORELT)
((fixed (cursor CURSOR) (delay CARD32)))
X Struct: (RENDER AddGlyphs req)
((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))))
X Struct: (RENDER AddTraps req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (x-off INT16)
        (y-off INT16))
 (array (traps #(#f (RENDER TRAP)))))
X Struct: (RENDER COLOR)
((fixed (red CARD16)
        (green CARD16)
        (blue CARD16)
        (alpha CARD16)))
X Struct: (RENDER ChangePicture req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (RENDER Composite req)
((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)))
X Struct: (RENDER CompositeGlyphs16 req)
((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))))
X Struct: (RENDER CompositeGlyphs32 req)
((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))))
X Struct: (RENDER CompositeGlyphs8 req)
((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))))
X Struct: (RENDER CreateAnimCursor req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cid CURSOR))
 (array (cursors #(#f (RENDER ANIMCURSORELT)))))
X Struct: (RENDER CreateConicalGradient req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (center (RENDER POINTFIX))
        (angle (RENDER FIXED))
        (num-stops CARD32)))
X Struct: (RENDER CreateCursor req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cid CURSOR)
        (source (RENDER PICTURE))
        (x CARD16)
        (y CARD16)))
X Struct: (RENDER CreateGlyphSet req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (gsid (RENDER GLYPHSET))
        (format (RENDER PICTFORMAT))))
X Struct: (RENDER CreateLinearGradient req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (p1 (RENDER POINTFIX))
        (p2 (RENDER POINTFIX))
        (num-stops CARD32)))
X Struct: (RENDER CreatePicture req)
((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))))
X Struct: (RENDER CreateRadialGradient req)
((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)))
X Struct: (RENDER CreateSolidFill req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (color (RENDER COLOR))))
X Struct: (RENDER DIRECTFORMAT)
((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)))
X Struct: (RENDER FillRectangles req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (op CARD8)
        (-pad #(3 BYTE))
        (dst (RENDER PICTURE))
        (color (RENDER COLOR)))
 (array (rects #(#f RECTANGLE))))
X Struct: (RENDER FreeGlyphSet req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (glyphset (RENDER GLYPHSET))))
X Struct: (RENDER FreeGlyphs req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (glyphset (RENDER GLYPHSET)))
 (array (glyphs #(#f (RENDER GLYPH)))))
X Struct: (RENDER FreePicture req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))))
X Struct: (RENDER GLYPHINFO)
((fixed (width CARD16)
        (height CARD16)
        (x INT16)
        (y INT16)
        (x-off INT16)
        (y-off INT16)))
X Struct: (RENDER Glyph err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (RENDER GlyphSet err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (RENDER INDEXVALUE)
((fixed (pixel CARD32)
        (red CARD16)
        (green CARD16)
        (blue CARD16)
        (alpha CARD16)))
X Struct: (RENDER LINEFIX)
((fixed (p1 (RENDER POINTFIX))
        (p2 (RENDER POINTFIX))))
X Struct: (RENDER PICTDEPTH)
((fixed (depth CARD8)
        (-pad #(1 BYTE))
        (num-visuals CARD16)
        (-pad #(4 BYTE)))
 (array (visuals #(num-visuals (RENDER PICTVISUAL)))))
X Struct: (RENDER PICTFORMINFO)
((fixed (id (RENDER PICTFORMAT))
        (type CARD8)
        (depth CARD8)
        (-pad #(2 BYTE))
        (direct (RENDER DIRECTFORMAT))
        (colormap COLORMAP)))
X Struct: (RENDER PICTSCREEN)
((fixed (num-depths CARD32)
        (fallback (RENDER PICTFORMAT)))
 (array (depths #(num-depths PICTDEPTH))))
X Struct: (RENDER PICTVISUAL)
((fixed (visual VISUALID)
        (format (RENDER PICTFORMAT))))
X Struct: (RENDER POINTFIX)
((fixed (x (RENDER FIXED)) (y (RENDER FIXED))))
X Struct: (RENDER PictFormat err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (RENDER PictOp err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (RENDER Picture err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (RENDER QueryFilters ans)
((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))))
X Struct: (RENDER QueryFilters req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable DRAWABLE)))
X Struct: (RENDER QueryPictFormats ans)
((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))))
X Struct: (RENDER QueryPictFormats req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (RENDER QueryPictIndexValues ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (num-values CARD32)
        (-pad #(20 BYTE)))
 (array (values #(num-values (RENDER INDEXVALUE)))))
X Struct: (RENDER QueryPictIndexValues req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (format (RENDER PICTFORMAT))))
X Struct: (RENDER QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD32)
        (minor-version CARD32)
        (-pad #(16 BYTE))))
X Struct: (RENDER QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD32)
        (client-minor-version CARD32)))
X Struct: (RENDER ReferenceGlyphSet req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (gsid (RENDER GLYPHSET))
        (existing (RENDER GLYPHSET))))
X Struct: (RENDER SPANFIX)
((fixed (l (RENDER FIXED))
        (r (RENDER FIXED))
        (y (RENDER FIXED))))
X Struct: (RENDER SetPictureClipRectangles req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (clip-x-origin INT16)
        (clip-y-origin INT16))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (RENDER SetPictureFilter req)
((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)))))
X Struct: (RENDER SetPictureTransform req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (transform (RENDER TRANSFORM))))
X Struct: (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))))
X Struct: (RENDER TRAP)
((fixed (top (RENDER SPANFIX))
        (bot (RENDER SPANFIX))))
X Struct: (RENDER TRAPEZOID)
((fixed (top (RENDER FIXED))
        (bottom (RENDER FIXED))
        (left (RENDER LINEFIX))
        (right (RENDER LINEFIX))))
X Struct: (RENDER TRIANGLE)
((fixed (p1 (RENDER POINTFIX))
        (p2 (RENDER POINTFIX))
        (p3 (RENDER POINTFIX))))
X Struct: (RENDER Trapezoids req)
((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)))))
X Struct: (RENDER TriFan req)
((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)))))
X Struct: (RENDER TriStrip req)
((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)))))
X Struct: (RENDER Triangles req)
((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)))))
X Struct: (RecolorCursor req)
((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)))
X Struct: (ReparentNotify ev)
((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))))
X Struct: (ReparentWindow req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)
        (parent WINDOW)
        (x INT16)
        (y INT16)))
X Struct: (Request err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (ResizeRequest ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (window WINDOW)
        (width CARD16)
        (height CARD16)
        (%pad #(20 BYTE))))
X Struct: (RotateProperties req)
((fixed (%major-opcode CARD8)
        (window WINDOW)
        (%length CARD16)
        (atoms-len CARD16)
        (delta INT16))
 (array (atoms #(atoms-len ATOM))))
X Struct: (SHAPE Combine req)
((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)))
X Struct: (SHAPE GetRectangles ans)
((fixed (%status CARD8)
        (ordering BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (rectangles-len CARD32))
 (array (rectangles #(rectangles-len RECTANGLE))))
X Struct: (SHAPE GetRectangles req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (source-kind (SHAPE KIND))))
X Struct: (SHAPE InputSelected ans)
((fixed (%status CARD8)
        (enabled BOOL)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (SHAPE InputSelected req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (destination-window WINDOW)))
X Struct: (SHAPE Mask req)
((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)))
X Struct: (SHAPE Notify ev)
((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))))
X Struct: (SHAPE Offset req)
((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)))
X Struct: (SHAPE QueryExtents ans)
((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))))
X Struct: (SHAPE QueryExtents req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (destination-window WINDOW)))
X Struct: (SHAPE QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD16)
        (minor-version CARD16)
        (%pad #(20 BYTE))))
X Struct: (SHAPE QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (SHAPE Rectangles req)
((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))))
X Struct: (SHAPE SelectInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (destination-window WINDOW)
        (enable BOOL)))
X Struct: (SYNC Alarm err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-alarm CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (SYNC AlarmNotify ev)
((fixed (%code CARD8)
        (kind CARD8)
        (%sequence-number CARD16)
        (alarm (SYNC ALARM))
        (counter-value (SYNC INT64))
        (alarm-value (SYNC INT64))
        (timestamp TIMESTAMP)
        (%pad #(4 BYTE))))
X Struct: (SYNC Await req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16))
 (array (wait-list #(#f (SYNC WAITCONDITION)))))
X Struct: (SYNC ChangeAlarm req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (id (SYNC ALARM))
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (SYNC ChangeCounter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (counter (SYNC COUNTER))
        (amount (SYNC INT64))))
X Struct: (SYNC Counter err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-counter CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (SYNC CounterNotify ev)
((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))))
X Struct: (SYNC CreateAlarm req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (id (SYNC ALARM))
        (value-mask CARD32))
 (array (value-list #(value-mask CARD32 mask))))
X Struct: (SYNC CreateCounter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (id (SYNC COUNTER))
        (initial-value (SYNC INT64))))
X Struct: (SYNC DestroyAlarm req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (alarm (SYNC ALARM))))
X Struct: (SYNC DestroyCounter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (counter (SYNC COUNTER))))
X Struct: (SYNC GetPriority ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (priority INT32)
        (%pad #(20 BYTE))))
X Struct: (SYNC GetPriority req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (id CARD32)))
X Struct: (SYNC INT64)
((fixed (hi INT32) (lo CARD32)))
X Struct: (SYNC Initialize ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD8)
        (minor-version CARD8)
        (%pad #(22 BYTE))))
X Struct: (SYNC Initialize req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (SYNC ListSystemCounters ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (counters-len CARD32)
        (-pad #(20 BYTE)))
 (array (counters #(counters-len SYSTEMCOUNTER))))
X Struct: (SYNC ListSystemCounters req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (SYNC QueryAlarm ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (trigger (SYNC TRIGGER))
        (delta (SYNC INT64))
        (events BOOL)
        (state (SYNC ALARMSTATE))))
X Struct: (SYNC QueryAlarm req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (alarm (SYNC ALARM))))
X Struct: (SYNC QueryCounter ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (counter-value (SYNC INT64))
        (%pad #(16 BYTE))))
X Struct: (SYNC QueryCounter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (counter (SYNC COUNTER))))
X Struct: (SYNC SYSTEMCOUNTER)
((fixed (counter (SYNC COUNTER))
        (resolution (SYNC INT64))
        (name-len CARD16))
 (array (name #(name-len CARD8))))
X Struct: (SYNC SetCounter req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (counter (SYNC COUNTER))
        (value (SYNC INT64))))
X Struct: (SYNC SetPriority req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (id CARD32)
        (priority INT32)))
X Struct: (SYNC TRIGGER)
((fixed (counter (SYNC COUNTER))
        (wait-type (SYNC VALUETYPE))
        (wait-value (SYNC INT64))
        (test-type (SYNC TESTTYPE))))
X Struct: (SYNC WAITCONDITION)
((fixed (trigger (SYNC TRIGGER))
        (event-threshold (SYNC INT64))))
X Struct: (SelectionClear ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (time TIMESTAMP)
        (owner WINDOW)
        (selection ATOM)
        (%pad #(16 BYTE))))
X Struct: (SelectionNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (time TIMESTAMP)
        (requestor WINDOW)
        (selection ATOM)
        (target ATOM)
        (property ATOM)
        (%pad #(8 BYTE))))
X Struct: (SelectionRequest ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (time TIMESTAMP)
        (owner WINDOW)
        (requestor WINDOW)
        (selection ATOM)
        (target ATOM)
        (property ATOM)
        (%pad #(4 BYTE))))
X Struct: (SendEvent req)
((fixed (%major-opcode CARD8)
        (propagate BOOL)
        (%length CARD16)
        (destination WINDOW)
        (event-mask CARD32)
        (event #(32 char))))
X Struct: (SetAccessControl req)
((fixed (%major-opcode CARD8)
        (mode CARD8)
        (%length CARD16)))
X Struct: (SetClipRectangles req)
((fixed (%major-opcode CARD8)
        (ordering BYTE)
        (%length CARD16)
        (gc GCONTEXT)
        (clip-x-origin INT16)
        (clip-y-origin INT16))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (SetCloseDownMode req)
((fixed (%major-opcode CARD8)
        (mode CARD8)
        (%length CARD16)))
X Struct: (SetDashes req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (gc GCONTEXT)
        (dash-offset CARD16)
        (dashes-len CARD16))
 (array (dashes #(dashes-len CARD8))))
X Struct: (SetFontPath req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (font-qty CARD16))
 (array (path #(#f char))))
X Struct: (SetInputFocus req)
((fixed (%major-opcode CARD8)
        (revert-to CARD8)
        (%length CARD16)
        (focus WINDOW)
        (time TIMESTAMP)))
X Struct: (SetModifierMapping ans)
((fixed (%status CARD8)
        (status BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (SetModifierMapping req)
((fixed (%major-opcode CARD8)
        (keycodes-per-modifier CARD8)
        (%length CARD16))
 (array (keycodes
          #((/ (* keycodes-per-modifier 8) 1) KEYCODE))))
X Struct: (SetPointerMapping ans)
((fixed (%status CARD8)
        (status BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (SetPointerMapping req)
((fixed (%major-opcode CARD8)
        (map-len CARD8)
        (%length CARD16))
 (array (map #(map-len CARD8))))
X Struct: (SetScreenSaver req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (timeout INT16)
        (interval INT16)
        (prefer-blanking CARD8)
        (allow-exposures CARD8)))
X Struct: (SetSelectionOwner req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (owner WINDOW)
        (selection ATOM)
        (time TIMESTAMP)))
X Struct: (StoreColors req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP))
 (array (items #(#f COLORITEM))))
X Struct: (StoreNamedColor req)
((fixed (%major-opcode CARD8)
        (flags CARD8)
        (%length CARD16)
        (cmap COLORMAP)
        (pixel CARD32)
        (name-len CARD16))
 (array (name #(name-len char))))
X Struct: (TranslateCoordinates ans)
((fixed (%status CARD8)
        (same-screen BOOL)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (child WINDOW)
        (dst-x CARD16)
        (dst-y CARD16)
        (%pad #(16 BYTE))))
X Struct: (TranslateCoordinates req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (src-window WINDOW)
        (dst-window WINDOW)
        (src-x INT16)
        (src-y INT16)))
X Struct: (UngrabButton req)
((fixed (%major-opcode CARD8)
        (button CARD8)
        (%length CARD16)
        (grab-window WINDOW)
        (modifiers CARD16)
        (-pad #(2 BYTE))))
X Struct: (UngrabKey req)
((fixed (%major-opcode CARD8)
        (key KEYCODE)
        (%length CARD16)
        (grab-window WINDOW)
        (modifiers CARD16)))
X Struct: (UngrabKeyboard req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (time TIMESTAMP)))
X Struct: (UngrabPointer req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (time TIMESTAMP)))
X Struct: (UngrabServer req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)))
X Struct: (UninstallColormap req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (cmap COLORMAP)))
X Struct: (UnmapNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (event WINDOW)
        (window WINDOW)
        (from-configure BOOL)
        (%pad #(19 BYTE))))
X Struct: (UnmapSubwindows req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (UnmapWindow req)
((fixed (%major-opcode CARD8)
        (-pad #(1 BYTE))
        (%length CARD16)
        (window WINDOW)))
X Struct: (Value err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (VisibilityNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (window WINDOW)
        (state BYTE)
        (%pad #(23 BYTE))))
X Struct: (WarpPointer req)
((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)))
X Struct: (Window err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (bad-value CARD32)
        (minor-opcode CARD16)
        (major-opcode CARD8)
        (%pad #(21 BYTE))))
X Struct: (X-Resource Client)
((fixed (resource-base CARD32)
        (resource-mask CARD32)))
X Struct: (X-Resource QueryClientPixmapBytes ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (bytes CARD32)
        (bytes-overflow CARD32)
        (%pad #(16 BYTE))))
X Struct: (X-Resource QueryClientPixmapBytes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (xid CARD32)))
X Struct: (X-Resource QueryClientResources ans)
((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)))))
X Struct: (X-Resource QueryClientResources req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (xid CARD32)))
X Struct: (X-Resource QueryClients ans)
((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)))))
X Struct: (X-Resource QueryClients req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (X-Resource QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (server-major CARD16)
        (server-minor CARD16)
        (%pad #(20 BYTE))))
X Struct: (X-Resource QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major CARD8)
        (client-minor CARD8)))
X Struct: (X-Resource Type)
((fixed (resource-type CARD32) (count CARD32)))
X Struct: (XC-MISC GetVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (server-major-version CARD16)
        (server-minor-version CARD16)
        (%pad #(20 BYTE))))
X Struct: (XC-MISC GetVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD16)
        (client-minor-version CARD16)))
X Struct: (XC-MISC GetXIDList ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (ids-len CARD32)
        (-pad #(20 BYTE)))
 (array (ids #(ids-len CARD32))))
X Struct: (XC-MISC GetXIDList req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (count CARD32)))
X Struct: (XC-MISC GetXIDRange ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (start-id CARD32)
        (count CARD32)
        (%pad #(16 BYTE))))
X Struct: (XC-MISC GetXIDRange req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XEVIE End ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE))))
X Struct: (XEVIE End req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cmap CARD32)))
X Struct: (XEVIE Event)
((fixed (-pad #(32 BYTE))))
X Struct: (XEVIE QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (server-major-version CARD16)
        (server-minor-version CARD16)
        (-pad #(20 BYTE))))
X Struct: (XEVIE QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD16)
        (client-minor-version CARD16)))
X Struct: (XEVIE SelectInput ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE))))
X Struct: (XEVIE SelectInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (event-mask CARD32)))
X Struct: (XEVIE Send ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE))))
X Struct: (XEVIE Send req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (event (XEVIE Event))
        (data-type CARD32)
        (-pad #(64 BYTE))))
X Struct: (XEVIE Start ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE))))
X Struct: (XEVIE Start req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (XFIXES BadRegion err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (XFIXES ChangeCursor req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source CURSOR)
        (destination CURSOR)))
X Struct: (XFIXES ChangeCursorByName req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (src CURSOR)
        (nbytes CARD16)
        (-pad #(2 BYTE)))
 (array (name #(nbytes CARD8))))
X Struct: (XFIXES ChangeSaveSet req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (mode BYTE)
        (target BYTE)
        (map BYTE)
        (-pad #(1 BYTE))
        (window WINDOW)))
X Struct: (XFIXES CopyRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source (XFIXES REGION))
        (destination (XFIXES REGION))))
X Struct: (XFIXES CreateRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION)))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (XFIXES CreateRegionFromBitmap req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))
        (bitmap PIXMAP)))
X Struct: (XFIXES CreateRegionFromGC req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))
        (gc GCONTEXT)))
X Struct: (XFIXES CreateRegionFromPicture req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))
        (picture (RENDER PICTURE))))
X Struct: (XFIXES CreateRegionFromWindow req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))
        (window WINDOW)
        (kind (SHAPE KIND))
        (-pad #(3 BYTE))))
X Struct: (XFIXES CursorNotify ev)
((fixed (%code CARD8)
        (subtype CARD8)
        (%sequence-number CARD16)
        (window WINDOW)
        (cursor-serial CARD32)
        (timestamp TIMESTAMP)
        (name ATOM)
        (-pad #(12 BYTE))))
X Struct: (XFIXES DestroyRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))))
X Struct: (XFIXES ExpandRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source (XFIXES REGION))
        (destination (XFIXES REGION))
        (left CARD16)
        (right CARD16)
        (top CARD16)
        (bottom CARD16)))
X Struct: (XFIXES FetchRegion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (extents RECTANGLE)
        (-pad #(16 BYTE)))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (XFIXES FetchRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))))
X Struct: (XFIXES GetCursorImage ans)
((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))))
X Struct: (XFIXES GetCursorImage req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XFIXES GetCursorImageAndName ans)
((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))))
X Struct: (XFIXES GetCursorImageAndName req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XFIXES GetCursorName ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (atom ATOM)
        (nbytes CARD16)
        (-pad #(18 BYTE)))
 (array (name #(nbytes CARD8))))
X Struct: (XFIXES GetCursorName req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cursor CURSOR)))
X Struct: (XFIXES HideCursor req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (XFIXES IntersectRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source1 (XFIXES REGION))
        (source2 (XFIXES REGION))
        (destination (XFIXES REGION))))
X Struct: (XFIXES InvertRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source (XFIXES REGION))
        (bounds RECTANGLE)
        (destination (XFIXES REGION))))
X Struct: (XFIXES QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD32)
        (minor-version CARD32)
        (-pad #(16 BYTE))))
X Struct: (XFIXES QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (client-major-version CARD32)
        (client-minor-version CARD32)))
X Struct: (XFIXES RegionExtents req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source (XFIXES REGION))
        (destination (XFIXES REGION))))
X Struct: (XFIXES SelectCursorInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (event-mask CARD32)))
X Struct: (XFIXES SelectSelectionInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (selection ATOM)
        (event-mask CARD32)))
X Struct: (XFIXES SelectionNotify ev)
((fixed (%code CARD8)
        (subtype CARD8)
        (%sequence-number CARD16)
        (window WINDOW)
        (owner WINDOW)
        (selection ATOM)
        (timestamp TIMESTAMP)
        (selection-timestamp TIMESTAMP)
        (-pad #(8 BYTE))))
X Struct: (XFIXES SetCursorName req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cursor CURSOR)
        (nbytes CARD16)
        (-pad #(2 BYTE)))
 (array (name #(nbytes CARD8))))
X Struct: (XFIXES SetGCClipRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (gc GCONTEXT)
        (region (XFIXES REGION))
        (x-origin INT16)
        (y-origin INT16)))
X Struct: (XFIXES SetPictureClipRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (picture (RENDER PICTURE))
        (region (XFIXES REGION))
        (x-origin INT16)
        (y-origin INT16)))
X Struct: (XFIXES SetRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION)))
 (array (rectangles #(#f RECTANGLE))))
X Struct: (XFIXES SetWindowShapeRegion req)
((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))))
X Struct: (XFIXES ShowCursor req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (XFIXES SubtractRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source1 (XFIXES REGION))
        (source2 (XFIXES REGION))
        (destination (XFIXES REGION))))
X Struct: (XFIXES TranslateRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (region (XFIXES REGION))
        (dx INT16)
        (dy INT16)))
X Struct: (XFIXES UnionRegion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (source1 (XFIXES REGION))
        (source2 (XFIXES REGION))
        (destination (XFIXES REGION))))
X Struct: (XFree86-DRI AuthConnection ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (authenticated CARD32)
        (%pad #(20 BYTE))))
X Struct: (XFree86-DRI AuthConnection req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (magic CARD32)))
X Struct: (XFree86-DRI CloseConnection req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (XFree86-DRI CreateContext ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (hw-context CARD32)
        (%pad #(20 BYTE))))
X Struct: (XFree86-DRI CreateContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (visual CARD32)
        (screen CARD32)
        (context CARD32)))
X Struct: (XFree86-DRI CreateDrawable ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (hw-drawable-handle CARD32)
        (%pad #(20 BYTE))))
X Struct: (XFree86-DRI CreateDrawable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (drawable CARD32)))
X Struct: (XFree86-DRI DestroyContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (context CARD32)))
X Struct: (XFree86-DRI DestroyDrawable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (drawable CARD32)))
X Struct: (XFree86-DRI DrmClipRect)
((fixed (x1 INT16)
        (y1 INT16)
        (x2 INT16)
        (x3 INT16)))
X Struct: (XFree86-DRI GetClientDriverName ans)
((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))))
X Struct: (XFree86-DRI GetClientDriverName req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (XFree86-DRI GetDeviceInfo ans)
((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))))
X Struct: (XFree86-DRI GetDeviceInfo req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (XFree86-DRI GetDrawableInfo ans)
((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)))))
X Struct: (XFree86-DRI GetDrawableInfo req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)
        (drawable CARD32)))
X Struct: (XFree86-DRI OpenConnection ans)
((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))))
X Struct: (XFree86-DRI OpenConnection req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (XFree86-DRI QueryDirectRenderingCapable ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (is-capable BOOL)
        (%pad #(23 BYTE))))
X Struct: (XFree86-DRI QueryDirectRenderingCapable req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (screen CARD32)))
X Struct: (XFree86-DRI QueryVersion ans)
((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))))
X Struct: (XFree86-DRI QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XINERAMA GetScreenCount ans)
((fixed (%status CARD8)
        (screen-count BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (window WINDOW)
        (%pad #(20 BYTE))))
X Struct: (XINERAMA GetScreenCount req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (XINERAMA GetScreenSize ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (width CARD32)
        (height CARD32)
        (window WINDOW))
 (array (screen #(1 SCREEN))))
X Struct: (XINERAMA GetScreenSize req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW))
 (array (screen #(1 SCREEN))))
X Struct: (XINERAMA GetState ans)
((fixed (%status CARD8)
        (state BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (window WINDOW)
        (%pad #(20 BYTE))))
X Struct: (XINERAMA GetState req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (XINERAMA IsActive ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (state CARD32)
        (%pad #(20 BYTE))))
X Struct: (XINERAMA IsActive req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XINERAMA QueryScreens ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (number CARD32)
        (-pad #(20 BYTE)))
 (array (screen-info #(number (XINERAMA ScreenInfo)))))
X Struct: (XINERAMA QueryScreens req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XINERAMA QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major CARD16)
        (minor CARD16)
        (%pad #(20 BYTE))))
X Struct: (XINERAMA QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (major CARD8)
        (minor CARD8)))
X Struct: (XINERAMA ScreenInfo)
((fixed (x-org INT16)
        (y-org INT16)
        (width CARD16)
        (height CARD16)))
X Struct: (XTEST CompareCursor ans)
((fixed (%status CARD8)
        (same BOOL)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (XTEST CompareCursor req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)
        (cursor CURSOR)))
X Struct: (XTEST FakeInput req)
((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)))
X Struct: (XTEST GetVersion ans)
((fixed (%status CARD8)
        (major-version CARD8)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (minor-version CARD16)
        (%pad #(22 BYTE))))
X Struct: (XTEST GetVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (major-version CARD8)
        (-pad #(1 BYTE))
        (minor-version CARD16)))
X Struct: (XTEST GrabControl req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (impervious BOOL)
        (-pad #(3 BYTE))))
X Struct: (XVideo AdaptorInfo)
((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))))
X Struct: (XVideo AttributeInfo)
((fixed (flags CARD32)
        (min INT32)
        (max INT32)
        (size CARD32))
 (array (name #(size char))))
X Struct: (XVideo BadControl err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (XVideo BadEncoding err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (XVideo BadPort err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (XVideo EncodingInfo)
((fixed (encoding (XVideo ENCODING))
        (name-size CARD16)
        (width CARD16)
        (height CARD16)
        (rate (XVideo Rational)))
 (array (name #(name-size char))))
X Struct: (XVideo Format)
((fixed (visual VISUALID) (depth CARD8)))
X Struct: (XVideo GetPortAttribute ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (value INT32)
        (%pad #(20 BYTE))))
X Struct: (XVideo GetPortAttribute req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))
        (attribute ATOM)))
X Struct: (XVideo GetStill req)
((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)))
X Struct: (XVideo GetVideo req)
((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)))
X Struct: (XVideo GrabPort ans)
((fixed (%status CARD8)
        (result BYTE)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (%pad #(24 BYTE))))
X Struct: (XVideo GrabPort req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))
        (time TIMESTAMP)))
X Struct: (XVideo Image)
((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))))
X Struct: (XVideo ImageFormatInfo)
((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)))
X Struct: (XVideo ListImageFormats ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (num-formats CARD32)
        (-pad #(20 BYTE)))
 (array (format #(num-formats (XVideo ImageFormatInfo)))))
X Struct: (XVideo ListImageFormats req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))))
X Struct: (XVideo PortNotify ev)
((fixed (%code CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (time TIMESTAMP)
        (port (XVideo PORT))
        (attribute ATOM)
        (value INT32)
        (%pad #(12 BYTE))))
X Struct: (XVideo PutImage req)
((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))))
X Struct: (XVideo PutStill req)
((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)))
X Struct: (XVideo PutVideo req)
((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)))
X Struct: (XVideo QueryAdaptors ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (num-adaptors CARD16)
        (-pad #(22 BYTE)))
 (array (info #(num-adaptors AdaptorInfo))))
X Struct: (XVideo QueryAdaptors req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))
X Struct: (XVideo QueryBestSize ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (actual-width CARD16)
        (actual-height CARD16)
        (%pad #(20 BYTE))))
X Struct: (XVideo QueryBestSize req)
((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)))
X Struct: (XVideo QueryEncodings ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (num-encodings CARD16)
        (-pad #(22 BYTE)))
 (array (info #(num-encodings EncodingInfo))))
X Struct: (XVideo QueryEncodings req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))))
X Struct: (XVideo QueryExtension ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major CARD16)
        (minor CARD16)
        (%pad #(20 BYTE))))
X Struct: (XVideo QueryExtension req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XVideo QueryImageAttributes ans)
((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))))
X Struct: (XVideo QueryImageAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))
        (id CARD32)
        (width CARD16)
        (height CARD16)))
X Struct: (XVideo QueryPortAttributes ans)
((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))))
X Struct: (XVideo QueryPortAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))))
X Struct: (XVideo Rational)
((fixed (numerator INT32) (denominator INT32)))
X Struct: (XVideo SelectPortNotify req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable DRAWABLE)
        (onoff BOOL)))
X Struct: (XVideo SelectVideoNotify req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (drawable DRAWABLE)
        (onoff BOOL)))
X Struct: (XVideo SetPortAttribute req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))
        (attribute ATOM)
        (value INT32)))
X Struct: (XVideo ShmPutImage req)
((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)))
X Struct: (XVideo StopVideo req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))
        (drawable DRAWABLE)))
X Struct: (XVideo UngrabPort req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port (XVideo PORT))
        (time TIMESTAMP)))
X Struct: (XVideo VideoNotify ev)
((fixed (%code CARD8)
        (reason BYTE)
        (%sequence-number CARD16)
        (time TIMESTAMP)
        (drawable DRAWABLE)
        (port (XVideo PORT))
        (%pad #(16 BYTE))))
X Struct: (XVideo-MotionCompensation CreateContext ans)
((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))))
X Struct: (XVideo-MotionCompensation CreateContext req)
((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)))
X Struct: (XVideo-MotionCompensation CreateSubpicture ans)
((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))))
X Struct: (XVideo-MotionCompensation CreateSubpicture req)
((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)))
X Struct: (XVideo-MotionCompensation CreateSurface ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (-pad #(24 BYTE)))
 (array (priv-data #(#f CARD32))))
X Struct: (XVideo-MotionCompensation CreateSurface req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (surface-id (XVideo-MotionCompensation SURFACE))
        (context-id (XVideo-MotionCompensation CONTEXT))))
X Struct: (XVideo-MotionCompensation DestroyContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context-id (XVideo-MotionCompensation CONTEXT))))
X Struct: (XVideo-MotionCompensation DestroySubpicture req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (subpicture-id
          (XVideo-MotionCompensation SUBPICTURE))))
X Struct: (XVideo-MotionCompensation DestroySurface req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (surface-id (XVideo-MotionCompensation SURFACE))))
X Struct: (XVideo-MotionCompensation ListSubpictureTypes ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (num CARD32)
        (-pad #(20 BYTE)))
 (array (types #(num (XVideo ImageFormatInfo)))))
X Struct: (XVideo-MotionCompensation ListSubpictureTypes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port-id (XVideo PORT))
        (surface-id (XVideo-MotionCompensation SURFACE))))
X Struct: (XVideo-MotionCompensation ListSurfaceTypes ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (num CARD32)
        (-pad #(20 BYTE)))
 (array (surfaces
          #(num (XVideo-MotionCompensation SurfaceInfo)))))
X Struct: (XVideo-MotionCompensation ListSurfaceTypes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (port-id (XVideo PORT))))
X Struct: (XVideo-MotionCompensation QueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major CARD32)
        (minor CARD32)
        (%pad #(16 BYTE))))
X Struct: (XVideo-MotionCompensation QueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XVideo-MotionCompensation SurfaceInfo)
((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)))
X Struct: (XpExtension AttributNotify ev)
((fixed (%code CARD8)
        (detail CARD8)
        (%sequence-number CARD16)
        (context (XpExtension PCONTEXT))
        (%pad #(24 BYTE))))
X Struct: (XpExtension BadContext err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (XpExtension BadSequence err)
((fixed (%status CARD8)
        (%hint CARD8)
        (%sequence-number CARD16)
        (%pad #(28 BYTE))))
X Struct: (XpExtension CreateContext req)
((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)))))
X Struct: (XpExtension Notify ev)
((fixed (%code CARD8)
        (detail CARD8)
        (%sequence-number CARD16)
        (context (XpExtension PCONTEXT))
        (cancel BOOL)
        (%pad #(23 BYTE))))
X Struct: (XpExtension PRINTER)
((fixed (nameLen CARD32))
 (array (name #(nameLen STRING8)))
 (fixed (descLen CARD32))
 (array (description #(descLen STRING8))))
X Struct: (XpExtension PrintDestroyContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context CARD32)))
X Struct: (XpExtension PrintEndDoc req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cancel BOOL)))
X Struct: (XpExtension PrintEndJob req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cancel BOOL)))
X Struct: (XpExtension PrintEndPage req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (cancel BOOL)
        (-pad #(3 BYTE))))
X Struct: (XpExtension PrintGetAttributes ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (stringLen CARD32)
        (-pad #(20 BYTE))
        (attributes (XpExtension STRING8))))
X Struct: (XpExtension PrintGetAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))
        (pool CARD8)
        (-pad #(3 BYTE))))
X Struct: (XpExtension PrintGetContext ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (context CARD32)
        (%pad #(20 BYTE))))
X Struct: (XpExtension PrintGetContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XpExtension PrintGetDocumentData ans)
((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))))
X Struct: (XpExtension PrintGetDocumentData req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))
        (max-bytes CARD32)))
X Struct: (XpExtension PrintGetImageResolution ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (image-resolution CARD16)
        (%pad #(22 BYTE))))
X Struct: (XpExtension PrintGetImageResolution req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))))
X Struct: (XpExtension PrintGetOneAttributes ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (valueLen CARD32)
        (-pad #(20 BYTE)))
 (array (value #(valueLen (XpExtension STRING8)))))
X Struct: (XpExtension PrintGetOneAttributes req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))
        (nameLen CARD32)
        (pool CARD8)
        (-pad #(3 BYTE)))
 (array (name #(nameLen (XpExtension STRING8)))))
X Struct: (XpExtension PrintGetPageDimensions ans)
((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))))
X Struct: (XpExtension PrintGetPageDimensions req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))))
X Struct: (XpExtension PrintGetPrinterList ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (listCount CARD32)
        (-pad #(20 BYTE)))
 (array (printers #(listCount PRINTER))))
X Struct: (XpExtension PrintGetPrinterList req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (printerNameLen CARD32)
        (localeLen CARD32))
 (array (printer-name
          #(printerNameLen (XpExtension STRING8))))
 (array (locale #(localeLen (XpExtension STRING8)))))
X Struct: (XpExtension PrintGetScreenOfContext ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (root WINDOW)
        (%pad #(20 BYTE))))
X Struct: (XpExtension PrintGetScreenOfContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XpExtension PrintInputSelected ans)
((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))))
X Struct: (XpExtension PrintInputSelected req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))))
X Struct: (XpExtension PrintPutDocumentData req)
((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)))))
X Struct: (XpExtension PrintQueryScreens ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (listCount CARD32)
        (-pad #(20 BYTE)))
 (array (roots #(listCount WINDOW))))
X Struct: (XpExtension PrintQueryScreens req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XpExtension PrintQueryVersion ans)
((fixed (%status CARD8)
        (-pad #(1 BYTE))
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (major-version CARD16)
        (minor-version CARD16)
        (%pad #(20 BYTE))))
X Struct: (XpExtension PrintQueryVersion req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XpExtension PrintRehashPrinterList req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)))
X Struct: (XpExtension PrintSelectInput req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))
        (event-mask CARD32))
 (array (event-list #(event-mask CARD32 mask))))
X Struct: (XpExtension PrintSetAttributes req)
((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)))))
X Struct: (XpExtension PrintSetContext req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context CARD32)))
X Struct: (XpExtension PrintSetImageResolution ans)
((fixed (%status CARD8)
        (status BOOL)
        (%sequence-number CARD16)
        (%reply-length CARD32)
        (previous-resolutions CARD16)
        (%pad #(22 BYTE))))
X Struct: (XpExtension PrintSetImageResolution req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (context (XpExtension PCONTEXT))
        (image-resolution CARD16)))
X Struct: (XpExtension PrintStartDoc req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (driver-mode CARD8)))
X Struct: (XpExtension PrintStartJob req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (output-mode CARD8)))
X Struct: (XpExtension PrintStartPage req)
((fixed (%major-opcode CARD8)
        (%minor-opcode CARD8)
        (%length CARD16)
        (window WINDOW)))

88 module (ttn-do zzz x-kbgrunge)

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.

Scheme Procedure: mk-key keysym modifier

Return a key object, basically a pair of integers representing the key’s keysym and modifier.

Scheme Procedure: key-sym key

Return the keysym portion of key.

Scheme Procedure: key-mod key

Return the modifier portion of key.

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.

Scheme Procedure: symbol<-keysym keysym

Return the symbol associated with keysym (an integer).

Scheme Procedure: keysym<-symbol symbol

Return the keysym (integer) associated with symbol.

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 nameX symbol(s)
mode-switchMode_switch
shift-lockShift_Lock
caps-lockCaps_Lock
num-lockNum_Lock
shiftShift_LShift_R
controlControl_LControl_R
metaMeta_LMeta_R
altAlt_LAlt_R
superSuper_LSuper_R
hyperHyper_LHyper_R

You can augment it by specifying additional-modifiers, a list of sub-lists, each of which has the form (nice-name x-symbol[…]).

Scheme Procedure: kthx-core conn [keyword value…]
Keywords: finangle-meta?, additional-modifiers 

Query 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:

#:info detail

Return information on detail (a symbol), one of:

mode-switch-mod
num-lock-mod

A MapIndex enum, one of: Shift, Lock, Control, 1, 2, 3, 4 or 5, which means that the Mode_switch (or Num_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?

#t if meta has been finangled (see below), else #f.

valid-modifiers

A list of nice names of the available recognized modifiers.

#:modifier-mask nice-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<-event event

Translate an event object of type KeyPress or KeyRelease into 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<-keypress press

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-modifier or modifier-not-mapped, along with the respective (base) symbol or modifier.

If you specify non-#f finangle-meta?, and alt is “bound”, and meta is “not bound”, then you will see meta everywhere alt should appear, and specifying alt as a modifier in a (non modifier) arg to #:code/modmask<-keypress will result in a modifier-not-mapped error.

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)

89 module (ttn-do zzz x-umbrages)

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.


89.1 off the wire

Scheme Procedure: n<-window-class symbol

Return the integer value of the WindowClass symbol.

Scheme Procedure: n<-gx symbol

Return the integer value of GX symbol.

Scheme Procedure: n<-event-mask x

Return the integer value of the EventMask x, a symbol or list of symbols. For a list, the value is the logior of each element’s value.

The preceding three procedures are defined using the following one. For a list of enums, See x-protocol enums.

Scheme Procedure: n-from-enum name [options…]

Return a procedure p that maps a symbol in the enum name to an integer value (or #f if that symbol is not recognized). Various options configure the procedure:

(omit key…)

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 with logior.

Here are miscellaneous procedures useful for looking up static data and transforming property values to more convenient forms.

Scheme Procedure: n<-color-name name [color-db-filename]

Look up color name in the standard color database file /etc/X11/rgb.txt and return its RGB value (integer), or #f if 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     NAME

where r, g, b are decimal integers in the range 0 to 255, and fields are separated by at least one whitespace character.

Scheme Procedure: string-split-on-null string

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 (guile)SRFI-13 Miscellaneous.

This one is copied from GNU Guile-SDL1.

Scheme Procedure: exact-truncate number

Return the exact truncation (rounding to zero) of number. This is “safer” than simply inexact->exact for some Guile versions.

(define scale 0.180281690140845)

(inexact->exact scale)
  ⇒ 3247666210160131/18014398509481984 ; Guile 1.8.7
  ⇒ 0                                  ; Guile 1.4.x

(exact-truncate scale)
  ⇒ 0

Lastly, a bunch of constant data.

Scheme Procedure: data name

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.


89.2 on the wire

Scheme Procedure: connection

Return a procedure that handles a connection to the server specified by the env var DISPLAY. If DISPLAY is 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 select rather than for direct i/o, which would confuse things. See (guile)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 take keyword-style arguments.

#:io

Return the proc returned by -simple-io-manager, likewise configured to take keyword-style arguments.

#: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-xid with 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, and exit with its return value.

Scheme Procedure: atom-manager conn

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:

#:symbolic atom

Return the symbolic name associated with atom, an integer, or #f if no such atom exists on the server. NB: A name may have embedded ‘#\space’ or other non-‘#\nul’ bytes.

#:numeric symbol
#:numeric! symbol

Return the atom (non-zero integer) value associated with symbol. The first form may return #f if 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.

Scheme Procedure: change-property!-proc conn

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, Prepend or Replace, or the numeric (integer) value of an PropMode enum.

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).

Scheme Procedure: set-icccm-properties! conn xwid [plist…]

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_NAME
WM_ICON_NAME
WM_CLIENT_MACHINE

A string.

WM_NORMAL_HINTS

A sub-plist with possible keys:

min-size
max-size
resize-inc
base-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:

input
urgency

A boolean.

initial-state

A symbol, one of: withdrawn, normal, iconic.

icon-pixmap
icon-mask

A pixmap XID.

icon-window
window-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.

Scheme Procedure: associate-font! conn did gcid xfid

Associate (via conn) font xfid with drawable did and graphic context gcid. This means that xfid will be used for subsequent text drawing operations.

Scheme Procedure: drawing conn

Return a procedure that handles drawing manipulations for conn, the object returned by connection. 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-font name

Open the font name (a string). If successful, return information on the font as an alist, with additional key xfid whose 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-gc did 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-window keyword-args
#:create-pixmap keyword-args
#:create-cursor keyword-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-cursor sfont 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 request CreateCursor, this uses CreateGlyphCursor instead.

#:drop xid

For each xid, free the type-specific resources (if any) associated with xid, and make xid available for subsequent allocation.

Scheme Procedure: pixel-width-proc font-info

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
Scheme Procedure: press-ESC-to-quit! conn [meh]

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.


90 module (ttn-do zzz xhtml-tree)

Scheme Procedure: ~?xml encoding

Return the string:

"<?xml version=\"1.0\" encoding=\"encoding\"?>"

encoding can be a string or symbol.

Scheme Procedure: ~!DOCTYPE variant

Return the !DOCTYPE form as a string sans trailing newline for variant (a symbol), one of: strict, transitional, frameset.

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
Scheme Procedure: ~simple-strict-xhtml [x…]

Return a pair whose CAR is a list of two lines (strings) that specify a simple UTF-8 encoded XML and !DOCTYPE, and whose CDR is the SXML html element with attributes

xmlns    "http://www.w3.org/1999/xhtml"
xml:lang "en"
lang     "en"

and children x. Actually x can also begin with attributes (alternating symbols and values).


91 module (ttn-do zzz emacsdream)

Will Emacs and Guile ever truly merge? Who knows?

Scheme Procedure: make-unsigned-byte-stream source [keyword value…]
Keywords: check 

Return 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 #:check symbol is specified, however, if an element is not an integer in the range [0,255], throw symbol with the element as arg.

Scheme Procedure: utf8-reader from [init-pos]

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 bytes-consume and uval are integers. If there is a problem, p throws invalid-utf8 with the list of problematic bytes. Note that decoding does not perform UCS-specific checks (see valid-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-utf8 error, 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.

Scheme Procedure: valid-ucs? uval

Return #t iff 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).

Scheme Procedure: valid-ucs2? uval

Return #t iff uval is a UCS value that fits in two bytes. This uses valid-ucs?.

Extended example

(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))

92 RETIRED

100x                          md-local-build
10x                           md-local-configure
api-diff                      mgrabmue-webserver
apt-search-show               mkinstalldirs
audio-cd-control              module-fan-in
beep-5-times                  mozilla
biomail2ris                   mq
cgoban                        my-lpr
config.guess                  my-updatedb
connected-p                   notify-home-tmp-nonempty
console-prefs                 prepare-glade2scm-wip-tarball
cu                            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
format-atom-feed              sgfc
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

Index

Jump to:   #   (   -   :   ~  
A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y  
Index Entry  Section

#
#:additional-modifiers, kthx-core: zzz x-kbgrunge
#:args, call-process: zzz subprocess
#:args, call-process->buffers: zzz subprocess
#:args, make-buffered-caller: zzz subprocess
#:check, make-unsigned-byte-stream: zzz emacsdream
#:create?, custom-restore: zzz ciabattone
#:data, define-mapping: htmlize-scheme
#:end-tag, expand: zzz publishing
#:errb, call-process->buffers: zzz subprocess
#:errp, call-process: zzz subprocess
#:finangle-meta?, kthx-core: zzz x-kbgrunge
#:gen, html-wurld-tree: display-wurld
#:host, custom-dump: zzz ciabattone
#:host, custom-restore: zzz ciabattone
#:inb, call-process->buffers: zzz subprocess
#:inb, make-buffered-caller: zzz subprocess
#:inp, call-process: zzz subprocess
#:links, html-wurld-tree: display-wurld
#:listing, custom-dump: zzz ciabattone
#:listing, custom-restore: zzz ciabattone
#:lookup, define-mapping: htmlize-scheme
#:neck, expand: zzz publishing
#:no-end-tag-if-null-body?, expand: zzz publishing
#:norm, call-process: zzz subprocess
#:norm, call-process->buffers: zzz subprocess
#:outb, call-process->buffers: zzz subprocess
#:outp, call-process: zzz subprocess
#:prep-body, expand: zzz publishing
#:recognize, define-mapping: htmlize-scheme
#:size, html-wurld-tree: display-wurld
#:stem, define-mapping: htmlize-scheme
#:tail, expand: zzz publishing
#:type, define-mapping: htmlize-scheme
#:xbsc, expand: zzz publishing

(
(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

-
-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 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
~~standard-homepage: make-gnu-pkg-homepage

A
accumulator: zzz personally
ARC: x-protocol structs
args->normalized-list: zzz subprocess
as-xhtml (program): as-xhtml
associate-font!: x-umbrages on the wire
atom-manager: x-umbrages on the wire

B
base64 (program): base64
base64-decode: base64
base64-encode: base64
bit-field-diagram: bit-field-diagram
bit-field-diagram (program): bit-field-diagram
browse-grumi (program): browse-grumi
bump-version (program): bump-version
burn-iso (program): burn-iso

C
call-process: zzz subprocess
call-process->buffers: zzz subprocess
change-property!-proc: x-umbrages on the wire
CHAR2B: x-protocol structs
CHARINFO: x-protocol structs
check-hv: zzz banalities
check-ports: valid-ucs-p
check-topodefs (program): check-topodefs
circle-frisk (program): circle-frisk
cluster-mangler: zzz ciabattone
COLORITEM: x-protocol structs
concordance (program): concordance
condition-case: zzz personally
connection: x-umbrages on the wire
copyright: zzz publishing
copyright-since: zzz publishing
create-index-file!: fortune
cron!: cron-walk
cron-walk (program): cron-walk
cs (program): cs
css-tree: zzz publishing
custom-dump: zzz ciabattone
custom-restore: zzz ciabattone

D
daemonize: zzz senz-altro
data: x-umbrages off the wire
debian-package-downstream (program): debian-package-downstream
define-mapping: htmlize-scheme
demo (program): demo
DEPTH: x-protocol structs
dir-exists?: zzz filesystem
directory-files: zzz filesystem
directory-index-tree: write-html-directory-index
directory-vicinity: zzz filesystem
display-state-summary (program): display-state-summary
display-wurld (program): display-wurld
drawing: x-umbrages on the wire

E
edit-script-header (program): edit-script-header
editing-buffer: mogrify
editing-buffer-manager: mogrify
exact-truncate: x-umbrages off the wire
expand: zzz publishing
expand-file-name: zzz filesystem
expand-file-name-substituting-env-vars: zzz filesystem
extract-stem-proc: zzz filesystem

F
FE: zzz personally
file-digest: whirlpool-sum
file-lines: zzz subprocess
file-newer-than-file?: zzz filesystem
filename-absolute-or-in-vicinity: zzz filesystem
filename-components: zzz filesystem
filename-components-append: zzz filesystem
filename-sans-end-sep-proc: zzz filesystem
filename-sans-end-slash: zzz filesystem
filename-stem: zzz filesystem
filename:: mogrify
filtered-files: zzz filesystem
filtered-files-in-vicinity: zzz filesystem
find-file: mogrify
find-file-read-only: mogrify
find-program: zzz subprocess
flatten: zzz publishing
flatten-to: zzz publishing
FONTPROP: x-protocol structs
FORMAT: x-protocol structs
format-css (program): format-css
forms<-port: zzz personally
fortune (program): fortune
fortune-cookie: fortune
fs: zzz personally
fse: zzz personally
fshell-command->string: zzz subprocess
fso: zzz personally
function-tree (program): function-tree

G
generate-C-symbol-set: generate-C-symbol-set
generate-C-symbol-set (program): generate-C-symbol-set
get-meta-file: zzz various-db
gethostname: zz sys linux-gnu
getopt-long: zzz bamboozled
getsid: zz sys linux-gnu
gnuvola-wip (program): gnuvola-wip
grep: zzz lookingfor
grep-l: zzz lookingfor
grep-matches: zzz lookingfor
grumi (program): grumi
gutenberg2mbox (program): gutenberg2mbox
gxferm (program): gxferm

H
HFE: zzz personally
hmm (program): hmm
HOST: x-protocol structs
html-data<-file: zzz publishing
html-wurld-tree: display-wurld
htmlize-scheme (program): htmlize-scheme

I
imgtxtlink (program): imgtxtlink
iovec: zz sys linux-gnu

K
key-mod: zzz x-kbgrunge
key-sym: zzz x-kbgrunge
keysym<-symbol: zzz x-kbgrunge
kthx-core: zzz x-kbgrunge

L
list<-: zzz publishing
local-build (program): local-build
ls-tarballs (program): ls-tarballs

M
magic (program): magic
maintainer-tools-versions (program): maintainer-tools-versions
make-boot-set (program): make-boot-set
make-buffered-caller: zzz subprocess
make-fso: zzz personally
make-gnu-pkg-homepage (program): make-gnu-pkg-homepage
make-pgtable (program): make-pgtable
make-text-outline-reader: todo
make-unsigned-byte-stream: zzz emacsdream
mark-up-news-excerpt: mark-up-news-excerpt
mark-up-news-excerpt (program): mark-up-news-excerpt
mk-key: zzz x-kbgrunge
mkdir-p: zzz filesystem
mmci (program): mmci
mogrify (program): mogrify

N
n-from-enum: x-umbrages off the wire
n<-color-name: x-umbrages off the wire
n<-event-mask: x-umbrages off the wire
n<-gx: x-umbrages off the wire
n<-window-class: x-umbrages off the wire
new-cvsroot (program): new-cvsroot
not-dot-not-dotdot: zzz filesystem

O
option-ref: zzz bamboozled

P
parent-directories: zzz publishing
peel: zzz publishing
personal-pgtable-all: zzz various-db
personal-pgtable-defs: zzz various-db
personal-pgtable-manager: zzz various-db
personal-pgtable-worker: zzz various-db
pg2edb (program): pg2edb
phone (program): phone
pixel-width-proc: x-umbrages on the wire
POINT: x-protocol structs
port-lines: zzz subprocess
pp: pp
pp (program): pp
ppmglobe (program): ppmglobe
press-ESC-to-quit!: x-umbrages on the wire
primes: primes
primes (program): primes

Q
qm (program): qm
qop<-alist: zzz banalities
qop<-args: zzz banalities

R
random-info-node (program): random-info-node
randomish-wep-key (program): randomish-wep-key
randomly-hyperlinked: imgtxtlink
rcs-fast-export (program): rcs-fast-export
read-text-db-table: zzz various-db
read-xpilot-robots: read-xpilot-robots
read-xpilot-robots (program): read-xpilot-robots
readv: zz sys linux-gnu
RECTANGLE: x-protocol structs
refresh-hardlinks (program): refresh-hardlinks
report-zonkables (program): report-zonkables
report-zonkables!: report-zonkables
rescue-xcb (program): rescue-xcb
reset-tilde-cache!: zzz filesystem
RGB: x-protocol structs
rm-rf (program): rm-rf
rm-rf!: rm-rf
run-signed-batch-job (program): run-signed-batch-job

S
safe-rewind: zzz filesystem
save-cwd: zzz filesystem
scan!-proc: valid-ucs-p
scm2bin (program): scm2bin
SCREEN: x-protocol structs
SEGMENT: x-protocol structs
sendfile: zz sys linux-gnu
sendfile/never-fewer: zz sys linux-gnu
serve-debiso (program): serve-debiso
set-icccm-properties!: x-umbrages on the wire
set-meta-file!: zzz various-db
Setup: x-protocol structs
SetupAuthenticate: x-protocol structs
SetupFailed: x-protocol structs
SetupRequest: x-protocol structs
shell-command->list: zzz subprocess
shell-command->string: zzz subprocess
shell-quote-argument: zzz subprocess
sizzweb (program): sizzweb
smhdwy: zzz publishing
snap-iso (program): snap-iso
st (program): st
sta (program): sta
STR: x-protocol structs
string-digest: whirlpool-sum
string-split-on-null: x-umbrages off the wire
string<-image-command: imgtxtlink
string<-kw/sym: zzz publishing
substitute-env-vars: zzz filesystem
symbol<-keysym: zzz x-kbgrunge
symbol<-kw/sym: zzz publishing
sysfmt: zzz subprocess
system*: zzz subprocess

T
temporary-file-port: zzz filesystem
text-db-table-meta: zzz various-db
TIMECOORD: x-protocol structs
todo (program): todo
tree<-news-excerpt: mark-up-news-excerpt
txtoutline-reader: zzz txtoutline

U
update-all-html-data-pages!: zzz publishing
urxvt-setfont (program): urxvt-setfont
utf8-dump (program): utf8-dump
utf8-reader: zzz emacsdream

V
valid-ucs-p (program): valid-ucs-p
valid-ucs2?: zzz emacsdream
valid-ucs?: zzz emacsdream
vcg-convert (program): vcg-convert
VISUALTYPE: x-protocol structs

W
w/o-<&>: zzz publishing
wcat (program): wcat
whatever: zzz personally
whirlpool-sum (program): whirlpool-sum
with-cwd: zzz filesystem
write-html-directory-index (program): write-html-directory-index
write-if-changed: zzz filesystem
write-punily: scm2bin
writev: zz sys linux-gnu

X
x-list-extensions (program): x-list-extensions
xearth-mapdata-to-text-db-table (program): xearth-mapdata-to-text-db-table
xlsatoms (program): xlsatoms
xlsfonts (program): xlsfonts
xml2sexp: xml2sexp
xml2sexp (program): xml2sexp
xout (program): xout
xprop (program): xprop

Y
YYYY: zzz publishing

Jump to:   #   (   -   :   ~  
A   B   C   D   E   F   G   H   I   K   L   M   N   O   P   Q   R   S   T   U   V   W   X   Y  

Footnotes

(1)

homepage: http://www.gnu.org/software/guile-sdl