Пример #1
0
static int
test_static_quarks (void)
{
  int i;

  for (i=0; i<TR_N_KEYS; i++)
    {
      tr_quark q;
      size_t len;
      const char * str;

      str = tr_quark_get_string (i, &len);
      check_int_eq (strlen(str), len);
      check (tr_quark_lookup (str, len, &q));
      check_int_eq (i, q);
    }

  for (i=0; i+1<TR_N_KEYS; i++)
    {
      size_t len1, len2;
      const char *str1, *str2;

      str1 = tr_quark_get_string (i, &len1);
      str2 = tr_quark_get_string (i+1, &len2);

      check (strcmp (str1, str2) < 0);
    }

  return 0;
}
Пример #2
0
static int
test_static_quarks (void)
{
  int i;

  for (i=0; i<TR_N_KEYS; i++)
    {
      tr_quark q;
      size_t len;
      const char * str;

      str = tr_quark_get_string ((tr_quark)i, &len);
      check_uint_eq (strlen(str), len);
      check (tr_quark_lookup (str, len, &q));
      check_int_eq (i, (int)q);
    }

  for (i=0; i+1<TR_N_KEYS; i++)
    {
      size_t len1, len2;
      const char *str1, *str2;

      str1 = tr_quark_get_string ((tr_quark)i, &len1);
      str2 = tr_quark_get_string ((tr_quark)(i+1), &len2);

      check (strcmp (str1, str2) < 0);
    }

  const tr_quark q = tr_quark_new (NULL, TR_BAD_SIZE);
  check_int_eq (TR_KEY_NONE, (int)q);
  check_streq ("", tr_quark_get_string (q, NULL));

  return 0;
}
Пример #3
0
tr_quark
tr_quark_new (const void * str, size_t len)
{
  tr_quark ret = TR_KEY_NONE;

  if (str == NULL)
    len = 0;
  else if (len == (size_t)-1)
    len = strlen (str);

  if (!tr_quark_lookup (str, len, &ret))
    ret = append_new_quark (str, len);

  return ret;
}