/* /inherit/smartwrite.c - a "smarter" write function * Latest change to this file: September 4, 1992, by Padrone */ #pragma strict_types /* Maybe we should put this function in 'obj/simul_efun.c' or somewhere? */ string smartwritestring(mixed something) { int i, n; mixed this_element; string temp, temp2; string result; result = ""; if (stringp(something)) { n = sscanf(something, "%s\n%s", temp, temp2); if (n == 2) { if (temp2 != "") result += "'" + temp + "\\n'..."; else result += "'" + temp + "\\n'"; } else result += "'" + something + "'"; } else if (objectp(something)) { temp = (string)something->query_name(); if (temp) result += temp; else result += "OBJ(" + file_name(something) + ")"; } else if (pointerp(something)) { n = sizeof(something); result += "["; for (i = 0; i < n; ++i) { if (i != 0) result += ", "; this_element = something[i]; result += smartwritestring(this_element); } result += "]"; } else result += something; return result; } /* smartwritestring */ /* Maybe we should put this function in 'obj/simul_efun.c' or somewhere? */ void smartwrite(mixed something) { int i, n; mixed this_element; string temp, temp2; if (stringp(something)) { n = sscanf(something, "%s\n%s", temp, temp2); if (n == 2) { if (temp2 != "") write("'" + temp + "\\n'..."); else write("'" + temp + "\\n'"); } else write("'" + something + "'"); } else if (objectp(something)) { temp = (string)something->query_name(); if (temp) write(temp); else write("OBJ(" + file_name(something) + ")"); /* write(something); */ } else if (pointerp(something)) { n = sizeof(something); write("["); for (i = 0; i < n; ++i) { if (i != 0) write(", "); this_element = something[i]; smartwrite(this_element); } write("]"); } else write(something); } /* smartwrite */