char *p;
Id id;
- while (*line == ' ' && *line == '\t')
+ while (*line == ' ' || *line == '\t')
line++;
p = line;
while (*p && *p != ' ' && *p != '\t' && *p != '<' && *p != '=' && *p != '>')
p++;
id = pool_strn2id(pool, line, p - line, 1);
- while (*p == ' ' && *p == '\t')
+ while (*p == ' ' || *p == '\t')
p++;
if (*p == '<' || *p == '=' || *p == '>')
{
int flags = 0;
for (;; p++)
- {
+ {
if (*p == '<')
flags |= REL_LT;
else if (*p == '=')
else
break;
}
- while (*p == ' ' && *p == '\t')
+ while (*p == ' ' || *p == '\t')
p++;
line = p;
while (*p && *p != ' ' && *p != '\t')
Solvable *s;
int l, fd;
struct stat stb;
- void *pkgidhandle = 0;
+ Chksum *pkgidchk = 0;
data = repo_add_repodata(repo, flags);
if ((fd = open(flags & REPO_USE_ROOTDIR ? pool_prepend_rootdir_tmp(pool, fn) : fn, O_RDONLY, 0)) < 0)
ignoreline = 0;
s = pool_id2solvable(pool, repo_add_solvable(repo));
if (flags & ARCH_ADD_WITH_PKGID)
- pkgidhandle = solv_chksum_create(REPOKEY_TYPE_MD5);
+ pkgidchk = solv_chksum_create(REPOKEY_TYPE_MD5);
while (getsentry(&th, line, sizeof(line)))
{
l = strlen(line);
if (l == 0)
continue;
- if (pkgidhandle)
- solv_chksum_add(pkgidhandle, line, l);
+ if (pkgidchk)
+ solv_chksum_add(pkgidchk, line, l);
if (line[l - 1] != '\n')
{
ignoreline = 1;
else if (!strncmp(line, "arch = ", 7))
s->arch = pool_str2id(pool, line + 7, 1);
else if (!strncmp(line, "license = ", 10))
- repodata_set_poolstr(data, s - pool->solvables, SOLVABLE_LICENSE, line + 10);
+ repodata_add_poolstr_array(data, s - pool->solvables, SOLVABLE_LICENSE, line + 10);
else if (!strncmp(line, "replaces = ", 11))
s->obsoletes = adddep(repo, s->obsoletes, line + 11);
else if (!strncmp(line, "group = ", 8))
- repodata_set_poolstr(data, s - pool->solvables, SOLVABLE_GROUP, line + 8);
+ repodata_add_poolstr_array(data, s - pool->solvables, SOLVABLE_GROUP, line + 8);
else if (!strncmp(line, "depend = ", 9))
s->requires = adddep(repo, s->requires, line + 9);
else if (!strncmp(line, "optdepend = ", 12))
if (!s)
{
pool_error(pool, -1, "%s: not an arch package", fn);
- if (pkgidhandle)
- solv_chksum_free(pkgidhandle, 0);
+ if (pkgidchk)
+ solv_chksum_free(pkgidchk, 0);
return 0;
}
if (s && !s->name)
{
pool_error(pool, -1, "%s: package has no name", fn);
- repo_free_solvable(repo, s - pool->solvables, 1);
- s = 0;
+ s = solvable_free(s, 1);
}
if (s)
{
repodata_set_location(data, s - pool->solvables, 0, 0, fn);
if (S_ISREG(stb.st_mode))
repodata_set_num(data, s - pool->solvables, SOLVABLE_DOWNLOADSIZE, (unsigned long long)stb.st_size);
- if (pkgidhandle)
+ if (pkgidchk)
{
unsigned char pkgid[16];
- solv_chksum_free(pkgidhandle, pkgid);
+ solv_chksum_free(pkgidchk, pkgid);
repodata_set_bin_checksum(data, s - pool->solvables, SOLVABLE_PKGID, REPOKEY_TYPE_MD5, pkgid);
- pkgidhandle = 0;
+ pkgidchk = 0;
}
}
- if (pkgidhandle)
- solv_chksum_free(pkgidhandle, 0);
+ if (pkgidchk)
+ solv_chksum_free(pkgidchk, 0);
if (!(flags & REPO_NO_INTERNALIZE))
repodata_internalize(data);
return s ? s - pool->solvables : 0;
else if (!strcmp(line, "%GROUPS%"))
{
if (getsentrynl(th, line, sizeof(line)))
- repodata_set_poolstr(data, s - pool->solvables, SOLVABLE_GROUP, line);
+ repodata_add_poolstr_array(data, s - pool->solvables, SOLVABLE_GROUP, line);
}
else if (!strcmp(line, "%CSIZE%"))
{
else if (!strcmp(line, "%LICENSE%"))
{
if (getsentrynl(th, line, sizeof(line)))
- repodata_set_poolstr(data, s - pool->solvables, SOLVABLE_LICENSE, line);
+ repodata_add_poolstr_array(data, s - pool->solvables, SOLVABLE_LICENSE, line);
}
else if (!strcmp(line, "%ARCH%"))
{
return;
if (!s->name)
{
- repo_free_solvable(repo, s - pool->solvables, 1);
+ solvable_free(s, 1);
return;
}
if (!s->arch)