                        Marian, the Librarian

        Brief Description:  A program in dBASE IV, version 1.5, to manage
procedure and function libraries.

        This is Version 1.01, an interim release fixing some bugs in the
original.  Version 1.1, incorporating the capability of searching program
and other files for functions and procedures called, is under development
with a target date of May 31, 1992.

        Contents of the posted file MARIAN.ZIP:

        README, this text file.
        MARIAN.PRG, the dBASE IV program source code.
        Five files none of which is necessary to running the program, but all
of which are helpful and will be used if available:
        LIB15MV.MEM, a .MEM file with some default names for files, assuming
you are using LIB15.ZIP.
        LIB15CAT.DBF and .MDX, cataloguing the LIB15.ZIP files.
        SETMOUSE.BIN, a .bin to test for mouse support and hide/show the
mouse cursor.
        EXACTIME.BIN, a .bin to return the time to within one tick.

        The Marian program performs two major tasks, both slowly:

        1) It creates .DBF and .MDX indexes to the functions and procedures
( collectively, "routines" ) in .PRG files.  The indexes are simply lists of
the routines by name and type with the line number of the source file at which
they appear, the number of bytes into the file at which they begin, and their
dates.

        2) It uses the indexes, for files from which routines are being copied
and for those to which they are being added, to locate and copy the routines
from their source files.

        An option is provided for checking the dates of routines against those
of ones of the same name already in the target file and acting appropriately
as directed by the user.

        If a routine copied calls another, the program normally locates the
called routine in any source file in the catalog and copies it too, to any
degree of nesting.

        Correct operation depends absolutely on all .PRG "library" files having
headers and notes in the dFULP format.  Without that, the program can neither
compare dates nor identify called routines.  It should be noted that the
original release of LIB15.ZIP contains some errors.  For example, all the
functions in ARRAY.PRG except the last three call on the function Amask() in
the same file, but it is not listed in the "*-- Calls" line of the header of
many of them.  If copying the other functions, be sure to copy Amask() as well, or to fix up the headers in ARRAY.PRG first
so the program can do it.

        The program normally copies an entire source file or a single routine
from it to the target file.  To use it to copy some but not all routines,
back up the index .DBF, delete the records containing the names of routines
you don't want copied, and then use the program's "Add the source file"
mode to copy the rest.  If you don't have an index .DBF, build one by setting
the overwrite mode to "Never", selecting a source file, and directing the
program to add the entire file.  It will create the index, which you can
edit by hand later, but not add anything to the target file.  After you have
edited an indexing .dbf this way, be sure to restore it from the backup, or
erase it and let the program rebuild it, so that it will match the file it
indexes.

        The program can also be used to delete single routines from library-
type .PRG files, normally from your library file, or to make a few simple
reports, all of which are obvious on running it.  Details of the file
structures used and considerable additional documentation are contained in
the MARIAN.PRG file itself.

        The Marian program does not yet hunt through regular programs to find
calls to functions and procedures for the purpose of adding them to the
program file or a procedure file to be called by it.  Use PROCLITE.ZIP from the
BORBBS for that.  However, this interim release of Marian is capable of adding
specified routines to the end of a text file that does not use the dFULP
structure, which the program calls a "program" target file.

                     LICENSE and DISCLAIMER OF WARRANTY

        MARIAN.PRG is copyrighted.  You and everyone else are licensed to
use it for your own purposes, to copy it, to give it to friends, or to
upload it on BBS's.  You are NOT licensed to:

        1) Distribute the program without both the copyright notice and this
file including this license statement, or to
        2) Furnish it to a customer, or as part of a product, in any
transaction for which you receive compensation, whether or not a separate
charge is made for this program.

        No warranty is made that the program is merchantable or fit for any
purpose, and all risks of use are on the user, including the risk that the
program may operate improperly and destroy valuable data.

                                                Jay Parsons
                                                52 Chapin Road
                                                Bernardsville, NJ 07924
                                                BORBBS Jparsons
May 10, 1992                                    CompuServe 70160,340


