Dpatch Command List
===================

This file contains a list of commands that can be understood by
dpatch. Each entry begins with the name of the command and a list
of the arguments it takes. That's followed by a paragraph
explaining what the command does. The last thing in each
entry is the mode that the command is valid in. (Dpatch starts
off in header mode.)

arhdr <name> <date> <uid> <gid> <mode>
   
   This outputs an ar header to the current output stream. The current
   output stream must be seekable, and a fixar command must be output
   between arhdr commands.
   (data)

bdiff
   
   The data following this command is interpreted as a bdiff. The source
   file is specified by the previous moi command.
   (moi)

check <md5>
   
   This command computes the md5 for the current moi, and compares that
   to the md5 given with this command. It signals an error and terminates
   if the two don't match.
   (moi)

data <length>
   
   Copies length bytes of data from the debdiff into the current
   output stream.
   (data)

debdiff <version>
   
   This command should be the first one in a debdiff file. It tells
   dpatch the version of ddiff that produced this debdiff, so that
   dpatch could possibly adjust accordingly.
   (header)

decompress
   
   This command tells dpatch that the rest of the input stream is
   compressed. Dpatch begins decompressing the input stream and
   continues on.
   (data)

end header
   
   This ends header mode, and tells dpatch to prepare to receive the
   diff data. After this, dpatch enters data mode.
   (header)

fixar
   
   This updates the header output the arhdr command to include
   the length of the data written. It also outputs a padding
   byte if the length of the data is odd. (As per the ar spec.)
   This must be called on the same output stream as the previous
   arhdr command.
   (data)

frompkg <name> <version> <arch>
   
   The frompkg command causes name, version, and architecture checking
   of the source package to take place. In future versions, this command
   may invoke code that searches out and opens a matching source file.
   (header)

gzip
   
   This command changes the current output stream to a process
   that compresses via a gzip process into a new gzip output
   stream.
   (data)

gznh <method> <extra>
   
   This command changes the current output stream to a header-stripped
   gzip output stream. When combined with a gzip header sent using the
   data command, this allows for the exact reconstruction of a gzip
   stream. (Provided that the same data compresses to the same output
   stream.) Method and extra are used to check that the compression
   level matches.
   (data)

moi <arpart> [tarpart]
   
   This selects the member of interest from the source package. This
   changes modes into moi|data mode. It's an error if the package
   can't be found in the source package. A second command replaces
   the member of interest.
   (data)

pop
   
   This pops the top element off of the output stream stack. It's an
   error to allow the output stream stack to become empty.
   (data)

tarh
   
   This command tells debdiff to copy 512 bytes from the debdiff into
   the current output stream. (It's used to copy tar header blocks from
   the input to the output.)
   (data)

tarpad
   
   This command zero-pads the current output stream to a 512 byte
   boundary.
   (data)

topkg <name> <version> <arch>
   
   If a filename is supplied on the command line to debdiff, this
   is a no-op command. Otherwise, this supplies information used
   to select the output file name.
   (header)

debug <arg>
   
   This causes dpatch to print out arg as a debugging message.
   (any)

