ACTUALLY more intelligent strtrim

This commit is contained in:
cypress 2023-11-06 10:47:38 -05:00
parent 682594721f
commit 1537ce1c36

View file

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