- dbassert(!current->s[0]);
- strcpy(current->s, chrs);
- current->endsword= endsword;
+ if (!current->defined) {
+ free(current->str);
+ current->str= 0;
+ current->defined= 1;
+ current->match= 0;
+
+ if (nchrs) {
+ current->str= mmalloc(nchrs+1);
+ memcpy(current->str, chrs, nchrs);
+ current->str[nchrs]= 0;
+ current->match= 1;
+ current->endsword= endsword;
+ }
+ }