ACTUALLY more intelligent strtrim

This commit is contained in:
cypress 2023-11-06 10:47:38 -05:00
parent 682594721f
commit 1537ce1c36
1 changed files with 33 additions and 19 deletions

View File

@ -1245,26 +1245,40 @@ string strtrim (string)
*/
void PF_strtrim (void)
{
char *m;
m = G_STRING(OFS_PARM0);
char *c;
c = m;
int offset, length;
int maxoffset; // 2001-10-25 Enhanced temp string handling by Maddes
char *str;
char *end;
while (c == ' ' || c == '\t' || c == '\n' || c == '\r')
c++;
m = c;
c = m + strlen (m) - 1;
while (c >= m)
{
if (*c == ' ')
*c = '\0';
else
break;
c--;
}
G_INT(OFS_RETURN) = m - pr_strings;
str = G_STRING(OFS_PARM0);
// figure out the new start
while (*str == ' ' || *str == '\t' || *str == '\n' || *str == '\r') {
offset++;
str++;
}
// figure out the new end.
end = str + strlen (str);
while (end > str && (end[-1] == ' ' || end[-1] == '\t' || end[-1] == '\n' || end[-1] == '\r'))
end--;
length = end - str;
if (offset < 0)
offset = 0;
// 2001-10-25 Enhanced temp string handling by Maddes start
if (length >= PR_MAX_TEMPSTRING)
length = PR_MAX_TEMPSTRING-1;
// 2001-10-25 Enhanced temp string handling by Maddes end
if (length < 0)
length = 0;
//str += offset;
strncpy(pr_string_temp, str, length);
pr_string_temp[length] = 0;
G_INT(OFS_RETURN) = pr_string_temp - pr_strings;
};
/*