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; }
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; }
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; }