home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 443.lha / Retab_v1.03 / retab.doc < prev    next >
Text File  |  1990-12-06  |  30KB  |  782 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                                 RETAB  -  USERS GUIDE
  8.  
  9.           Developed by:                      Paul Klink
  10.           Documentation covers release:      1.03
  11.           Release Status:                    ShareWare   (See end of doc.)
  12.  
  13.           OVERVIEW
  14.  
  15.                Retab is a task that allows you to reformat ascii text files
  16.           so that  the  tab  characters  represent  a  different  number of
  17.           characters.   This is best explained by explaining the reason why
  18.           I wrote this program.  It all started like this .........
  19.  
  20.                     I have a C compiler so I write  C programs.   When
  21.                one writes  C source files one indents various lines of
  22.                text  in  the  source  file  to   make  it   easier  to
  23.                understand.  For example:
  24.  
  25.                          printf("Print this\n");
  26.                          i = 0;                        /*initialise i*/
  27.                          while (i < 10)
  28.                          {
  29.                             printf("i now equals %d\n", i);
  30.                             i = i + 1;                 /*increment i*/
  31.                          }
  32.                          printf("Counting finished\n");
  33.  
  34.                Ignore all  the gobbledygook and just note how 2 of the
  35.                lines are indented and  2 of  them have  comments after
  36.                them.    One  can  indent  them by either typing in the
  37.                extra spaces before the line or one can  indent them by
  38.                inserting tab  characters.   I find editing much easier
  39.                if I indent the lines in my source files by using tabs.
  40.                No problems so far.
  41.  
  42.                     The problem  begins when  one gets fussy about how
  43.                far one wants to indent lines.  Over  the years  I have
  44.                determined that  for me,  the optimum indent size for C
  45.                source files is 3 characters.   So  I  set  up  my text
  46.                editor accordingly,  and write my files.  Now comes the
  47.                problem!  When I either:
  48.                     -    type the files to the screen,
  49.                     -    print the files on particular printers
  50.                     -    or  even,  try  to  debug  the  program under
  51.                          Lattice C CodeProbe debugger,
  52.                the whole  file format  is a mess as the tab characters
  53.                are interpreted to represent 8 characters rather than 3
  54.                characters  as  my  editor  did.   Columns don't align,
  55.                lines are far longer, words are not where I expect them
  56.                etc.   Even worse, some devices I have used do not like
  57.                any tab characters.
  58.  
  59.  
  60.                                                   Page 1
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.                     My solution to this problem is  this program.   It
  68.                will  add/remove   spaces/tabs  so  that  the  file  is
  69.                reformatted for an environment  that  uses  a different
  70.                size  tab.    Then  you  can print the file out in that
  71.                environment and it will look exactly the same as it did
  72.                in the other environment.
  73.  
  74.                     A quick  definition of  a tab  character.  This is
  75.                'the ascii character that is inserted in the  file when
  76.                the TAB key on the keyboard is pressed.  This is almost
  77.                always ascii 9'.  Note: This does not  include the case
  78.                where  the  TAB  character  is expanded to the relevant
  79.                number of space characters.
  80.  
  81.  
  82.                This program can operate on any text file.  It  can reformat
  83.           it  for  new  tab  size,  convert  all tabs into spaces or it can
  84.           convert spaces into tabs.   It  will follow  a set  of rules that
  85.           ensure that  the reformatting  is done  correctly.  C programmers
  86.           take note, an option exists that will ensure that any white space
  87.           enclosed within  double quotes  will not  be reformatted.  Even C
  88.           escaped double quotes (ie.  \") and  C comments  are handled with
  89.           this  option.    Another  option  will allow you to protect white
  90.           space that is  enclosed  within  any  specified  ascii character.
  91.           Another option  allows you to trim all spaces and tabs at the end
  92.           of the lines.   You can  even use  the Amiga  shell environmental
  93.           variables to specify various options.
  94.  
  95.                Now down to the nitty gritty.
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.                                                   Page 2
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.           OPERATION INSTRUCTIONS
  128.  
  129.                The process  Retab can  only be  used from  the CLI or SHELL
  130.           environment.   The  following  command  line  starts  the process
  131.           retab.
  132.  
  133.                  retab [opts] <source file> [opts] [<dest. file>] [opts]
  134.  
  135.                where:
  136.                     opts           are   sets   of   options  that  can  be
  137.                                    specified.
  138.                     <source file>  is the  name of  the source  file.  This
  139.                                    file  holds  the  data  that  is  to  be
  140.                                    reformatted.
  141.                     <dest. file>   is the name of  the  file  to  which the
  142.                                    reformatted data will be sent.
  143.                     []             All  parameters  enclosed  within square
  144.                                    brackets are optional.
  145.  
  146.           As you can see, the only parameter that has to be included is the
  147.           source file name.  If the destination file name is not specified,
  148.           then the source file is overwritten with the reformatted data.
  149.  
  150.                The options let you  control how  the reformatting  is to be
  151.           done.   If an option is not specified on the command line, then a
  152.           default value will be used for that option.   In  some cases, the
  153.           default can  be specified by Amiga environmental variables.   The
  154.           following four notes relate to how  options are  specified on the
  155.           command line.
  156.  
  157.           NOTES:    *    The order  of options  on the  command line is not
  158.                          important.
  159.                     *    The option letters are shown in lower case letters
  160.                          below.    They  can  be entered in either UPPER or
  161.                          LOWER case letters.
  162.                     *    Some options may be followed by some data relating
  163.                          to that option (Eg. A Number).  The option and the
  164.                          data may be separated by an  equal sign  (=).  The
  165.                          equal sign  is shown  below within square brackets
  166.                          to show that it is optional.  Do  not type  in the
  167.                          square brackets in any case.
  168.                     *    Options can be strung together in one command line
  169.                          parameter.  For example:
  170.                               -nt       specifies both options -n and -t
  171.                               -n-t      also specifies options -n and -t
  172.                               -nti=3    specifies options  -n,  -t  and -i.
  173.                                         The -i option uses the data 3.
  174.                          If an option is followed by data, that option must
  175.                          be the last option  specified in  the command line
  176.                          parameter.
  177.  
  178.  
  179.  
  180.                                                   Page 3
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.           The next  section describes all the options that can be specified
  188.           on the command line.
  189.  
  190.                -i[=]<source file tab size>
  191.                          This option specifies  what  number  of characters
  192.                          the tabs represent in the source file.  The number
  193.                          can be in the  range of  0 to  32767.   If -i=0 is
  194.                          specified, then the following happens.
  195.                               Retab  will  replace  strings  of  white
  196.                               space with tab characters.  Any existing
  197.                               tab   characters   in  the  source  file
  198.                               represent a size as specified by  the -o
  199.                               option.
  200.                               If -i=0 and -o=0, then no retabbing will
  201.                               occur.
  202.                          If this option is  not  specified  on  the command
  203.                          line, then  retab will try to obtain this value by
  204.                          examining  the  number  inside  the  environmental
  205.                          variable  'ReTabInTab'.    If  this  environmental
  206.                          variable does not exist, or it does not  contain a
  207.                          valid  numerical  string,  or  the  -n  option  is
  208.                          specified, then the default value of 8 is used.
  209.  
  210.                -o[=]<destination file tab size>
  211.                          This option specifies  what  number  of characters
  212.                          the tabs  will represent  in the destination file.
  213.                          The number can be in the range of 0 to  32767.  If
  214.                          -o=0 is specified, the following happens.
  215.                               Retab will expand all tabs in the source
  216.                               file into the relevant  number of spaces
  217.                               in the destination file.
  218.                          If  this  option  is  not specified on the command
  219.                          line, then retab will try to obtain this  value by
  220.                          examining  the  number  inside  the  environmental
  221.                          variable  'ReTabOutTab'.    If  this environmental
  222.                          variable does not exist, or if it does not contain
  223.                          a valid numerical  string,  or  the  -n  option is
  224.                          specified, then the default value of 0 is used.
  225.  
  226.                -t
  227.                          This option  will trim  all lines  of any trailing
  228.                          spaces and/or tabs as it reformats  it.   That is,
  229.                          the line  will end  at the last visible character.
  230.                          This  option   will   also   be   active   if  the
  231.                          environmental variable  'ReTabTrim' exists and the
  232.                          -n option is not  specified.   It does  not matter
  233.                          what ReTabTrim contains.
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.                                                   Page 4
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.                -p[[=]<protect character>]
  248.                          In some  cases you might want spaces and tabs that
  249.                          are enclosed within a certain character, not to be
  250.                          reformatted.    This  will  be  especially true of
  251.                          strings within language source files.
  252.                          Example:   (Say a variant of BASIC)
  253.                               PHONE1$ = 'J. Smith           876-5432'
  254.                               PHONE2$ = 'S. Jackson         765-4321'
  255.                          In this example, you do not  want to  reformat any
  256.                          tabs or  spaces between  the character ' hence, in
  257.                          the command line you would specify  <-p='> (do not
  258.                          include the <> characters).
  259.                          If there are an odd number of <protect characters>
  260.                          on the line, then all of the tabs and spaces after
  261.                          the  last  <protect  character>  to the end of the
  262.                          line are protected.   Trimming  though  will still
  263.                          occur if the -t option is specified.
  264.                          If  -p  is  placed  on  the command line without a
  265.                          <protect character>  then the  default character "
  266.                          (double quote) is used.
  267.                          If the  -p option  is not specified on the command
  268.                          line, then (if the  -n  option  is  not specified)
  269.                          retab  will  see  if  the  environmental  variable
  270.                          'ReTabProtect' exists.  If so, the protect feature
  271.                          will be  active and  the protect character will be
  272.                          the first character in the string contained in the
  273.                          environmental variable.   A double quote character
  274.                          will be used if it holds a Null string.
  275.  
  276.                -c
  277.                          This option is very similar to the -p=" option but
  278.                          it is  used for reformatting C source files.  Like
  279.                          -p=", it will protect all spaces  and tabs between
  280.                          double  quote  characters,  but with the following
  281.                          two differences.
  282.                          -    It will detect C  escaped double quotes,
  283.                               (that is,  \") and  it will not consider
  284.                               these as protect characters.
  285.                          -    It will not  consider  any  double quote
  286.                               characters  that  are  within  C comment
  287.                               fields to be protect characters.
  288.                          Always use this option  if you  are reformatting C
  289.                          source files.
  290.                          This   option   will   also   be   active  if  the
  291.                          environmental  variable  'ReTabCQuote'  exists and
  292.                          the  -n  option  is  not  specified.   It does not
  293.                          matter what ReTabCQuote contains.
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.                                                   Page 5
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.                -n
  308.                          If this option is specified, it will disable retab
  309.                          from  checking  for  environmental variables if an
  310.                          option is not specified on the command line.   The
  311.                          inbuilt default  will be  used for all options not
  312.                          specified.
  313.  
  314.                -l[=]<Maximum Source file line length>
  315.                          This specifies the maximum length line  the source
  316.                          file can  have within it.  If a line in the source
  317.                          file is longer than this, the task will  abort the
  318.                          retab operation  and print a message showing which
  319.                          line number  was  too  long.    This  feature will
  320.                          probably  help  you  if  you inadvertently retab a
  321.                          binary file.  It  also is  used internally  in the
  322.                          program  to  determine  how much memory is needed.
  323.                          The value specified must  be  in  the  range  0 to
  324.                          32767.    If  this  option is not specified on the
  325.                          command line, a default value of 256 is used.
  326.  
  327.                -?
  328.                          This option prints a help message  to the standard
  329.                          output file  (normally the  screen).  This message
  330.                          summarises what retab does and how it is used.  It
  331.                          briefly  describes  all  the options.  The message
  332.                          will also display the programs release number.
  333.  
  334.  
  335.  
  336.           THE ENVIRONMENTAL VARIABLES
  337.  
  338.                There are 5 environmental variables which  can be  set up to
  339.           specify  what  actions  the  process  retab  should  take  if the
  340.           relevant options are not on the command line.   In  effect, these
  341.           environmental  variables  specify  new  defaults.   The -n option
  342.           forces the program to ignore all environmental variables  and use
  343.           the inbuilt  defaults.  The use of the environmental variables is
  344.           covered in the previous  section,  but  they  will  be summarised
  345.           below.
  346.  
  347.                ReTabInTab          (-i option)
  348.                     This environmental variable defines the default size of
  349.                     tabs in the source file.   It must  contain a numerical
  350.                     ascii string in the range 0 to 32767.
  351.                ReTabOutTab         (-o option)
  352.                     This environmental variable defines the default size of
  353.                     tabs in  the  destination  file.    It  must  contain a
  354.                     numerical ascii string in the range 0 to 32767.
  355.                ReTabTrim           (-t option)
  356.                     If this  environmental variable  exists, then all lines
  357.                     will be trimmed  of  trailing  spaces  and  tabs.   The
  358.                     contents of ReTabTrim are ignored.
  359.  
  360.                                                   Page 6
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.                ReTabProtect        (-p option)
  368.                     The first  character within this environmental variable
  369.                     is the protect character to be  used.   If it  does not
  370.                     contain any characters, a double quote character (") is
  371.                     used.  All spaces and tabs enclosed within  the protect
  372.                     character are not reformatted.
  373.                ReTabCQuote         (-c option)
  374.                     If this  environmental variable  exists, all spaces and
  375.                     tabs enclosed within double  quote characters  (") will
  376.                     not be  reformatted.   Double quote  characters are not
  377.                     considered as protect characters  in the  following two
  378.                     instances.   A C escaped double quote character (\") is
  379.                     not considered one of  the protect  characters.  Double
  380.                     quotes within  C comment  fields are  not considered as
  381.                     protect characters.
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.                                                   Page 7
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.           USAGE EXAMPLES
  428.  
  429.                The following examples demonstrate  the  usage  of  the task
  430.           retab.
  431.  
  432.  
  433.           a)   If  you  have  a  file  called  'mysrc'  that  in which tabs
  434.                represent 3 spaces and you want them to represent 8 spaces:
  435.  
  436.                     retab mysrc -i=3 -o=8
  437.  
  438.           b)   If you want to also trim  all lines  of trailing  spaces and
  439.                tabs:
  440.  
  441.                     retab -i=3 -o=8 mysrc -t
  442.  
  443.                Note that the position of options in the command line do not
  444.                matter
  445.  
  446.           c)   You may always want  to trim  all lines.   To  save you from
  447.                always having  to type  in the option -t, you may specify it
  448.                with its environmental variable.
  449.  
  450.                     setenv ReTabTrim 1
  451.  
  452.                     retab -i=3 mysrc -o=8
  453.                     retab -i=3 yoursrc -o=8
  454.  
  455.                It does not  matter  what  data  the  environmental variable
  456.                ReTabTrim contains.
  457.  
  458.           d)   You may  want to leave the file 'mysrc' unchanged but create
  459.                a new file, 'newdest', which has the new format.
  460.  
  461.                     retab mysrc newdest -i=3 -o=8
  462.  
  463.           e)   If the new file is to have all  the tab  characters replaced
  464.                by spaces:
  465.  
  466.                     retab -i=3 mysrc -o=0 spacdest
  467.  
  468.                Once again,  note that  the position  of the  options in the
  469.                command line do not matter.
  470.  
  471.           f)   If you want to replace spaces in a  file with  tabs (you may
  472.                find it easier to edit the file this way):
  473.  
  474.                     retab -i=0 spacesrc -o=4 tabdest
  475.  
  476.                The  file  'tabdest'  will  have as many spaces as allowable
  477.                replaced with tabs that represent a size of four characters.
  478.  
  479.  
  480.                                                   Page 8
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.           g)   You may need to do this for a lot of files.  In this case it
  488.                would be easier to set up some environmental variables.  You
  489.                may also want to trim the lines of some of these files.
  490.  
  491.                     setenv ReTabInTab 0
  492.                     setenv ReTabOutTab 4
  493.                     setenv ReTabTrim
  494.  
  495.                     retab spac1src tab1dest
  496.                     retab spac2src tab2dest
  497.                     retab spac3src tab3dest
  498.                     retab -i=3 tab1src -o=0 spac1dest
  499.                     retab -i=3 tab2src spac2dest -n
  500.  
  501.                The second  last line  in the  above examples,  show how the
  502.                command line  options will overrule environmental variables.
  503.                File spac1dest will have no tabs within it.   The  last line
  504.                shows the  action of  the -n  option.  File 'spac2dest' will
  505.                not have any of its lines  trimmed.   It will  also have all
  506.                its tabs replaced by spaces as that is the inbuilt default.
  507.  
  508.           h)   C programmers  should always  reformat their  C source files
  509.                with the -c option.
  510.  
  511.                     retab -i=3 csrc.c -co=8 cdest.c
  512.                          or
  513.  
  514.                     setenv ReTabCQuote 1
  515.  
  516.                     retab -i=3 csrc.c -o=8 cdest.c
  517.  
  518.           i)   Some other files may use other characters to mark strings or
  519.                other  data.     An   example  are  the  Lattice  LMK  files
  520.                (makefiles).  They use the character < to enclose data.
  521.  
  522.                     retab -i=0 makesrc -o=8 makedest -p=<
  523.  
  524.           j)   If you have a file that has very long lines in it, say up to
  525.                10000 characters, you will have to use the -l option.
  526.  
  527.                     retab -i=3 longsrc -o=8 longdest -l=10001
  528.  
  529.                Do not  make the -l value too large or retab may not be able
  530.                to run as it may not be able  to get  enough memory  for its
  531.                internal work areas.  In this case you will get the message,
  532.                          'Could not obtain the required memory!'
  533.                and it will not perform the retabbing operation.
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.                                                   Page 9
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.           k)   If you have files with tab characters representing a size of
  548.                3 characters, you could develop a special 'type' command for
  549.                these files.
  550.  
  551.                     alias mytype retab -i=3 -o=8 [] *
  552.  
  553.                     mytype <source file>
  554.  
  555.           l)   Retab can  be used  to trim all lines of trailing spaces and
  556.                tabs without any retabbing of tabs within a file.
  557.  
  558.                     retab -i0 -o0 -t srcfile
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.                                                   Page 10
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.           TECHNICAL INFORMATION
  608.  
  609.                This section presents some  technical information  about how
  610.           the task works.
  611.  
  612.           -    The Retabbing
  613.                Retab  identifies  space/tab  groups.   Space/tab groups are
  614.                sets of  consecutative characters  that are  either space or
  615.                tab  characters.    Space/tab  groups  can  not  cross  line
  616.                boundaries.
  617.                If the -i option <> 0
  618.                     The spaces and tabs  within a  space/tab group  will be
  619.                     reformatted if  that space/tab  group contains at least
  620.                     one  tab  character.    Otherwise  the  spaces  in  the
  621.                     space/tab group will not be retabbed.
  622.                If the -i option = 0
  623.                     As  in  the  previous  case,  spaces  and tabs within a
  624.                     space/tab group will be  reformatted if  that space/tab
  625.                     group  contains  at  least  one tab character.  All tab
  626.                     characters represent a tab  size  as  specified  by the
  627.                     -o option.
  628.                     If  there  are  only  spaces in the space/tab group, it
  629.                     will still be reformatted if the group covers  at least
  630.                     one tab  division on  the line.  A line is divided into
  631.                     tab divisions.  The -o  option  specifies  the  size of
  632.                     these divisions.  For example, on a line:
  633.                          If -o=3,
  634.                               characters 1 to 3        - 1st tab division
  635.                               characters 4 to 6        - 2nd tab division
  636.                               characters 7 to 9        - 3rd tab division
  637.                                    etc.
  638.                          If -o=8,
  639.                               characters 1 to 8        - 1st tab division
  640.                               characters 9 to 16       - 2nd tab division
  641.                               characters 17 to 24      - 3rd tab division
  642.                                    etc.
  643.                     If -i=0 and -o=0 then tab divisions are undefined as no
  644.                     retabbing takes place.
  645.                     Note:     If the -i option does not  equal 0,
  646.                               then  the  -i  option specifies the
  647.                               tab  division  size  in  the source
  648.                               file  and  the  -o option specifies
  649.                               the  tab  division   size   in  the
  650.                               destination file.
  651.  
  652.  
  653.  
  654.           -    Temporary files and multitasking.
  655.                If  the  retab  is  started  with no destination file in the
  656.                command line  (ie, source  file will  be overwritten), retab
  657.                will  create  a  temporary  file  in  which  it  places  the
  658.                reformatted data.    In  this  case,  if  the  retabbing was
  659.  
  660.                                                   Page 11
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.                successful,  then   the  source  file  is  deleted  and  the
  668.                temporary file is renamed  to the  name of  the source file.
  669.                This  temporary  file  will  always  be  created in the same
  670.                directory as the source file.  It will have the name:
  671.  
  672.                     retab_xx.tmp
  673.  
  674.                     xx is a number between 00 and 99
  675.  
  676.                Retab will always  ensure  that  it  does  not  overwrite an
  677.                existing  temporary  file.    This  allows  retab to be made
  678.                resident  and  more   that   one   copy   of   it   can  run
  679.                simultaneously.  Retab is a pure process!
  680.                If for  any reason  retab is  aborted, then  you may have to
  681.                purge the directory of any retab temporary files. 
  682.  
  683.  
  684.           -    Command line parameters
  685.                Some notes about command line parameters.
  686.                *    For the -i, -o, and  -l  options,  white  space  may be
  687.                     placed between  the option and the option data.  If the
  688.                     equal sign is used (=), then it must immediately follow
  689.                     the option letter.
  690.                *    For the -p option, no white space can exist between the
  691.                     option letter and the option data.
  692.                *    If a file name contains white space, enclose  it within
  693.                     double quotes.
  694.                *    If a  file name  begins with  a dash (-), then the file
  695.                     will have to be renamed as  retab cannot  accept a file
  696.                     name beginning with a dash.
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.                                                   Page 12
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.           SHAREWARE AND OTHER STUFF
  728.  
  729.                Three files should be included within this package:
  730.  
  731.                     retab          The executable process
  732.                     retab.doc      This documentation in ascii format
  733.                     retab.wpf      This    documentation   in   WordPerfect
  734.                                    format.  (Amiga version 4.1)
  735.  
  736.           No ancillary files are required when running retab.
  737.  
  738.  
  739.  
  740.                This is shareware and the normal shareware rules  apply.  If
  741.           you find  this program  useful you  owe me.  Say $20 (AUS).  Send
  742.           cheques payable to an Australian Bank to my address:
  743.  
  744.                          Paul Klink
  745.                          PO. Box 169
  746.                          Woori-Yallock 3139
  747.                          Australia
  748.  
  749.  
  750.           I'm interested in any feedback.  Especially of bugs.  If you find
  751.           any bugs,  and want  an immediate update, I'll try my best to fix
  752.           them as soon as possible and send you out an update BUT  you will
  753.           have to have registered plus send $7 for disk and postage.
  754.  
  755.  
  756.  
  757.                If you are interested in the source files, write to me and I
  758.           will think about it.
  759.  
  760.  
  761.  
  762.                     HAVE FUN
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.                                                   Page 13
  781.  
  782.