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; // figure out the new end.
while (c >= m) end = str + strlen (str);
{ while (end > str && (end[-1] == ' ' || end[-1] == '\t' || end[-1] == '\n' || end[-1] == '\r'))
if (*c == ' ') end--;
*c = '\0';
else length = end - str;
break;
c--; if (offset < 0)
} offset = 0;
G_INT(OFS_RETURN) = m - pr_strings; // 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;
}; };
/* /*