/*
 *  call-seq:
 *      file.set_attr(attribute, attribute_value) -> attribute_value
 *
 *  Sets the attribute <i>attribute</i> for the file.
 *
 *      File.new("test.rb").set_attr("description", "test script") # => "test script"
 *
 */

VALUE rb_file_set_attrf(fobj, aname, aval)
          VALUE fobj, aname, aval;
{
        int ret;
        OpenFile *fptr;
        FILE *f;

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

        Check_Type(fobj, T_FILE);
        Check_Type(aname, T_STRING);
        Check_Type(aval, T_STRING);
        ret = attr_setf(fileno(f), StringValueCStr(aname), 
                        StringValueCStr(aval), RSTRING(aval)->len, 1);
        if(ret == 0) {
                return aval;
        } else {
                rb_sys_fail("");
        }
}