Home | History | Annotate | Download | only in libebl

Lines Matching refs:newstr

192   struct Ebl_GStrent *newstr = (struct Ebl_GStrent *) (st->backp + align);
193 newstr->string = str;
194 newstr->len = len;
195 newstr->width = st->width;
196 newstr->next = NULL;
197 newstr->left = NULL;
198 newstr->right = NULL;
199 newstr->offset = 0;
202 newstr->reverse[i * st->width + j] = str[(len - 2 - i) * st->width + j];
204 newstr->reverse[(len - 1) * st->width + j] = '\0';
208 return newstr;
216 searchstring (struct Ebl_GStrent **sep, struct Ebl_GStrent *newstr)
223 *sep = newstr;
228 cmpres = memcmp ((*sep)->reverse, newstr->reverse,
229 (MIN ((*sep)->len, newstr->len) - 1) * (*sep)->width);
234 return searchstring (&(*sep)->left, newstr);
236 return searchstring (&(*sep)->right, newstr);
244 struct Ebl_GStrent *newstr;
265 newstr = newstring (st, str, len);
270 sep = searchstring (&st->root, newstr);
271 if (*sep != newstr)
274 if ((*sep)->len > newstr->len)
280 if (subs->len == newstr->len)
284 st->left += (st->backp - (char *) newstr) * st->width;
285 st->backp = (char *) newstr;
292 st->backp -= newstr->len;
293 st->left += newstr->len;
295 newstr->next = (*sep)->next;
296 (*sep)->next = newstr;
298 else if ((*sep)->len != newstr->len)
303 st->total += newstr->len - (*sep)->len;
304 newstr->next = *sep;
305 newstr->left = (*sep)->left;
306 newstr->right = (*sep)->right;
307 *sep = newstr;
312 st->left += (st->backp - (char *) newstr) * st->width;
313 st->backp = (char *) newstr;
315 newstr = *sep;
319 st->total += newstr->len;
321 return newstr;