unsigned int solvable_lookup_num(Solvable *s, Id keyname, unsigned int notfound);
const char *solvable_lookup_str(Solvable *s, Id keyname);
-const char *solvable_lookup_str_lang(Solvable *s, Id keyname);
+const char *solvable_lookup_str_poollang(Solvable *s, Id keyname);
+const char *solvable_lookup_str_lang(Solvable *s, Id keyname, const char *lang);
int solvable_lookup_bool(Solvable *s, Id keyname);
char * solvable_get_location(Solvable *s, unsigned int *medianrp);
const unsigned char *solvable_lookup_bin_checksum(Solvable *s, Id keyname, Id *typep);
return str;
}
+Id repodata_globalize_id(Repodata *data, Id id)
+{
+ if (!data || !data->localpool)
+ return id;
+ return str2id(data->repo->pool, stringpool_id2str(&data->spool, id), 1);
+}
+
void
repodata_add_dirnumnum(Repodata *data, Id entry, Id keyname, Id dir, Id num, Id num2)
{
unsigned int repodata_compress_page(unsigned char *, unsigned int, unsigned char *, unsigned int);
void repodata_read_or_setup_pages(Repodata *data, unsigned int pagesz, unsigned int blobsz);
+Id repodata_globalize_id(Repodata *data, Id id);
+
#endif /* SATSOLVER_REPODATA_H */
}
const char *
-solvable_lookup_str_lang(Solvable *s, Id keyname)
+solvable_lookup_str_poollang(Solvable *s, Id keyname)
{
Pool *pool;
int i, cols;
return repo_lookup_str(s, keyname);
}
+const char *
+solvable_lookup_str_lang(Solvable *s, Id keyname, const char *lang)
+{
+ Pool *pool;
+ Id id;
+ char *p;
+ const char *kn, *str;
+
+ if (!s->repo)
+ return repo_lookup_str(s, keyname);
+ pool = s->repo->pool;
+ kn = id2str(pool, keyname);
+ p = sat_malloc(strlen(kn) + strlen(lang) + 2);
+ sprintf(p, "%s:%s", kn, lang);
+ id = str2id(pool, p, 0);
+ if (id)
+ {
+ str = repo_lookup_str(s, id);
+ if (str)
+ return str;
+ }
+ return repo_lookup_str(s, keyname);
+}
+
unsigned int
solvable_lookup_num(Solvable *s, Id keyname, unsigned int notfound)
{