home *** CD-ROM | disk | FTP | other *** search
/ Beijing Paradise BBS Backup / PARADISE.ISO / software / BBSDOORW / EDITNL.ZIP / EDITNL.PRN < prev    next >
Encoding:
Text File  |  1988-05-01  |  20.9 KB  |  595 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.                                        
  23.  
  24.  
  25.                                        
  26.  
  27.  
  28.                             EditNL -- Version 4.00
  29.                             EditNL -- Version 4.00
  30.                                        
  31.                             NODELIST Editor Program
  32.                             NODELIST Editor Program
  33.                                        
  34.                                        
  35.                                        
  36.                                        
  37.                                        
  38.                                  by Ben Baker
  39.                                  by Ben Baker
  40.                                        
  41.                                        
  42.                                        
  43.                                        
  44.                                        
  45.                                        
  46.                                        
  47.                      Copyright 1988 -- All Rights Reserved
  48.                      Copyright 1988 -- All Rights Reserved
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.                                        
  78.  
  79.  
  80.                                Table of Contents
  81.  
  82.  
  83.  
  84.        1. Introduction                                                 1
  85.           1.1 Notation                                                 2
  86.  
  87.        2. EditNL Command Line                                          2
  88.           2.1 Path/File Specifiers                                     2
  89.           2.2 /OLD=<spec>                                              3
  90.           2.3 /NEW=<spec>                                              3
  91.           2.4 /EDIT=<spec>                                             3
  92.           2.5 /ARCHIVE[=<spec>]                                        3
  93.           2.6 /KILL                                                    3
  94.           2.7 /CLEAN                                                   3
  95.           2.8 /PK[=<pkxarc_alias>[,<pkarc_alias>]]                     4
  96.           2.9 Abbreviations                                            4
  97.  
  98.        3. Editing Error Detection                                      5
  99.  
  100.        4. Error Return Codes                                           5
  101.  
  102.        5. Examples                                                     6
  103.  
  104.        6. The Shareware Concept                                        7
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.                                         i
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.                                 1. Introduction
  147.                                 1. Introduction
  148.  
  149.  
  150.        EditNL is  a program designed to edit an old nodelist with a dis-
  151.        EditNL                                                           
  152.        tributed difference file to create a new up-to-date nodelist.  If
  153.        you don't  know what  a nodelist  or a  difference file  are, you
  154.        probably don't have much use for this program.  Detailed descrip-
  155.        tions of  these files  may be  found in  a  document  file  named
  156.        FSC002-x.PRN ("x" is the release number) maintained by the Inter-
  157.        national FidoNet  Association (IFNA),  and will  not be belabored
  158.        here.
  159.  
  160.        EditNL makes the following assumptions about its input files:
  161.        EditNL                                                       
  162.  
  163.             1)   Input files are created, published and distributed
  164.                  on Friday of each week.
  165.  
  166.             2)   An input  file name  has a file extension which is
  167.                  the day-of-year of its publication.
  168.  
  169.             3)   An input  file may  be contained within an archive
  170.                  file bearing  the same  name as  the file  it con-
  171.                  tains, except  that  the  file  extension's  first
  172.                  character is an "A" instead of a digit.
  173.  
  174.             4)   Nodelist and difference files conform to the spec-
  175.                  ifications of the above mentioned IFNA document.
  176.  
  177.        These assumptions  are based  on the standard practice of several
  178.        amateur communications networks and sub-networks presently in ex-
  179.        istence.
  180.  
  181.        When executed,  EditNL will  search for  a nodelist not more than
  182.                        EditNL                                           
  183.        six weeks old to edit.  On finding it, it will search for younger
  184.        difference files  a week  at a  time until has either reached the
  185.        current week,  or cannot  find a difference file for a particular
  186.        week.   In these searches it will, if necessary, unpack archives.
  187.        Finally it  will apply  the difference  files it found to the old
  188.        nodelist to  create the newest nodelist it can.  If more that one
  189.        difference file  is involved  (as many as six are possible), they
  190.        are applied in parallel.  No intermediate lists are created.
  191.  
  192.        There are options available to tell EditNL to delete any files it
  193.                                            EditNL                       
  194.        unpacks from  archives, or  even to  delete all old files, and to
  195.        create a  distribution archive  of the  newly generated  nodelist
  196.        file.
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.        EditNL                                                     Page 2
  212.        EditNL                                                     Page 2
  213.  
  214.  
  215.        1.1 Notation
  216.        1.1 Notation
  217.  
  218.        The following  notation is used to describe EditNL's command line
  219.                                                    EditNL               
  220.        and its various parameters:
  221.  
  222.        UPPER_CASE represents fixed items.  They are entered exactly
  223.        UPPER_CASE                                                  
  224.             as shown, except that switch names may be abbreviated.
  225.  
  226.        <lower_case> items  enclosed  in  angle  brackets  represent
  227.        <lower_case>                                                
  228.             variable items.   You  substitute actual  values (eg. a
  229.             real file name) for them.
  230.  
  231.        [OPTIONAL] items are enclosed in square brackets.
  232.        [OPTIONAL]                                       
  233.  
  234.        CHOICE1 |  CHOICE2 Choices  are separated by a vertical bar.
  235.        CHOICE1 |  CHOICE2                                          
  236.             You select one or the other, not both.
  237.  
  238.  
  239.  
  240.                             2. EditNL Command Line
  241.                             2. EditNL Command Line
  242.  
  243.  
  244.        EditNL is invoked with the following command line:
  245.        EditNL                                            
  246.  
  247.             EDITNL [/OLD=<spec>] [/NEW=<spec>] [/EDIT=<spec>]
  248.             EDITNL [/OLD=<spec>] [/NEW=<spec>] [/EDIT=<spec>]
  249.                  [/ARCHIVE[=<spec>]] [/KILL | /CLEAN]
  250.                  [/ARCHIVE[=<spec>]] [/KILL | /CLEAN]
  251.                  [/PK[=<pkxarc_alias>[,<pkarc_alias>]]]
  252.                  [/PK[=<pkxarc_alias>[,<pkarc_alias>]]]
  253.  
  254.        All parameters  are optional,  and may appear in any order.  Case
  255.        is unimportant. Upper, lower or mixed case may be used.  Executed
  256.        without parameters, EditNL will create a new NODELIST.nnn from an
  257.                            EditNL                                       
  258.        old NODELIST.nnn  and NODEDIFF.nnn files found in the current di-
  259.        rectory.
  260.  
  261.        2.1 Path/File Specifiers
  262.        2.1 Path/File Specifiers
  263.  
  264.        <spec> is a path/file specifier, and is used to define a path for
  265.        a class  of files  and/or override the default name stem for that
  266.        class.  It has the following form:
  267.  
  268.             <path>[\<name_stem>.]
  269.             <path>[\<name_stem>.]
  270.                  
  271.                  or
  272.                  or
  273.  
  274.             <name_stem>.
  275.             <name_stem>.
  276.  
  277.        In the  first form,  <path> defines  a relative  or absolute path
  278.        name (see  your DOS manual for more information about path names)
  279.        of the directory where a class of files may be found.
  280.  
  281.        <name_stem> followed  by a  period (.) overrides the default name
  282.                    followed  by a  period (.)                           
  283.        stem for  a class  of files.  "Name stem" is defined here to mean
  284.        that portion  of a  file name,  exclusive of path, which precedes
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.        EditNL                                                     Page 3
  296.        EditNL                                                     Page 3
  297.  
  298.  
  299.        the period  (.) and  extension.   EditNL's default name stems are
  300.                                          EditNL                         
  301.        NODELIST and NODEDIFF.
  302.  
  303.        2.2 /OLD=<spec>
  304.        2.2 /OLD=<spec>
  305.  
  306.        The /OLD  parameter defines  path to  the directory where the old
  307.        nodelist file may be found.  It may also be used to define an al-
  308.        ternate name  stem for  the nodelist  class of files.  (There are
  309.        two ways to do this.  See /NEW.)
  310.  
  311.        2.3 /NEW=<spec>
  312.        2.3 /NEW=<spec>
  313.  
  314.        The /NEW  parameter defines  path to  the directory where the new
  315.        nodelist file  is to be placed.  It may also be used to define an
  316.        alternate name  stem for the nodelist class of files.  (There are
  317.        two ways to do this.  See /OLD.)
  318.  
  319.        Note that  only one  nodelist name  stem is used for both old and
  320.        new nodelist  files.   If /OLD  and /NEW both define <name_stem>,
  321.        only the last one is used.
  322.  
  323.        2.4 /EDIT=<spec>
  324.        2.4 /EDIT=<spec>
  325.  
  326.        The /EDIT  parameter defines path to the directory where the dif-
  327.        ference files may be found.  It may also be used to define an al-
  328.        ternate name stem for the difference class of files.
  329.  
  330.        2.5 /ARCHIVE[=<spec>]
  331.        2.5 /ARCHIVE[=<spec>]
  332.  
  333.        The /ARCHIVE  parameter tells  EditNL to  create  a  distribution
  334.                                       EditNL                            
  335.        archive containing the newly created nodelist file.  If <spec> is
  336.        given, it  defines the  directory path  where the archive will be
  337.        placed.   (NOTE: The  syntax will accept a name stem, but in this
  338.        case it  is ignored.   The plan in a subsequent version of EditNL
  339.                                                                   EditNL
  340.        is to  deal with  both list and difference archives, hence a name
  341.        stem here would be ambiguous.)
  342.  
  343.        2.6 /KILL
  344.        2.6 /KILL
  345.  
  346.        The /KILL  parameter tells  EditNL to  delete any  input files it
  347.                                    EditNL                               
  348.        created by  unpacking archives.   If a "free standing" input file
  349.        is found,  it is  not deleted,  even if  there is  an  equivalent
  350.                          not                                            
  351.        archive file available.
  352.  
  353.        2.7 /CLEAN
  354.        2.7 /CLEAN
  355.  
  356.        The /CLEAN parameter is similar to the /KILL parameter, but tells
  357.        EditNL to  "clean up  the  debris"  by  deleting  all  files  and
  358.        EditNL                                                           
  359.        archives that are no longer needed on successful completion.
  360.  
  361.        /CLEAN implies  /KILL, so  both parameters need not be specified.
  362.        This gets  a little  tricky when  a CRC  error occurs.   When the
  363.        /CLEAN parameter  is given,  unpacked files  are always  deleted.
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.        EditNL                                                     Page 4
  375.        EditNL                                                     Page 4
  376.  
  377.  
  378.        Free standing files and archives are deleted only if no error oc-
  379.                                                     only if no error oc-
  380.        curred.
  381.        curred 
  382.  
  383.        2.8 /PK[=<pkxarc_alias>[,<pkarc_alias>]]
  384.        2.8 /PK[=<pkxarc_alias>[,<pkarc_alias>]]
  385.  
  386.        EditNL deals  with archive  files by  using external utility pro-
  387.        EditNL                                                           
  388.        grams.     By  default,  it  uses  ARC  from  System  Enhancement
  389.        Associates.
  390.  
  391.        Phil Katz  has published  a pair  of utilities, PKARC for archive
  392.        creation and  updating, and  PKXARC for  archive extraction.  The
  393.        /PK parameter  instructs EditNL  to use version 3.5 of these pro-
  394.                                 EditNL                                  
  395.        grams instead of ARC.  (Because command line syntax of these pro-
  396.        grams have  presented a  moving target, neither earlier nor later
  397.        versions are guaranteed to work!)
  398.  
  399.        It seems to be a common practice to rename these programs, giving
  400.        them short  one- or  two-character names, hence the /PK parameter
  401.        may optionally include alias names for these programs.  Note that
  402.        PKXARC's alias  must be  defined first,  and if both are defined,
  403.        they must  be separated  by a  comma (,).  No white space.  If an
  404.                                                   No white space.       
  405.        alias is  given for  PKARC, EditNL assumes it is because you wish
  406.                                    EditNL                               
  407.        to create  an output archive.  In this case, the /ARCHIVE parame-
  408.        ter need  only be  given if a path other than the /OUT path is to
  409.        be used.   In  other words, defining an alias for PKARC forces an
  410.        output archive to be generated.  It will go in the same directory
  411.        with the output file unless /ARCHIVE directs otherwise.
  412.  
  413.        I cannot  recommend the use of the Katz utilities, merely to save
  414.        a few seconds (faster is not necessarily better).  It has been my
  415.        experience that  they tend  to be ill behaved in a cramped memory
  416.        environment.   More than once, they have crashed DoubleDOS on me,
  417.        usually when  called from  within another  program, as  they  are
  418.        here.  However, if you insist, EditNL will support you.
  419.                                       EditNL                  
  420.  
  421.        For compatibility with earlier versions of EditNL, /X is an alias
  422.                                                   EditNL                
  423.        for, and may be used interchangeably with /PK.
  424.  
  425.        2.9 Abbreviations
  426.        2.9 Abbreviations
  427.  
  428.        All parameters  may be  abbreviated.   Since they all have unique
  429.        initial letters, they may be abbreviated to as few as one charac-
  430.        ter.   Longer representations of the parameter names will be rec-
  431.        ognized, but  only if correctly spelled.  In other words, any ab-
  432.        breviation of  one of EditNL's parameters must be a proper prefix
  433.                              EditNL              must be a proper prefix
  434.        of that parameter's name.
  435.        of that parameter's name.
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.        EditNL                                                     Page 5
  454.        EditNL                                                     Page 5
  455.  
  456.  
  457.                           3. Editing Error Detection
  458.                           3. Editing Error Detection
  459.  
  460.  
  461.        The first  line of  every difference file is an exact copy of the
  462.        first line  of the  old nodelist  file used to generate it.  As a
  463.        first level  confidence check,  EditNL compares  these lines.  If
  464.                                        EditNL                           
  465.        they do  not compare exactly, the assumption is that the old file
  466.        EditNL is  using is  not the  old file  MakeNL used to create the
  467.        EditNL               not                MakeNL                   
  468.        difference file.   In  that event, EditNL generates a fatal error
  469.                                           EditNL                        
  470.        and terminates without creating a new nodelist file.
  471.  
  472.        The first  line of  every nodelist file contains a 5-digit number
  473.        which is  the decimal representation of a cyclic redundancy check
  474.        word (CRC)  generated by  that file.  EditNL accumulates a CRC on
  475.                                              EditNL                     
  476.        the output file as it is produced.  If the generated CRC does not
  477.        match the one in the first line of the file, a warning message is
  478.        issued and  another is appended to the output file.  Earlier ver-
  479.        sions of  EditNL treated a CRC error as fatal, but experience has
  480.                  EditNL                                                 
  481.        shown that  bad CRC's are frequently program errors, not data er-
  482.        rors.   However, a CRC error message is cause for concern.  If an
  483.        input file has been edited, the generated file could contain ser-
  484.        ious errors.   You  should satisfy  yourself that this is not the
  485.        case before  using any  file with  a bad  CRC.   If there  is any
  486.                           any                                           
  487.        doubt, obtain a copy of the full nodelist.
  488.  
  489.  
  490.  
  491.                              4. Error Return Codes
  492.                              4. Error Return Codes
  493.  
  494.  
  495.        On termination, EditNL sets the ERRORLEVEL return code, which can
  496.                        EditNL                                           
  497.        then be  tested in  a batch  file.  (See your DOS manual for more
  498.        information on ERRORLEVEL return codes.)
  499.  
  500.        These are the codes and their meanings:
  501.  
  502.             0    A new nodelist was successfully created.
  503.             1    A CRC error was reported.  Investigate before using the
  504.                       output file.
  505.             2    A fatal error occurred.  No list created.
  506.           255    Command line error.  Displays help screen.
  507.  
  508.        There are  four kinds of fatal error.  The confidence check error
  509.        mentioned in  the previous section; an inconsistency in a differ-
  510.        ence file (edit command not found when expected, or an unexpected
  511.        EOF); I/O errors while opening, reading or writing files; and er-
  512.        ror return codes from an archive utility program.
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.        EditNL                                                     Page 6
  530.        EditNL                                                     Page 6
  531.  
  532.  
  533.                                   5. Examples
  534.                                   5. Examples
  535.  
  536.  
  537.        Update NODELIST.001  with NODEDIFF.008 and NODEDIFF.015 to create
  538.        NODELIST.015.  All files are in the current directory:
  539.  
  540.             EDITNL
  541.             EDITNL
  542.  
  543.        
  544.  
  545.        As above,  but difference  files are in archives in the directory
  546.        MAILFILE.  Don't keep files unpacked from the archives:
  547.  
  548.             EDITNL /E=MAILFILE /K
  549.             EDITNL /E=MAILFILE /K
  550.  
  551.        
  552.  
  553.        As above,  but create  an output  NODELIST.A15 in  the  directory
  554.        DOWNLOAD and  delete all  old files.   (will  not delete files in
  555.        DOWNLOAD):
  556.  
  557.             EDITNL /E=MAILFILE /A=DOWNLOAD /C
  558.             EDITNL /E=MAILFILE /A=DOWNLOAD /C
  559.  
  560.        
  561.  
  562.        As above, but file stems are ANETLIST and ANETDIFF.  Use the Katz
  563.        archive utilities:
  564.  
  565.             EDITNL /N=ANETLIST. /E=MAILFILE\ANETDIFF. /A=DOWNLOAD /C /PK
  566.             EDITNL /N=ANETLIST. /E=MAILFILE\ANETDIFF. /A=DOWNLOAD /C /PK
  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.  
  601.        EditNL                                                     Page 7
  602.        EditNL                                                     Page 7
  603.  
  604.  
  605.                            6. The Shareware Concept
  606.                            6. The Shareware Concept
  607.  
  608.  
  609.        EditNL is  distributed under  the "shareware" concept.  It may be
  610.        EditNL                                                           
  611.        freely copied  and distributed provided the program and its docu-
  612.        mentation are distributed as a unit.  But EditNL is NOT FREE.
  613.                                                  EditNL    NOT FREE 
  614.  
  615.        If you are a non-commercial user of EditNL, you are asked to sup-
  616.                                            EditNL                       
  617.        port its  development and  maintenance both with your suggestions
  618.        and bug  reports and with your dollars.  No particular fee is set
  619.        for non-commercial use.  Let your conscience be your guide.
  620.  
  621.        Commercial users, and users participating in a commercial network
  622.        are required  to pay a license fee of twenty five (25) U. S. dol-
  623.        lars for each computer on which EditNL is installed for use.
  624.                                        EditNL                      
  625.  
  626.        The Coordinator  of a commercial network may obtain a network li-
  627.        cense for  a one-time  fee of  $1,500 US.   This will license all
  628.        current and  future nodes  of the  network for the use of EditNL.
  629.                                                                  EditNL 
  630.        MakeNL and  EditNL may be licensed as a set for a one-time fee of
  631.        MakeNL      EditNL                                               
  632.        $2,250.
  633.  
  634.        Please address all correspondence to:
  635.  
  636.                    Ben Baker
  637.                    Baker's Acre
  638.                    RR 1, Box 637
  639.                    E. Alton, IL 62024
  640.  
  641.  
  642.  
  643.  
  644.  
  645.  
  646.  
  647.  
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670.  
  671.  
  672.