if (value == 0 && !be_quiet) error_at_line (0, 0, patch->fname, patch->lineno, _("no weight defined for symbol `%s'"), patch->token);
if (value == 0) { if (!be_quiet) error_at_line (0, 0, patch->fname, patch->lineno, _("no weight defined for symbol `%s'"), patch->token); }
collate_finish (struct localedef_t *locale, struct charset_t *charset){  struct locale_collate_t *collate = locale->categories[LC_COLLATE].collate;  patch_t *patch;  size_t cnt;  /* Patch the constructed table so that forward references are     correctly filled.  */  for (patch = collate->all_patches; patch != NULL; patch = patch->next)    {      wchar_t wch;      size_t toklen = strlen (patch->token);      void *ptmp;      unsigned int value = 0;      wch = charset_find_value (charset, patch->token, toklen);      if (wch != ILLEGAL_CHAR_VALUE)	{	  element_t *runp;	  if (find_entry (&collate->result, &wch, sizeof (wchar_t),			  (void *) &runp) < 0)	    runp = NULL;	  for (; runp != NULL; runp = runp->next)	    if (runp->name[0] == wch && runp->name[1] == L'\0')	      break;	  value = runp == NULL ? 0 : runp->this_weight;	}      else if (find_entry (&collate->elements, patch->token, toklen, &ptmp)	       >= 0)	{	  value = ((element_t *) ptmp)->this_weight;	}      else if (find_entry (&collate->symbols, patch->token, toklen, &ptmp)	       >= 0)	{	  value = (unsigned long int) ptmp;	}      else	value = 0;      if (value == 0 && !be_quiet)	error_at_line (0, 0, patch->fname, patch->lineno,		       _("no weight defined for symbol `%s'"), patch->token);      else	*patch->where.pos = value;    }  /* If no definition for UNDEFINED is given, all characters in the     given charset must be specified.  */  if (collate->undefined.ordering == NULL)    {      /**************************************************************\      |* XXX We should test whether really an unspecified character *|      |* exists before giving the message.			    *|      \**************************************************************/      u_int32_t weight;      if (!be_quiet)	error (0, 0, _("no definition of `UNDEFINED'"));      collate->undefined.ordering_len = collate->nrules;      weight = ++collate->order_cnt;      for (cnt = 0; cnt < collate->nrules; ++cnt)	{	  u_int32_t one = 1;	  obstack_grow (&collate->element_mem, &one, sizeof (one));	}      for (cnt = 0; cnt < collate->nrules; ++cnt)	obstack_grow (&collate->element_mem, &weight, sizeof (weight));      collate->undefined.ordering = obstack_finish (&collate->element_mem);    }  collate->undefined_len = 2;	/* For the name: 1 x wchar_t + L'\0'.  */  for (cnt = 0; cnt < collate->nrules; ++cnt)    collate->undefined_len += 1 + collate->undefined.ordering[cnt];}