/*
 *  call-seq:
 *  	file.get_attr(attribute) -> attribute_value
 *
 *  Returns the value of <i>attribute</i> for the file
 *
 *  	File.new(__FILE__).get_attr("description") # => "test script"
 *
 */

VALUE rb_file_get_attrf(fobj, aname)
	VALUE fobj, aname;
{
	char *aval;
	int *size;
	int ret;
	VALUE retval;
	OpenFile *fptr;
	FILE *f;

	GetOpenFile(fobj, fptr);
	f = GetReadFile(fptr);

	Check_Type(fobj, T_FILE);
	Check_Type(aname, T_STRING);

	size = malloc(sizeof(int));
	aval = malloc(16000);
	*size = 16000;

	ret = attr_getf(fileno(f), StringValueCStr(aname), aval, size, 1);
	if(ret == 0) {
		retval = rb_str_new(aval, *size);
		free(aval);
		free(size);
		return retval;
	} else {
		free(aval);
		free(size);
		if(ret != ENODATA && ret != ENOATTR) {
			rb_sys_fail("");
		}
		return Qnil;
	}
}