/* // Thanks to the folks at Portals for this one... // Author: Huthar@Portals, TMI // This file is now a part of the TMI distribution mudlib. // Depth Indenting and better managment of ending \n's Done by Qixx@Hero // NB is similar to the identify simul_efun, except for different formatting // and does not handle function variables */ varargs string dump_variable(mixed arg, int indent) { mixed *index; string rtn; string spaces; int i; if (indent) spaces="\t\t\t\t\t\t\t\t\t\t\t\t\t"[0..indent-1]; else spaces=""; rtn=""; if(objectp(arg)) return "("+file_name(arg)+")"; if(stringp(arg)) return "\""+arg+"\""; if(intp(arg)) return "#"+arg; if(pointerp(arg)) { if (indent==0) rtn = "ARRAY:"; for(i = 0; i < sizeof(arg); i++) { rtn+="\n"; rtn+=spaces; rtn+="["+i+"] == "+dump_variable(arg[i],indent+1); } return rtn; } if(mapp(arg)) { if (indent==0) rtn="MAPPING:"; index = keys(arg); for(i = 0; i < sizeof(index); i++) { rtn +="\n"; rtn+=spaces; rtn+="["+dump_variable(index[i],0)+"] == "+dump_variable(arg[index[i]],indent+1); } return rtn; } if (floatp(arg)) { return "%"+arg ; } return "UNKNOWN"; }