__open_catalog (catalog, 1);
__open_catalog (catalog);
catgets (nl_catd catalog_desc, int set, int message, const char *string){  __nl_catd catalog;  size_t idx;  size_t cnt;  /* Be generous if catalog which failed to be open is used.  */  if (catalog_desc == (nl_catd) -1 || ++set <= 0 || message < 0)    return (char *) string;  catalog = (__nl_catd) catalog_desc;  if (catalog->status == closed)    __open_catalog (catalog, 1);  if (catalog->status == nonexisting)    {      __set_errno (EBADF);      return (char *) string;    }  idx = ((set * message) % catalog->plane_size) * 3;  cnt = 0;  do    {      if (catalog->name_ptr[idx + 0] == (u_int32_t) set	  && catalog->name_ptr[idx + 1] == (u_int32_t) message)	return (char *) &catalog->strings[catalog->name_ptr[idx + 2]];      idx += catalog->plane_size * 3;    }  while (++cnt < catalog->plane_depth);  __set_errno (ENOMSG);  return (char *) string;}