package File_Manager is

    --| Overview
    --| This package provides some host independent file functions.  The provided
    --| functions are: Copy, Rename, and Append.  Each of these works on text
    --| files only and with a maximun line length of 255 (constant declared in
    --| the body which can be changed).  Due to Ada's limitations each file
    --| ends up with a form feed inserted as the last character.

    --| Requires
    --| Each procedure is passed two strings which are the file names to be used.

    procedure Copy (In_File_Name : in String; Out_File_Name : in String);

    --| Effects
    --| This procedure will take the file specified as In_file_name and make a
    --| second copy of the file in the file specified in Out_file_name.
    --| The copy of the file in Out_file_name will have a form feed inserted
    --| as the last character of the file.

    --| Requires
    --| The parameter In_file_name must specify a valid file name of an existing
    --| file.  The parameter Out_file_name must specify a valid file name for a
    --| file that currently does not exist

    --| Raises
    --| status_error, name_error, use_error

    procedure Rename (In_File_Name : in String; Out_File_Name : in String);

    --| Effects
    --| This procedure will take the file specified in In_file_name and rename
    --| it as the file specified as Out_file_name.  The original file will no
    --| longer exist.  The new file will have a form feed inserted as the last
    --| character of the file.

    --| Requires
    --| The parameter In_file_name must specify a valid file name of an existing
    --| file.  The parameter Out_file_name must specify a valid file name for a
    --| file that currently does not exist

    --| Raises
    --| status_error, use_error, name_error

    procedure Append (Append_File_Name : in String; To_File_Name : in String);

    --| Effects
    --| This procedure will Append one file onto the end of another file.  The
    --| First file specified will be added onto the end of the second file
    --| specified.

    --| Requires
    --| Both parameters must be valid file names and must specify files that
    --| currently exist.

    --| Raises
    --| status_error, name_error, use_error

end File_Manager;
