varargs string print_object(mixed arg, int off) { write(extract(" ",0,off)); if (stringp(arg)) { write("\""+arg+"\"\n"); return "Ok"; } if (intp(arg)) { write(arg+"\n"); return "Ok"; } if (objectp(arg)) { write(file_name(arg)); if (arg->short()) write(" (Short) \""+arg->short()+"\"\n"); else if (arg->query_name()) write(" (Name) - \""+arg->query_name()+"\"\n"); else write(" (Arggghhh)\n"); return "Ok"; } if (pointerp(arg)) { int i; if (sizeof(arg) == 0) { write("({ })\n"); return "Ok"; } write("({ --- size "+sizeof(arg)+"\n"); for (i=0;i<sizeof(arg);i++) print_object(arg[i], off+3); write(extract(" ",0,off)+"})\n"); return "Ok"; } return "Oh dear we have failed"; }