/* ================= PF_strzone ZQ_QC_STRINGS string newstr (string str [, float size]) The 'size' parameter is not QSG but an MVDSV extension ================= */ void PF_strzone (void) { char *s; int i, size; s = G_STRING(OFS_PARM0); for (i = 0; i < MAX_PRSTR; i++) { if (!pr_newstrtbl[i] || pr_newstrtbl[i] == pr_strings) break; } if (i == MAX_PRSTR) PR_RunError("strzone: out of string memory"); size = strlen(s) + 1; if (pr_argc == 2 && (int) G_FLOAT(OFS_PARM1) > size) size = (int) G_FLOAT(OFS_PARM1); pr_newstrtbl[i] = (char *) Q_malloc(size); strlcpy(pr_newstrtbl[i], s, size); G_INT(OFS_RETURN) = -(i+MAX_PRSTR); }