value = charset_find_value (charset, code->val.str.start, code->val.str.len);
value = charset_find_value (&charset->char_table, code->val.str.start, code->val.str.len);
collate_symbol (struct linereader *lr, struct localedef_t *locale,		struct token *code, struct charset_t *charset){  struct locale_collate_t *collate = locale->categories[LC_COLLATE].collate;  wchar_t value;  void *not_used;  value = charset_find_value (charset, code->val.str.start, code->val.str.len);  if (value != ILLEGAL_CHAR_VALUE)    {      lr_error (lr, _("symbol for multicharacter collating element "		      "`%.*s' duplicates symbolic name in charset"),		(int) code->val.str.len, code->val.str.start);      return;    }  if (find_entry (&collate->elements, code->val.str.start, code->val.str.len,		  &not_used) >= 0)    {      lr_error (lr, _("symbol for multicharacter collating element "		      "`%.*s' duplicates element definition"),		(int) code->val.str.len, code->val.str.start);      return;    }  if (find_entry (&collate->symbols, code->val.str.start, code->val.str.len,		  &not_used) >= 0)    {      lr_error (lr, _("symbol for multicharacter collating element "		      "`%.*s' duplicates other symbol definition"),		(int) code->val.str.len, code->val.str.start);      return;    }  if (insert_entry (&collate->symbols, code->val.str.start, code->val.str.len,		    (void *) 0) < 0)    lr_error (lr, _("cannot insert new collating symbol definition: %s"),	      strerror (errno));}