mud/fluffos-2.23-ds03/compat/simuls/break_string.c
2020-09-06 05:43:07 -07:00

22 lines
605 B
C

void break_string(string str, int width, mixed indent) {
int indlen;
if (!stringp(str)) return 0;
if (intp(indent)) {
if (ident < 0) indent = 0;
indlen = indent;
indent = sprintf("%-*' 's", indlen, "");
} else if (stringp(indent)) {
indlen = strlen(ident);
} else return str;
if (width < indlen + 1) width = indlen + 1;
str = sprintf("%*-=s", width - indlen, str);
if (!indlen) return str;
if (str[<1] == '\n')
return indent + replace_string(str[0..<2], "\n", "\n" + indent) + "\n";
else
return indent + replace_string(str, "\n", "\n" + indent);
}