pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case : (unsigned char *) str); pstr->mbs = MBS_ALLOCATED (pstr) ? pstr->mbs : pstr->mbs_case; pstr->valid_len = (MBS_CASE_ALLOCATED (pstr) || MBS_ALLOCATED (pstr) || dfa->mb_cur_max > 1) ? pstr->valid_len : len;
pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; pstr->valid_len = (pstr->mbs_allocated || dfa->mb_cur_max > 1) ? 0 : len; pstr->valid_raw_len = pstr->valid_len;
re_string_allocate (pstr, str, len, init_len, trans, icase, dfa)     re_string_t *pstr;     const char *str;     int len, init_len, icase;     RE_TRANSLATE_TYPE trans;     const re_dfa_t *dfa;{  reg_errcode_t ret;  int init_buf_len;  /* Ensure at least one character fits into the buffers.  */  if (init_len < dfa->mb_cur_max)    init_len = dfa->mb_cur_max;  init_buf_len = (len + 1 < init_len) ? len + 1: init_len;  re_string_construct_common (str, len, pstr, trans, icase, dfa);  pstr->stop = pstr->len;  ret = re_string_realloc_buffers (pstr, init_buf_len);  if (BE (ret != REG_NOERROR, 0))    return ret;  pstr->mbs_case = (MBS_CASE_ALLOCATED (pstr) ? pstr->mbs_case		    : (unsigned char *) str);  pstr->mbs = MBS_ALLOCATED (pstr) ? pstr->mbs : pstr->mbs_case;  pstr->valid_len = (MBS_CASE_ALLOCATED (pstr) || MBS_ALLOCATED (pstr)		     || dfa->mb_cur_max > 1) ? pstr->valid_len : len;  return REG_NOERROR;}