/*
* 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;
}