Provided by: shntool_3.0.10-1_amd64 bug

NAME

       shntool - a multi‐purpose WAVE data processing and reporting utility

SYNOPSIS

       shntool mode ...
       shntool [CORE OPTION]

DESCRIPTION

       shntool  is  a  command‐line  utility to view and/or modify WAVE data and properties.  It runs in several
       different operating modes, and supports various lossless audio formats.

       shntool is comprised of three parts ‐ its core, mode modules, and format modules.  This helps to make the
       code  easier  to  maintain,  as  well  as  aid  other  programmers  in developing new functionality.  The
       distribution archive contains a file named 'modules.howto' that describes how to create  a  new  mode  or
       format module, for those so inclined.

   Mode modules
       shntool  performs various functions on WAVE data through the use of mode modules.  The core of shntool is
       simply a wrapper around the mode modules.  In fact, when shntool is run with a valid mode  as  its  first
       argument,  it  essentially runs the main procedure for the specified mode, and quits.  shntool comes with
       several built‐in modes, described below:

              len    Displays length, size and properties of PCM WAVE data

              fix    Fixes sector‐boundary problems with CD‐quality PCM WAVE data

              hash   Computes the MD5 or SHA1 fingerprint of PCM WAVE data

              pad    Pads CD(hyquality files not aligned on sector boundaries with silence

              join   Joins PCM WAVE data from multiple files into one

              split  Splits PCM WAVE data from one file into multiple files

              cat    Writes PCM WAVE data from one or more files to the terminal

              cmp    Compares PCM WAVE data in two files

              cue    Generates a CUE sheet or split points from a set of files

              conv   Converts files from one format to another

              info   Displays detailed information about PCM WAVE data

              strip  Strips extra RIFF chunks and/or writes canonical headers

              gen    Generates CD‐quality PCM WAVE data files containing silence

              trim   Trims PCM WAVE silence from the ends of files

       For more information on the meaning of the various command‐line options for  each  mode,  see  the  MODE‐
       SPECIFIC OPTIONS section below.

       For  convenience,  each  mode can specify an alternate name or alias that will invoke it (this feature is
       currently only available on systems that support symbolic or hard linking).  In particular, each mode  is
       aliased  to 'shn<mode>'.  For instance, running shnlen is equivalent to running shntool len - thus saving
       a few keystrokes.

   Format modules
       File formats are abstracted from shntool through the use of format modules.  They  provide  a  means  for
       shntool  to  tranparently  read  and/or write different file formats.  This abstraction allows shntool to
       concentrate on its job without worrying about the details of each file format.

       The following formats are currently supported:

              wav    RIFF WAVE file format

              aiff   Audio Interchange File Format (AIFF and uncompressed/sowt AIFF-C only) (via 'sox'):
                     <http://sox.sourceforge.net/>

              shn    Shorten low complexity waveform coder (via 'shorten'):
                     <http://www.softsound.com/Shorten.html>
                     <http://www.etree.org/shnutils/shorten/>

              flac   Free Lossless Audio Codec (via 'flac'):
                     <http://flac.sourceforge.net/>

              ape    Monkey's Audio Compressor (via 'mac'):
                     <http://www.monkeysaudio.com/>
                     <http://supermmx.org/linux/mac/>

              alac   Apple Lossless Audio Codec (via 'alac'):
                     <http://craz.net/programs/itunes/alac.html>

              tak    (T)om's lossless (A)udio (K)ompressor (via 'takc'):
                     <http://www.thbeck.de/Tak/Tak.html>

              ofr    OptimFROG Lossless WAVE Audio Coder (via 'ofr'):
                     <http://www.losslessaudio.org/>

              tta    TTA Lossless Audio Codec (via 'ttaenc'):
                     <http://tta.sourceforge.net/>

              als    MPEG-4 Audio Lossless Coding (via 'mp4als'):
                     <http://www.nue.tu-berlin.de/forschung/projekte/ ‐
                     lossless/mp4als.html>

              wv     WavPack Hybrid Lossless Audio Compression (via 'wavpack' and 'wvunpack'):
                     <http://www.wavpack.com/>

              lpac   Lossless Predictive Audio Compression (via 'lpac'):
                     <http://www.nue.tu-berlin.de/wer/liebchen/lpac.html>

              la     Lossless Audio (via 'la'):
                     <http://www.lossless-audio.com/>

              bonk   Bonk lossy/lossless audio compressor (via 'bonk'):
                     <http://www.logarithmic.net/pfh/bonk>

              kxs    Kexis lossless WAV file compressor (via 'kexis'):
                     <http://www.sourceforge.net/projects/kexis/>

              mkw    MKW Audio Compression format (via 'mkwcon'):
                     <http://www.etree.org/shnutils/mkwcon/>

              cust   Custom output format module (output only, useful for encoding to a format that shntool does
                     not yet support)

              term   sends output to the terminal

              null   sends  output  to /dev/null (output only, useful for dry‐runs in several modes, such as fix
                     mode or strip mode)

       When reading files for input, shntool automatically discovers which, if any, format module  handles  each
       file.   In  modes  where  files are created as output, you can specify what the output format should be ‐
       otherwise, shntool decides for you by selecting the first format module it finds that supports output (in
       a default installation, this will be the wav format).

CORE OPTIONS

   Modeless
       When run without a mode, shntool takes these options:

       -m     Show detailed mode module information

       -f     Show detailed format module information

       -a     Show default format module arguments

       -v     Show version information

       -h     Show a help screen

GLOBAL OPTIONS

   All modes
       All modes support the following options:

       -D     Print debugging information

       -F file
              Specify  a  file containing a list of filenames to process.  This overrides any files specified on
              the command line or on the terminal.

              NOTE: Most modes will accept input filenames from a single  source,  according  to  the  following
              order  of  precedence:  file  specified by the -F option, otherwise filenames on the command line,
              otherwise filenames read from the terminal.

       -H     Print times in h:mm:ss.{ff,nnn} format, instead of m:ss.{ff,nnn}

       -P type
              Specify progress indicator type.  type is one of: {pct, dot, spin, face,  none}.   pct  shows  the
              completion percentage of each operation.  dot shows the progress of each operation by displaying a
              '.' after each 10% step toward completion.  spin shows a spinning progress indicator.  face  shows
              the  progress  of each operation by displaying six emoticons that become increasingly happy as the
              operation nears  completion.   none  prevents  any  progress  completion  information  from  being
              displayed.  The default is pct.

       -h     Show the help screen for this mode

       -i fmt Specify input file format decoder and/or arguments.  The format is: "fmt decoder [arg1 ... argN]",
              and must be surrounded by quotes.  If arguments are given, then one of  them  must  contain  "%f",
              which will be replaced with the input filename.  Examples:

              -i  'shn  shorten-2.3b'  (use  official  shorten-2.3b  instead  of  later  versions; leave default
              arguments untouched)

              -i 'shn shorten -x -d 2048 %f -' (force shorten to skip the first 2048 bytes of each file)

       -q     Suppress non‐critical output (quiet mode).  Output that  normally  goes  to  stderr  will  not  be
              displayed, other than errors or debugging information (if specified).

       -r val Reorder input files?  val is one of: {ask, ascii, natural, none}.  The default is natural.

       -v     Show version information

       -w     Suppress warnings

       --     Indicates that everything following it is a filename

   Output modes
       Additionally, any mode that creates output files supports the the following options:

       -O val Overwrite existing files?  val is one of: {ask, always, never}.  The default is ask.

       -a str Prefix str to base part of output filenames

       -d dir Specify output directory

       -o str Specify  output  file  format  extension,  encoder  and/or  arguments.  Format is:  "fmt [ext=abc]
              [encoder [arg1 ... argN (%f = filename)]]", and must be surrounded by quotes.   If  arguments  are
              given,  then  one  of  them  must  contain  "%f", which will be replaced with the output filename.
              Examples:

              -o 'shn shorten -v2 - %f' (create shorten files without seek tables)

              -o 'flac flake - %f' (use alternate flac encoder)

              -o 'aiff ext=aif' (override default aiff extension of 'aiff' with 'aif')

              -o 'cust ext=mp3 lame --quiet - %f' (create mp3 files using lame)

       -z str Postfix str to base part of output filenames

MODE‐SPECIFIC OPTIONS

   len mode options
       -U unit
              Specifies the unit in which the totals will be printed.  unit is one of: {b, kb, mb, gb, tb}.  The
              default is b.

       -c     Do not show column names

       -t     Do not show totals line

       -u unit
              Specifies  the unit in which each file will be printed.  unit is one of: {b, kb, mb, gb, tb}.  The
              default is b.

       len mode output

              The output of len mode may seem cryptic  at  first,  because  it  attempts  to  convey  a  lot  of
              information  in  just  a little bit of space.  But it is quite easy to read once you know what the
              columns represent; and in certain columns, what each character in the column means.   Each  column
              is explained below.

              length Shows  the  length  of the WAVE data, in m:ss.nnn (millisecond) format.  If the data is CD‐
                     quality, then m:ss.ff is shown instead, where ff is a  number  from  00  to  74  that  best
                     approximates  the  number  of frames (2352‐byte blocks) remaining after m:ss.  If all files
                     are CD‐quality, the total length will be shown in m:ss.ff format; otherwise it will  be  in
                     m:ss.nnn  format.  NOTE: CD‐quality files are rounded to the nearest frame; all other files
                     are rounded to the nearest millisecond.

              expanded size
                     Shows the total size of all WAVE chunks within the file (header, data and  any  extra  RIFF
                     chunks).   Essentially this is the size that the file would be if it were converted to .wav
                     format, e.g.  with shntool conv.

                     NOTE: Do not rely on this field for audio size!  If you simply want to know how many  bytes
                     of  audio are in a file, run it through info mode, and look at the "data size" field in its
                     output.

              cdr    Shows properties related to CD‐quality files.  A 'c' in the first slot indicates  that  the
                     WAVE data is not [C]D‐quality.  A 'b' in the second slot indicates that the CD‐quality WAVE
                     data is not cut on a sector [b]oundary.  An 's' in the third slot indicates  that  the  CD‐
                     quality WAVE data is too [s]hort to be burned.

                     A '-' in any of these slots indicates that the particular property is OK or normal.  An 'x'
                     in any of these slots indicates that the particular property does not apply to  this  file,
                     or cannot be determined.

              WAVE   Shows  properties  of  the  WAVE  data.   An  'h' in the first slot indicates that the WAVE
                     [h]eader is not canonical.  An 'e' in the second slot indicates that the WAVE file contains
                     [e]xtra RIFF chunks.

                     A '-' in any of these slots indicates that the particular property is OK or normal.  An 'x'
                     in any of these slots indicates that the particular property does not apply to  this  file,
                     or cannot be determined.

              problems
                     Shows  problems detected with the WAVE header, WAVE data, or the file itself.  A '3' in the
                     first slot indicates that the file contains an ID[3]v2 header.  An 'a' in the  second  slot
                     indicates  that  the audio data is not block‐[a]ligned.  An 'i' in the third slot indicates
                     that the WAVE header is [i]nconsistent about data size and/or file  size.   A  't'  in  the
                     fourth  slot indicates that the WAVE file seems to be [t]runcated.  A 'j' in the fifth slot
                     indicates that the WAVE file seems to have [j]unk appended to it.

                     A '-' in any of these slots indicates that the particular problem was not detected.  An 'x'
                     in any of these slots indicates that the particular problem does not apply to this file, or
                     cannot be determined.

              fmt    Shows which file format handled this file.

              ratio  Shows the compression ratio for this file.

              filename
                     Shows the name of the file that's being inspected.

   fix mode options
       NOTE: file names for files created in fix mode will be based on the  input  file  name  with  the  string
       '-fixed'  appended to it, and the extension will be the default extension of the output file format.  For
       example, with an output file format of shn the file 'foo.wav' would become 'foo-fixed.shn'.  This can  be
       overridden with the -a and/or -z global options described above.

       -b     Shift track breaks backward to the previous sector boundary.  This is the default.

       -c     Check whether fixing is needed, without actually fixing anything.  shntool will exit with status 0
              if fixing is needed, and status 1 otherwise.  This can be  useful  in  shell  scripts,  e.g.:  "if
              shntool fix -c *; then shntool fix *; else ...; fi"

       -f     Shift track breaks forward to the next sector boundary.

       -k     Specifies  that  all  files  should  be  processed,  even if the first several of them wouldn't be
              altered, aside from a possible file format change.  The default is to skip the first N files  that
              wouldn't be changed from a WAVE data perspective in order to avoid unnecessary work.

       -n     Specifies  that the last file created should not be padded with silence to make its WAVE data size
              a multiple of 2352 bytes.  The default is to pad the last file.

       -u     Round track breaks to the nearest sector boundary.

   hash mode options
       -c     Specifies that the composite fingerprint for all input files should be generated, instead  of  the
              default  of  one fingerprint per file.  The composite fingerprint is simply the fingerprint of the
              WAVE data from all input files taken as a whole in the order given, and is identical  to  the  one
              that  would  be  generated from the joined file if the same files were joined into one large file,
              with no padding added.  This option can be used to fingerprint file sets, or to identify file sets
              in  which  track breaks have been moved around, but no audio has been modified in any way (e.g. no
              padding added, no resampling done, etc.).

       -m     Generate MD5 fingerprints.  This is the default.

       -s     Generate SHA1 fingerprints.

   pad mode options
       NOTE: file names for files created in pad mode will be based on the  input  file  name  with  the  string
       '-prepadded'  or  '-postpadded'  appended  to  it, and the extension will be the default extension of the
       output file format.  For example, with an output file format of shn  and  pre‐padding  specified  on  the
       command  line,  the  file 'foo.wav' would become 'foo-prepadded.shn'.  This can be overridden with the -a
       and/or -z global options described above.

       Be aware that some output format encoders (e.g. flac, ape) automatically strip headers and/or extra  RIFF
       chunks.

       -b     Specifies  that  the  file created should be padded at the beginning with silence to make its WAVE
              data size a multiple of 2352 bytes.

       -e     Specifies that the file created should be padded at the end with silence to  make  its  WAVE  data
              size a multiple of 2352 bytes.  This is the default action.

   join mode options
       NOTE:  file  names for files created in join mode will be prefixed with 'joined.', and the extension will
       be the default extension of the output file format.  For example, with an output file format of  wav  the
       files  'files*.wav'  would  become  'joined.wav'.   This  can  be overridden with the -a and/or -z global
       options described above.

       -b     Specifies that the file created should be padded at the beginning with silence to  make  its  WAVE
              data  size  a multiple of 2352 bytes.  Note that this option does not apply if the input files are
              not CD‐quality, since padding is undefined in that case.

       -e     Specifies that the file created should be padded at the end with silence to  make  its  WAVE  data
              size  a multiple of 2352 bytes.  This is the default action.  Note that this option does not apply
              if the input files are not CD‐quality, since padding is undefined in that case.

       -n     Specifies that the file created should not be padded with silence to make its  WAVE  data  size  a
              multiple  of  2352  bytes.   Note  that  this option does not apply if the input files are not CD‐
              quality, since padding is undefined in that case.

   split mode options
       NOTE: file names for files created in split mode are of the form prefixNNN.ext, where NNN is  the  output
       file  number,  and 'ext' is the default extension of the output file format.  If an output file format of
       'wav' is used, and the prefix is not altered via the -n switch described  below,  then  the  output  file
       names  will  be "split-track01.wav", "split-track02.wav", etc.  This can be overridden with the -a and/or
       -z global options described above.

       For information on specifying split points, see the Specifying split points section below.

       -c num Specifies the number to start counting from when naming output files.  The default is 1.

       -e len Prefix each track with len amount of lead‐in taken from the previous track.  len must be given  in
              bytes, m:ss, m:ss.ff or m:ss.nnn format.

       -f file
              Specifies  a  file  from which to read split point data.  If not given, then split points are read
              from the terminal.

       -l len Specifies that the input file should be split into smaller files based on  multiples  of  the  len
              time interval.  len must be given in bytes, m:ss, m:ss.ff or m:ss.nnn format.

       -m str Specifies  a  character  manipulation  string  for  filenames  generated  from  CUE sheets.  These
              characters, taken one‐by‐one, represent from/to character translation.  They  must  always  be  in
              pairs.  Some examples:

              :-     Translate all instances of ':' to '-'

              :-/-   Translate both ':' and '/' to '-'

              :-/_*x Translate ':' to '-', '/' to '_', and '*' to 'x'

       -n fmt Specifies  the  file  count output format.  The default is %02d, which gives two‐digit zero‐padded
              numbers (01, 02, 03, ...).

       -t fmt Name output files in user‐specified format based on CUE sheet fields.   The  following  formatting
              strings are recognized:

              %p     Performer

              %a     Album

              %t     Track title

              %n     Track number

       -u len Postfix  each  track  with len amount of lead‐out taken from the next track.  len must be given in
              bytes, m:ss, m:ss.ff or m:ss.nnn format.

       -x list
              Only extract tracks in list (comma separated, may contain ranges).  Examples include:

              7      Only extract track 7

              3-5    Only extract tracks 3 through 5

              2-6,9,11-13
                     Only extract tracks 2 through 6, 9, and 11 through 13

       Specifying split points
              Split points simply mark places within the WAVE data of the input file where tracks will be split.
              They can be specified in any combination of the following formats:

              bytes  where bytes is a specific byte offset

              m:ss   where m = minutes and ss = seconds

              m:ss.ff
                     where m = minutes, ss = seconds and ff = frames (75 per second, so ff ranges from 00 to 74)

              m:ss.nnn
                     where  m  = minutes, ss = seconds and nnn = milliseconds (will be rounded to closest sector
                     boundary, or the first sector boundary if the closest one happens to be  the  beginning  of
                     the file)

              CUE sheet
                     - a simple CUE sheet, in which each "INDEX 01 m:ss:ff" line is converted to a m:ss.ff split
                     point

              Split points must be given in increasing order, and must appear one per line.  If the byte  offset
              calculated  from the final split point equals the input file's WAVE data size, then it is ignored.
              Since split points specify locations within the input file where tracks will  be  split,  N  split
              points  will  create  N+1  output files.  All m:ss formats will create splits on sector boundaries
              whenever the input file is CD‐quality; to force non‐sector‐aligned  splits,  use  the  exact  byte
              format.

   cat mode options
       -c     Specifies  that  extra  RIFF chunks should be suppressed from the output.  The default is to write
              the extra RIFF chunks.

       -d     Specifies that the WAVE data should be suppressed from the output.  The default is  to  write  the
              data.

       -e     Specifies  that the WAVE header should be suppressed from the output.  The default is to write the
              header.

       -n     Specifies that the NULL pad byte at end of odd-sized data chunks should  be  suppressed  from  the
              output,  if  present.   The  default is to write the NULL pad byte.  This option only applies when
              WAVE data is also written, otherwise it is ignored.

   cmp mode options
       -c secs
              Sets the number of seconds of audio to use for the byte‐shift comparison buffer.  This option only
              makes sense with the -s option.  The default is 3 seconds.

       -f fuzz
              Sets the "fuzz factor" for determining whether byte‐shifted data is identical.  fuzz is a positive
              integer that represents the maximum number of allowable byte mismatches between the two  files  in
              the area searched by the -s option.  This allows one to check for differing bytes between to files
              that (a) are byte‐shifted and (b) contain at least one error  in  the  area  searched  by  the  -s
              option.   The  higher the fuzz factor, the longer the search takes, so set it low to begin with (8
              or so), and increase it in small steps if needed.  NOTE: this switch can only be used with the  -s
              switch.

       -l     List  offsets  and  values  of all differing bytes.  Output is similar to 'cmp -l'; in particular,
              offsets are 1‐based.  Can be used with the -s switch.

       -s     Check to see whether the WAVE data contained in the input files are identical modulo a byte‐shift.
              Currently,  this  will only detect differences up to the first 529200 bytes (equal to 3 seconds of
              CD‐quality data).  This can be used to compare WAVE data within a pre‐burned file to WAVE data  in
              the corresponding track ripped from the burned CD, which is useful if the ripped track came from a
              CD burned TAO, and thus might have a 2‐second gap of silence at the beginning.   This  option  can
              also help identify a CD burner/CD reader combined read/write offset.

   cue mode options
       -c     Specifies  that a simple CUE sheet should be output.  This is the default action.  NOTE: all input
              files must be CD‐quality for CUE sheets to be valid.

       -s     Specifies that split points in explicit byte‐offset format should be output.

   conv mode options
       NOTE: file names for  files  created  in  conv  mode  will  be  named  based  on  the  input  file  name.
       Specifically,  if  the  input file name ends with the default file extension for that file's format, then
       the default extension for the desired output format will replace it; otherwise, it will  be  appended  to
       it.   For  example, for an output format of shn and a wav input file named 'file.wav', the converted file
       will be named 'file.shn', since '.wav' is the default extension for the wav format.  On the  other  hand,
       given  the  same  situation  above,  but with an input file named 'file.wave', the converted file will be
       named 'file.wave.shn', since '.wave' does not match '.wav'.  This can be overridden with the -a and/or -z
       global options described above.

       Be  aware that some output format encoders (e.g. flac, ape) automatically strip headers and/or extra RIFF
       chunks, while others (e.g. sox) might adjust WAVE data sizes in rare instances  in  order  to  align  the
       audio on a block boundary.

       -t     Read WAVE data from the terminal.

   info mode options
       This mode doesn't support any additional options.

   strip mode options
       NOTE:  file  names  for  files created in strip mode will be based on the input file name with the string
       '-stripped' appended to it, and the extension will be the default extension of the  output  file  format.
       For  example, with an output file format of wav the file 'bar.shn' would become 'bar-stripped.wav'.  This
       can be overridden with the -a and/or -z global options described above.

       Be aware that some output format encoders (e.g. flac, ape) automatically strip headers and/or extra  RIFF
       chunks,  while  others  (e.g.  sox)  might adjust WAVE data sizes in rare instances in order to align the
       audio on a block boundary.

       -c     Specifies that extra RIFF chunks should not be stripped.  The default is to remove everything that
              appears after the first data chunk.

       -e     Specifies that WAVE headers should not be made canonical.  The default is to canonicalize headers.

   gen mode options
       NOTE:  file  names for files created in gen mode will be prefixed with 'silence.', and the extension will
       be the default extension of the output file format.  For example, with an output file format of  wav  the
       generated  file  would become 'silence.wav'.  This can be overridden with the -a and/or -z global options
       described above.

       -l len Generate files containing len amount of silence.  len must be given in  bytes,  m:ss,  m:ss.ff  or
              m:ss.nnn format.

   trim mode options
       NOTE:  file  names  for  files  created in trim mode will be based on the input file name with the string
       '-trimmed' appended to it, and the extension will be the default extension of  the  output  file  format.
       For  example,  with an output file format of shn the file 'foo.wav' would become 'foo-trimmed.shn'.  This
       can be overridden with the -a and/or -z global options described above.

       -b     Only trim silence from the beginning of files

       -e     Only trim silence from the end of files

ENVIRONMENT VARIABLES

       ST_DEBUG
              If set, shntool will print debugging information.  This is analogous to the -D global option, with
              the exception that debugging is enabled immediately, instead of when the command‐line is parsed.

       ST_<FORMAT>_DEC
              Specify  input file format decoder and/or arguments.  Replace <FORMAT> with the format you wish to
              modify, e.g.  ST_SHN_DEC.  The format of this variable is  analagous  to  the  -i  global  option,
              except that the initial format is not included.  Examples:

              ST_SHN_DEC='shorten-2.3b'

              ST_SHN_DEC='shorten -x -d 2048 %f -'

       ST_<FORMAT>_ENC
              Specify  output file format extension, encoder and/or arguments.  Replace <FORMAT> with the format
              you wish to modify, e.g.  ST_SHN_ENC.  The format of this variable is analagous to the  -o  global
              option, except that the initial format is not included.  Examples:

              ST_SHN_ENC='shorten -v2 - %f'

              ST_FLAC_ENC='flake - %f'

              ST_AIFF_ENC='ext=aif'

              ST_CUST_ENC='ext=mp3 lame --quiet - %f'

       Note that command‐line options take precedence over any of these environment variables.

EXIT STATUS

       Generally speaking, shntool will exit with status 0 upon success, and status 1 if it encounters an error.
       The only exception is when the 'quit' option is selected from  within  the  interactive  file  reordering
       menu, in which case the exist status will be 255.

NOTES

       shntool  is  a misnomer, since it processes WAVE data, not shorten data.  The name is a holdover from its
       early days as 'shnlen', a program created specifically to extract  information  about  WAVE  data  stored
       within .shn files.

       Aliases  for  shntool are prefixed with 'shn' instead of 'wav' to avoid possible collisions with existing
       programs.

AUTHOR

       Jason Jordan <shnutils at freeshell dot org>

       Please send all bug reports to the above address.

       The  latest  version  of  shntool  can   always   be   found   at   <http://www.etree.org/shnutils/>   or
       <http://shnutils.freeshell.org/>.

COPYRIGHT

       Copyright (C) 2000-2009 Jason Jordan

       This  is  free  software.   You  may  redistribute copies of it under the terms of the GNU General Public
       License <http://www.gnu.org/licenses/gpl.html>.  There is NO WARRANTY, to the extent permitted by law.

REVISION

       $Id: shntool.1,v 1.140 2009/03/30 05:59:25 jason Exp $