newp->is_character = is_character;
new_element (struct locale_collate_t *collate, const char *mbs, size_t mbslen,	     const uint32_t *wcs, const char *name, size_t namelen){  struct element_t *newp;  newp = (struct element_t *) obstack_alloc (&collate->mempool,					     sizeof (*newp));  newp->name = name == NULL ? NULL : obstack_copy0 (&collate->mempool,						    name, namelen);  if (mbs != NULL)    {      newp->mbs = obstack_copy0 (&collate->mempool, mbs, mbslen);      newp->nmbs = mbslen;    }  else    {      newp->mbs = NULL;      newp->nmbs = 0;    }  if (wcs != NULL)    {      size_t nwcs = wcslen ((wchar_t *) wcs);      uint32_t zero = 0;      obstack_grow (&collate->mempool, wcs, nwcs * sizeof (uint32_t));      obstack_grow (&collate->mempool, &zero, sizeof (uint32_t));      newp->wcs = (uint32_t *) obstack_finish (&collate->mempool);      newp->nwcs = nwcs;    }  else    {      newp->wcs = NULL;      newp->nwcs = 0;    }  newp->mborder = NULL;  newp->wcorder = 0;  newp->used_in_level = 0;  /* Will be allocated later.  */  newp->weights = NULL;  newp->file = NULL;  newp->line = 0;  newp->section = collate->current_section;  newp->last = NULL;  newp->next = NULL;  newp->mbnext = NULL;  return newp;}