acl_file_read_description_c

	status.i4.v = acl_file_read_description_c(file_name.i1a.r,
						  file_type.i4.v,
						  description.i1p.r,
						  descr_length.i4.r,
						  [,desc_num_lines.i4.r]
						  [,options.u4.v]
						  [,long_descr.i1p.r]
						  [,long_descr_len.i4.r])

	This routine reads the description of an Accelerator Command Language
	(ACL) script from a file or database table.  If the database option is
	chosen, the table which contains the code must be ACL_DB_TABLE.  A
	value of NULL can be passed for any of the returned arguments whose
	values are not needed.

	file_name	null terminated file name
	file_type	type of file
			(ACL_FLAT_FILE -> ASCII text file,
			 ACL_DB_FILE -> "file_name" should be the database
					table name from ACL_DB_TABLE)
	description	returned description with each line terminated by
			a new line character  (The memory for this buffer
			is allocated by this routine and must not be freed
			the caller.  It will be freed by the next call
			to this routine.)
	descr_length	returned total length of the description
	[desc_num_lines] returned number of lines in the description
			(default is NULL)
	[options]	read options
			(ACL_OPT_NONE -> no options selected,
			 ACL_OPT_DONT_CLOSE -> leave database connection
					       open upon exit (close later
					       with db_close),
			 ACL_OPT_DB_DESCRIPTION -> want the database
						   description (DB files only))
	[long_descr]	returned long description (database files only)
			(The memory for this buffer is allocated by this
			 routine and must not be freed the caller.)
	[long_descr_len] returned total length of the description
			 (database files only)

	This function returns ACNET status values as follows:

	OK			success
	CLIB_MEMFAIL		failed in allocating dynamic memory
	CLIB_NOTOPN		failed to open file
	CLIB_NO_SUCH		no description found
	otherwise		other ACNET format error code

	This function requires the following include files:

	ul_acl_h:acl_h, acnet_errors_h

	Related functions:

	intro_acl, acl_file_read_author_c, acl_file_read_keeper_c,
	acl_file_read_title_c, acl_file_read_version_c,
	acl_file_read_c, acl_file_write_c, acl_file_exists_c,
	acl_db_file_exists_c, acl_file_execute_c, acl_execute_c, acl_compile_c,
	acl_free_c, acl_free_arg_info_c, acl_read_symbol_c,
	acl_read_symbol_as_string_c, acl_read_symbol_info_c,
	acl_read_symbol_dynamic_info_c, acl_read_symbol_names,
	acl_read_intrinsic_symbol_names, acl_parse_symbol_name,
	acl_script_argument_info_c, acl_script_has_symbol_list_c,
	acl_script_has_setting_c, acl_delete_symbol, acl_reinit_symbol,
	acl_info_c, acl_cancel_requests_c, acl_set_symbol_c,
	acl_default_data_source_c, acl_log_file_c, acl_default_script_path_c,
	db_close, acl_script_is_executing, acl_register_host_request_func,
	acl_unregister_host_request_func, acl_translate_command_string,
	acl_search_db_files_c, acl_file_is_in_repository_c,
	acl_parse_script_argument_string_c, acl_expand_file_name_c,
	acl_get_user_execution_privilege, acl_get_user_db_edit_permission

	C/C++ usage:

	static const char	file_name[] = "acl_file.acl";
	char	*description;
	char	*long_descr;
	int	status;
	int	file_type = ACL_FLAT_FILE;
	int	description_length;
	int	desc_num_lines;
	int	long_descr_len;
	unsigned int	options = ACL_OPT_NONE;

	status = acl_file_read_description_c(file_name,file_type,&description,
					     &description_length,
					     &desc_num_lines,options,
					     &long_descr,&long_descr_len);