ptr = (char *) wcschr ((wchar_t *) ptr, '\0');
ptr = (char *) (wcschr ((wchar_t *) ptr, '\0') + 1);
_nl_get_era_entry (const struct tm *tp){  struct era_entry *result;  size_t cnt;  __libc_lock_lock (__libc_setlocale_lock);  if (era_initialized == 0)    {      size_t new_num_eras = _NL_CURRENT_WORD (LC_TIME,					      _NL_TIME_ERA_NUM_ENTRIES);      if (eras != NULL && new_num_eras == 0)	{	  free (eras);	  eras = NULL;	}      else if (new_num_eras != 0)	{	  if (num_eras != new_num_eras)	    eras = realloc (eras, new_num_eras * sizeof (struct era_entry *));	  if (eras == NULL)	    num_eras = 0;	  else	    {	      const char *ptr = _NL_CURRENT (LC_TIME, _NL_TIME_ERA_ENTRIES);	      num_eras = new_num_eras;	      for (cnt = 0; cnt < num_eras; ++cnt)		{		  eras[cnt] = (struct era_entry *) ptr;		  /* Skip numeric values.  */		  ptr += sizeof (struct era_entry);		  /* Skip era name.  */		  ptr = strchr (ptr, '\0') + 1;		  /* Skip era format.  */		  ptr = strchr (ptr, '\0') + 1;		  ptr += 3 - (((ptr - (const char *) eras[cnt]) + 3) & 3);		  /* Skip wide era name.  */		  ptr = (char *) wcschr ((wchar_t *) ptr, '\0');		  /* Skip wide era format.  */		  ptr = (char *) wcschr ((wchar_t *) ptr, '\0');		}	    }	}      era_initialized = 1;    }  /* Now compare date with the available eras.  */  for (cnt = 0; cnt < num_eras; ++cnt)    if ((eras[cnt]->start_date[0] < tp->tm_year	 || (eras[cnt]->start_date[0] == tp->tm_year	     && (eras[cnt]->start_date[1] < tp->tm_mon		 || (eras[cnt]->start_date[1] == tp->tm_mon		     && eras[cnt]->start_date[2] <= tp->tm_mday))))	&& (eras[cnt]->stop_date[0] > tp->tm_year	    || (eras[cnt]->stop_date[0] == tp->tm_year		&& (eras[cnt]->stop_date[1] > tp->tm_mon		    || (eras[cnt]->stop_date[1] == tp->tm_mon			&& eras[cnt]->stop_date[2] >= tp->tm_mday)))))      break;  result = cnt < num_eras ? eras[cnt] : NULL;  __libc_lock_unlock (__libc_setlocale_lock);  return result;}