Provided by: signify_1.14-3_all bug

NAME

       signify - Program to generate semi-random signatures

SYNOPSIS

       signify [--fifo=$HOME/.signature] [--input=file] [--debug]

DESCRIPTION

       Signify  will  take  a  signature  description  file  (  ~/.signify  or whatever file is specified by the
       --input=<file> option ) and create a random signature based on the information contained  therein.   This
       allows the ability to do such things as pick a random quote for each message sent.

       Signify,  by  default,  will  write  the  generated  signature  to  standard  output from where it can be
       redirected to overwrite the .signature file.  Alternatively, Signify can pipe  it's  output  to  a  given
       'fifo'.  Each read from that file will return a different signature.

       To  use  the FIFO feature, delete the current "$HOME/.signature" file and start Signify in the background
       like "signify --fifo=$HOME/.signature &".  With this running, try "cat $HOME/.signature" a few times.   A
       different  signature  will  be  returned  each time.  (Note: This feature will probably work only on unix
       systems.)

       The --debug switch causes Signify to generate messages on what it is doing to  stderr.   This  switch  is
       only meant to be useful to the program's maintainers.

CONFIGURATION

       The  definition  for the generated signatures is contained entirely within the .signify file contained in
       the user's home directory.  Any completely empty lines (lines with even a  single  space  are  considered
       part  of  the  signature data) and those lines starting with a hash character (#) are completely ignored.
       Those lines starting with a percent sign (%) are considered commands and affect the way Signify behaves.

       Perl Command Substitution

       Signify can execute an arbitrary perl code fragment during the initial reading of the configuration file.
       This  can be used, for example, to choose values or text depending on the environment in which Signify is
       being run.  To use this feature, simply enclose the desired perl code in back-tics  (i.e.  `perl  code`).
       Whatever  the perl code evaluates to will be substituted in that spot.  No further variable substitutions
       are made on the resulting text.  Signify is intelligent enough to recognize two back-tics together (often
       used  as  a  better  looking  quotation mark) as not being a code fragment.  Thus, writing something like
       "``Stop,'' she said." will appear as expected.  Note: The entire code fragment must  be  contained  on  a
       single line of the input file.

       Defining Variables

       Signify  will  substitute  variables  within each line of the signature in much the same way as the shell
       would.  Any sequence of $WORD; will be replaced by the value corresponding to the name "WORD".   Case  is
       significant  but  the  trailing semicolon may be omitted if the next character is not a letter, digit, or
       underscore.  By default, these variables look up values inside the environment variables, but can also be
       defined or redefined within the .signify file itself with a command such as:

           % $email=myid@mycompany.com

       Everything  after  the  equal  sign  (=)  is  considered part of the value.  Variables can be used in the
       definition of other variables.  As a special case, $$ will evaluate to a single dollar sign ($).

       The special variable SIGWIDTH can be used to set the desired output width of the generated signature.  By
       default,  this  variable  has  the value "79".  There is also a BLANK variable you can place on a line to
       create a totally empty line when the signature is output.

       Including Other Files

       You can tell Signify to read another file in place of the current line with a command like:

           % include $HOME/.signify-quotes

       For convienence, you can use a tilde (~) instead of $HOME to read a file relative to your home directory.

       Creating Alternates

       An unlimited number of "alternates" can be specified by using the "{", "|", and "}" commands.   When  the
       signature is generated, only one of all the possible alternates will be output.  For example:

           % {
           This is the first possibility.
           % |
           This is the second possibility.
           % |
           This is the third (and last) possibility.
           Note that alternatives can span multiple lines.
           % }

       Creating Columns

       Signify will automatically create side-by-side columns with nice, even spacing by using the "(", "|", and
       ")" commands.  When output, everything will be padded out with spaces to fit nicely  on  the  line.   For
       example:

           % (
           This is the
           first column.
           % |
           This is the second.
           % |
           This is the third
           (and last) column.
           % )

       Nesting Sections

       Alternates  and  columns  can be nested to any depth, though this can quickly become unwieldy and may not
       work exactly as expected, especially with columns.  As a general rule, only supply alignment options (eg.
       "center",  "right")  at  the  most  outside  level  to do any text formatting.  For example, if supplying
       multiple "alternates" within a column, put the alignment options on the column and not on the alternates.

       Section Command Options

       The "alternates" and "columns" commands can take options to alter how they behave.  The  following  is  a
       list  of  supported  options  and  what  they  do, though not all have meaning for both types of section.
       Multiple options can be specified by separating them with a comma (,).

       bottom push the following lines of text to the bottom of a column should it have  fewer  lines  than  the
              longest column.  This option has no meaning to "alternates" sections.

       center adjust  the  following  lines  to  be  centered  on  the  page  or in the column.  When used in an
              "alternates" section, an additional "=<number>" can be used  to  specify  what  column  to  center
              around instead of the middle of the page.

       exec   treat  the  following lines not as text to be included in the column or alternate, but as commands
              to be executed by the shell.  For each command executed, if its return status is 0 then the output
              it  produced  is  included at that point, otherwise the output is discarded.  Any included text is
              then aligned, etc. as usual.  This command is most useful for inserting random quotes generated by
              programs such as fortune(6).

       left   adjust  the  following  lines  so  they  sit  at  the left margin.  This is the default horizontal
              alignment and most closely reflects how the lines are entered into the .signify file itself.  Note
              that  pad spaces will still be placed on both sides of a column with this type of alignment unless
              the minwidth option is also specified.

       minwidth
              do not pad the left and right sides of this column when placing next to other  columns.   This  is
              useful  for  building column separator lines and the like that are not really part of the content.
              This option has no meaning to "alternates" sections.

       repeat output the following lines multiple times to fill all lines in the column.   This  is  useful  for
              building  column  separator  lines  and  the like that are just a repeated sequence.  A multi-line
              sequence can be specified and only those lines necessary to fill the column will be  output.   The
              entire sequence will be output in its entirety at least once, however.  This option has no meaning
              to "alternates" sections.

       right  adjust the following lines so they sit at the right margin.  Note that pad spaces  will  still  be
              placed  on  both  sides of a column with this type of alignment unless the minwidth option is also
              specified.

       top    push the following lines of text to the top of a column  should  it  have  fewer  lines  than  the
              longest  column.   This  is the default action if no vertical centering is specified.  This option
              has no meaning to "alternates" sections.

       vcenter
              push the following lines of text in the vertical center of a column should  it  have  fewer  lines
              than the longest column.  This option has no meaning to "alternates" sections.

       weight=<number>
              change  the  likelihood  a  given  alternate will be chosen.  The chance of any specific alternate
              being chosen is the given <number> divided by the total of all weights.   If  not  specified,  the
              weight  defaults  to 1.0.  Decimal numbers and numbers less that 1.0 are allowed.  This option has
              no meaning to "columns" sections.

THE COST OF FREE SOFTWARE

       Let's face it: Somebody has to pay for all software that gets written.  Whether it is the time donated by
       the  programmer  or  the  salary  donated by the company, everything has its cost.  Signify has been made
       available to the general public in the hope that it will be useful and thus help raise the visibility  of
       the  people  that  sponsored  its  creation.   In this way, the cost of creating Signify is offset by the
       publicity gained.  If you use this program and would like to further the development of such software, it
       is  asked  (but  by no means required) that you put something like the following in the quotes section of
       your .signify file.

           % | center, weight=0.1
           Generated by $PROGRAM.  For this and more, visit $WEBSITE

       (for single-line quote)  or  (for multi-line in a column)

           % | weight=0.1
           This signature was automatically generated with
           $PROGRAM.  For this and other cool products,
           check out $WEBSITE

       These are weighted very low (though you are more than welcome to increase these weightings :-)  and  will
       thus  show  up  in  your  signature only occasionally.  The variables are defined internal to Signify and
       provide the program name (including version number) and the web site where it can be found.  We thank you
       for your support!

BUGS

       Please report any bugs to: bcwhite@pobox.com

AUTHOR

       Signify was written and documented by Brian White <bcwhite@pobox.com> on August 24th, 1996.

COPYRIGHT

       Signify  has been placed in the public domain, the only true "free".  It would be apprecated if copies of
       any improvements or bug-fixes would be sent to the author in order  to  be  incorporated  into  the  main
       upstream code and propogated to all users of this software.