/* * call-seq: * res.print( file, opt ) * * MISSING: Documentation */ static VALUE pgresult_print(obj, file, opt) VALUE obj, file, opt; { VALUE value; ID mem; OpenFile* fp; PQprintOpt po; Check_Type(file, T_FILE); Check_Type(opt, T_STRUCT); GetOpenFile(file, fp); memset(&po, 0, sizeof(po)); mem = rb_intern("header"); value = rb_struct_getmember(opt, mem); po.header = value == Qtrue ? 1 : 0; mem = rb_intern("align"); value = rb_struct_getmember(opt, mem); po.align = value == Qtrue ? 1 : 0; mem = rb_intern("standard"); value = rb_struct_getmember(opt, mem); po.standard = value == Qtrue ? 1 : 0; mem = rb_intern("html3"); value = rb_struct_getmember(opt, mem); po.html3 = value == Qtrue ? 1 : 0; mem = rb_intern("expanded"); value = rb_struct_getmember(opt, mem); po.expanded = value == Qtrue ? 1 : 0; mem = rb_intern("pager"); value = rb_struct_getmember(opt, mem); po.pager = value == Qtrue ? 1 : 0; mem = rb_intern("fieldSep"); value = rb_struct_getmember(opt, mem); if (!NIL_P(value)) { Check_Type(value, T_STRING); po.fieldSep = StringValuePtr(value); } mem = rb_intern("tableOpt"); value = rb_struct_getmember(opt, mem); if (!NIL_P(value)) { Check_Type(value, T_STRING); po.tableOpt = StringValuePtr(value); } mem = rb_intern("caption"); value = rb_struct_getmember(opt, mem); if (!NIL_P(value)) { Check_Type(value, T_STRING); po.caption = StringValuePtr(value); } PQprint(fp->f2?fp->f2:fp->f, get_pgresult(obj), &po); return obj; }