string repeat_str(string ch, int n) {
int i;
string tmp;
if (n<0) return "";
tmp = "";
for (i=0;i<n;i++) tmp += ch;
return tmp;
}
string format_mixed(mixed data, int len) {
int n;
string tmp;
if (!data || intp(data) ) {
tmp = data+" ";
n = strlen(tmp);
if (n>len) return repeat_str("*",len);
return (repeat_str(" ",len-n)+tmp);
}
if (stringp(data)) {
n = strlen(data);
if (n>len) return data[0..len-4]+" ..";
return data[0..n-1]+repeat_str(" ",len-n);
}
if (objectp(data)) {
tmp = file_name(data);
n = strlen(tmp);
if (n>len) return tmp[0..len-4]+" ..";
return tmp[0..n-1]+repeat_str(" ",len-n);
}
/* error */
return repeat_str("X",len);
}
string center_mixed(mixed data, int len) {
int n, left, right;
string tmp;
if (!data || intp(data) ) {
tmp = data+"";
n = strlen(tmp);
if (n>len) return repeat_str("*",len);
left = (len-n)/2;
right = len - left - n;
return (repeat_str(" ",left)+tmp+repeat_str(" ",right));
}
if (stringp(data)) {
n = strlen(data);
if (n>len) return data[0..len-4]+" ..";
left = (len-n)/2;
right = len - left - n;
return (repeat_str(" ",left)+tmp+repeat_str(" ",right));
}
if (objectp(data)) {
tmp = file_name(data);
n = strlen(tmp);
if (n>len) return tmp[0..len-4]+" ..";
left = (len-n)/2;
right = len - left - n;
return (repeat_str(" ",left)+tmp+repeat_str(" ",right));
}
/* error */
return repeat_str("X",len);
}
string SubStr(string str, string orig, string new) {
string ret, front, back, tmp;
if (!str || str=="" ) return "";
tmp = "%s"+orig+"%s";
ret="";
while(sscanf(str, tmp, front, back)) {
if(!back) back="";
ret+= front+new;
str=back;
}
return ret+str;
}