get_file_tags_c

	status.i4.v = get_file_tags_c(file_name.i1a.r, tag_type.i4.v,
				      embedded_tag.i1a.r, options.u4.v,
				      num_tags.i4.r, tag_data.sp.r,
				      error_text.i1a.r)

	This routine retrieves tagged values from a file.

	file_name	null terminated file name
	tag_type	type of tag to look for
			(STR_HTML_TAG -> HTML style tag (<[/]string>))
	embedded_tag	tag which allows embedded tags (Pass a value of
			NULL, if no such tag is desired.)
	options		option flags
			(TAG_OPT_NONE -> no options selected,
			 TAG_OPT_SUPPRESS_NEW_LINES -> suppress new line
						       characters,
			 TAG_OPT_WANT_END_TAG_INDICATORS -> want end tag
							    indicators,
			 TAG_OPT_HANDLE_ESCAPED_QUOTES -> handle escaped
							  quotes properly)
	num_tags	returned number of tagged values found
	tag_data	returned array of tagged value information
			(array of structures of type FILE_TAG_DATA)
			(The memory for this array is allocated by this
			routine and should be freed by the caller.)
	error_text	returned error text
			(allow at least 132 characters plus a null terminator)

	This function returns ACNET status values as follows:

	OK			success
	CLIB_MEMFAIL		failed in allocating dynamic memory
	CLIB_NOTOPN		failed to open file
	CLIB_SYNTAX		invalid tag syntax encountered

	This function requires the following include files:

	cbslib_h, acnet_errors_h

	Related functions:

	str_find_tag_c

	C/C++ usage:

	static const char	file_name[] = "my_file.txt";
	char	error_text[133];
	char	*embedded_tag = (char *) NULL;
	int	status;
	int	tag_type = STR_HTML_TAG;
	int	num_tags;
	unsigned int	options = TAG_OPT_NONE;
	FILE_TAG_DATA	*tag_data;

	status = get_file_tags_c(file_name,tag_type,embedded_tag,options,
				 &num_tags,&tag_data,error_text);
		.
		.
		.
	for (int tag = 0; tag < num_tags; tag++)
	    {
	    free(tag_data[tag].tag_name);
	    if (tag_data[tag].tag_path != (char *) NULL)
	    free(tag_data[tag].tag_path);
	    if (tag_data[tag].attributes != (char *) NULL)
	    free(tag_data[tag].attributes);
	    if (tag_data[tag].contents != (char *) NULL)
	    free(tag_data[tag].contents);
	    }
	free(tag_data);