22 lines
605 B
C
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);
|
|
}
|