// iwrap.c
// Simul_efun to convert a string of text into lines which are indented,
// so that you can get effects like this:
// Line of text number one begins here, and it goes on for quite a long
// ways, and it's indented at the left on the second and following
// lines to make it easier to see where the entire piece of text
// begins and where it ends.
// Useful for things like channels and tell commands where someone may
// run a couple of lines in a message.
// Hacked from a copy of wrap by Artagel Aug 12 1993.
// Leto changed it to use new range (v20.26+)
// D_SZ is the default length of the string, if no value is passed, and
// D_IN is the default indentation, if no value is passed.
#define D_SZ 71
#define D_IN 4
varargs string iwrap(string str, int width, int indent) {
if (!width)
return sprintf("%s%-=*s\n", str[0..D_IN], D_SZ, str[(D_IN+1)..<1]);
if (!indent)
return sprintf("%s%-=*s\n", str[0..D_IN], width, str[(D_IN+1)..<1]);
return sprintf("%s%-=*s\n", str[0..indent], width, str[(indent+1)..<1]);
}