/* unify */
for (i = j = 0; i < cbdata.lookat.count; i += 2)
{
+ Id idx;
hx = cbdata.lookat.elements[i];
- Id idx = cbdata.lookat.elements[i + 1];
+ idx = cbdata.lookat.elements[i + 1];
if (j && hx == cbdata.lookat.elements[j - 2] && idx == cbdata.lookat.elements[j - 1])
continue;
cbdata.lookat.elements[j++] = hx;
int i, l;
struct stateswitch *sw;
Repodata *data;
+ XML_Parser parser;
data = repo_add_repodata(repo, flags);
pd.atemp = 256;
pd.ltemp = 0;
- XML_Parser parser = XML_ParserCreate(NULL);
+ parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, &pd);
XML_SetElementHandler(parser, startElement, endElement);
XML_SetCharacterDataHandler(parser, characterData);
Solvable *s = pd->solvable;
Id evr;
unsigned int t = 0;
+ const char *flavor;
if (pd->depth != pd->statedepth)
{
pd->freshens = 0;
/* see bugzilla bnc#190163 */
- const char *flavor = findKernelFlavor(pd, s);
+ flavor = findKernelFlavor(pd, s);
if (flavor)
{
char *cflavor = solv_strdup(flavor); /* make pointer safe */
int i, l;
struct stateswitch *sw;
unsigned int now;
+ XML_Parser parser;
now = solv_timems(0);
data = repo_add_repodata(repo, flags);
// set up XML parser
- XML_Parser parser = XML_ParserCreate(NULL);
+ parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, &pd); /* make parserdata available to XML callbacks */
XML_SetElementHandler(parser, startElement, endElement);
XML_SetCharacterDataHandler(parser, characterData);
char buf[BUFF_SIZE];
int l;
struct stat st;
+ XML_Parser parser;
if (!fstat(fileno(fp), &st))
{
pd->ctime = 0;
}
- XML_Parser parser = XML_ParserCreate(NULL);
+ parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, pd);
XML_SetElementHandler(parser, startElement, endElement);
XML_SetCharacterDataHandler(parser, characterData);
while ((entry = readdir(dir)))
{
int len = strlen(entry->d_name);
+ FILE *fp;
if (len <= 5 || strcmp(entry->d_name + len - 5, ".prod") != 0)
continue;
fullpath = join2(dirpath, "/", entry->d_name);
- FILE *fp = fopen(fullpath, "r");
+ fp = fopen(fullpath, "r");
if (!fp)
{
perror(fullpath);
char buf[BUFF_SIZE];
int i, l;
struct stateswitch *sw;
+ XML_Parser parser;
data = repo_add_repodata(repo, flags);
pd.content = malloc(256);
pd.acontent = 256;
pd.lcontent = 0;
- XML_Parser parser = XML_ParserCreate(NULL);
+ parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, &pd);
pd.parser = &parser;
XML_SetElementHandler(parser, startElement, endElement);
struct stateswitch *sw;
const char *str;
Id handle = pd->handle;
+ const char *pkgid;
// fprintf(stderr, "into %s, from %d, depth %d, statedepth %d\n", name, pd->state, pd->depth, pd->statedepth);
a new solvable but just append the attributes to the existing
one.
*/
- const char *pkgid;
if ((pkgid = find_attr("pkgid", atts)) != NULL)
{
// look at the checksum cache
struct stateswitch *sw;
Repodata *data;
unsigned int now;
+ XML_Parser parser;
now = solv_timems(0);
data = repo_add_repodata(repo, flags);
dataiterator_free(&di);
}
- XML_Parser parser = XML_ParserCreate(NULL);
+ parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, &pd);
pd.parser = &parser;
XML_SetElementHandler(parser, startElement, endElement);
Repo *repo = s->repo;
Pool *pool = repo->pool;
char *sp[5];
+ Id name;
+ Id evr;
+ Id arch;
if (split(line, sp, 5) != 4)
{
exit(1);
}
- Id name = pool_str2id(pool, sp[0], 1);
- Id evr = makeevr(pool, join2(sp[1], "-", sp[2]));
- Id arch = pool_str2id(pool, sp[3], 1);
+ name = pool_str2id(pool, sp[0], 1);
+ evr = makeevr(pool, join2(sp[1], "-", sp[2]));
+ arch = pool_str2id(pool, sp[3], 1);
/* XXX: could record a dep here, depends on where we want to store the data */
if (name == s->name)
repodata_set_void(pd->data, handle, SOLVABLE_SOURCENAME);
add_dirline(struct parsedata *pd, char *line)
{
char *sp[6];
+ long filesz;
+ long filenum;
+ unsigned dirid;
if (split(line, sp, 6) != 5)
return;
pd->dirs = solv_extend(pd->dirs, pd->ndirs, 1, sizeof(pd->dirs[0]), 31);
- long filesz = strtol(sp[1], 0, 0);
+ filesz = strtol(sp[1], 0, 0);
filesz += strtol(sp[2], 0, 0);
- long filenum = strtol(sp[3], 0, 0);
+ filenum = strtol(sp[3], 0, 0);
filenum += strtol(sp[4], 0, 0);
/* hack: we know that there's room for a / */
if (*sp[0] != '/')
*--sp[0] = '/';
- unsigned dirid = repodata_str2dir(pd->data, sp[0], 1);
+ dirid = repodata_str2dir(pd->data, sp[0], 1);
#if 0
fprintf(stderr, "%s -> %d\n", sp[0], dirid);
#endif
int i, l;
struct stateswitch *sw;
Repodata *data;
+ XML_Parser parser;
data = repo_add_repodata(repo, flags);
pd.content = malloc(256);
pd.acontent = 256;
pd.lcontent = 0;
- XML_Parser parser = XML_ParserCreate(NULL);
+ parser = XML_ParserCreate(NULL);
XML_SetUserData(parser, &pd);
XML_SetElementHandler(parser, startElement, endElement);
XML_SetCharacterDataHandler(parser, characterData);
const NeedId *a = ap;
const NeedId *b = bp;
Stringpool *spool = dp;
+ const char *as;
+ const char *bs;
int r;
r = b->need - a->need;
if (r)
return r;
- const char *as = spool->stringspace + spool->strings[a->map];
- const char *bs = spool->stringspace + spool->strings[b->map];
+ as = spool->stringspace + spool->strings[a->map];
+ bs = spool->stringspace + spool->strings[b->map];
return strcmp(as, bs);
}
{
int len, i;
Id lids[64], *sids;
+ Id id, old;
if (!ids)
return;
if ((len - i) > 2)
solv_sort(sids + i + 1, len - i - 1, sizeof(Id), cmp_ids, 0);
- Id id, old = 0;
+ old = 0;
/* The differencing above produces many runs of ones and twos. I tried
fairly elaborate schemes to RLE those, but they give only very mediocre
Id type_constantid = REPOKEY_TYPE_CONSTANTID;
+ unsigned char *prefixcomp;
+ unsigned int compsum;
+ char *old_str;
+
memset(&cbdata, 0, sizeof(cbdata));
cbdata.repo = repo;
/*
* calculate prefix encoding of the strings
*/
- unsigned char *prefixcomp = solv_malloc(nstrings);
- unsigned int compsum = 0;
- char *old_str = "";
+ prefixcomp = solv_malloc(nstrings);
+ compsum = 0;
+ old_str = "";
prefixcomp[0] = 0;
for (i = 1; i < nstrings; i++)
schemaid = 0;
for (ida = data->attriddata + val; *ida; ida++)
{
+ Id *kp;
sp = schema;
- Id *kp = data->xattrs[-*ida];
+ kp = data->xattrs[-*ida];
if (!kp)
continue;
num++;
#define _XOPEN_SOURCE 500
#include <sys/types.h>
+#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BLOCK_SIZE (65536*1)
#if BLOCK_SIZE <= 65536
-typedef __uint16_t Ref;
+typedef uint16_t Ref;
#else
-typedef __uint32_t Ref;
+typedef uint32_t Ref;
#endif
/*
#define HS (65536)
Ref htab[HS];
Ref hnext[BLOCK_SIZE];
+ unsigned int litofs = 0;
memset(htab, -1, sizeof (htab));
memset(hnext, -1, sizeof (hnext));
- unsigned int litofs = 0;
while (io + 2 < in_len)
{
/* Search for a match of the string starting at IN, we have at
{
if (litofs)
{
+ unsigned litlen;
litofs--;
- unsigned litlen = io - litofs;
+ litlen = io - litofs;
/* fprintf(stderr, "lit: %d\n", litlen); */
while (litlen)
{
io = in_len;
if (litofs)
{
+ unsigned litlen;
litofs--;
- unsigned litlen = io - litofs;
+ litlen = io - litofs;
/* fprintf(stderr, "lit: %d\n", litlen); */
while (litlen)
{
/* Now search for "cheap" space in our store. Space is cheap if it's either
free (very cheap) or contains pages we search for anyway. */
+ {
/* Setup cost array. */
unsigned int cost[store->ncanmap];
+ unsigned int best_cost;
+ unsigned int best;
+ unsigned int same_cost;
for (i = 0; i < store->ncanmap; i++)
{
unsigned int pnum = store->mapped[i];
cost[i] = 0;
else
{
+ Attrblobpage *p;
pnum--;
- Attrblobpage *p = store->pages + pnum;
+ p = store->pages + pnum;
assert(p->mapped_at != -1);
if (pnum >= pstart && pnum <= pend)
cost[i] = 1;
}
/* And search for cheapest space. */
- unsigned int best_cost = -1;
- unsigned int best = 0;
- unsigned int same_cost = 0;
+ best_cost = -1;
+ best = 0;
+ same_cost = 0;
for (i = 0; i + pend - pstart < store->ncanmap; i++)
{
unsigned int c = cost[i];
store->mapped[pnum] = i + 1;
}
return store->blob_store + best * REPOPAGE_BLOBSIZE;
+ }
}
unsigned int
MAPSET(&m, p);
for (i = 0; i < qi.count; i++)
{
+ Rule *ur;
if (!qi.elements[i])
continue;
- Rule *ur = solv->rules + solv->updaterules + (qi.elements[i] - pool->installed->start);
+ ur = solv->rules + solv->updaterules + (qi.elements[i] - pool->installed->start);
if (!ur->p)
ur = solv->rules + solv->featurerules + (qi.elements[i] - pool->installed->start);
if (!ur->p)
#include <string.h> /* memcpy()/memset() or bcopy()/bzero() */
/* #include <assert.h> */ /* assert() */
#include <stdio.h>
-#include <sysexits.h>
#include <sys/uio.h>
#include <unistd.h>
#include <inttypes.h>
}
if (attrname)
{
+ FILE *fp;
test_separate = 1;
- FILE *fp = fopen(attrname, "w");
+ fp = fopen(attrname, "w");
write_info(repo, fp, keyfilter_attr, 0, info, attrname);
fclose(fp);
kd.haveexternal = 1;
{
FILE *fp = 0;
int r;
+ const char *location;
printf("LOADCALLBACK\n");
- const char *location = repodata_lookup_str(data, SOLVID_META, REPOSITORY_LOCATION);
+ location = repodata_lookup_str(data, SOLVID_META, REPOSITORY_LOCATION);
printf("loc %s\n", location);
if (!location || !with_attr)
return 0;
{
Pool *pool;
Solver *solv;
+ Repo *repo;
Queue job;
Queue rids;
Queue cand;
perror(argv[i]);
exit(1);
}
- Repo *repo = repo_create(pool, argv[i]);
+ repo = repo_create(pool, argv[i]);
#ifndef DEBIAN
if (l >= 8 && !strcmp(argv[i] + l - 8, "packages"))
{
Id pid, p, pp;
int tests = 0;
context_t c;
+ static const char* langs[] = {"en"};
c.install_available = 0;
c.updatestart = 0;
arch = argv[1];
pool = pool_create();
pool_setarch(pool, arch);
- static const char* langs[] = {"en"};
pool_set_languages(pool, langs, 1);
#if 0
for (pid = 1; pid < pool->nsolvables; pid++)
{
+ Solvable *s;
c.shown = 0;
- Solvable *s = pool->solvables + pid;
+ s = pool->solvables + pid;
if (!s->repo)
continue;
if (!pool_installable(pool, s))
Id defvendor = 0;
int flags = 0;
int c;
+ Pool *pool;
+ Repo *repo;
while ((c = getopt(argc, argv, "hn:c:d:b:q:")) >= 0)
{
break;
}
}
- Pool *pool = pool_create();
- Repo *repo = repo_create(pool, "<susetags>");
+ pool = pool_create();
+ repo = repo_create(pool, "<susetags>");
repo_add_repodata(repo, 0);
if (!strcmp(fn, "packages") || !strcmp(fn, "packages.gz"))
{
+ FILE *fp;
sprintf(fnp, "%s/%s", descrdir, fn);
- FILE *fp = solv_xfopen(fnp, 0);
+ fp = solv_xfopen(fnp, 0);
if (!fp)
{
perror(fn);
}
else if (!strcmp(fn, "packages.DU") || !strcmp(fn, "packages.DU.gz"))
{
+ FILE *fp;
sprintf(fnp, "%s/%s", descrdir, fn);
- FILE *fp = solv_xfopen(fnp, 0);
+ fp = solv_xfopen(fnp, 0);
if (!fp)
{
perror(fn);
{
char lang[6];
char *p;
+ FILE *fp;
sprintf(fnp, "%s/%s", descrdir, fn);
p = strrchr(fnp, '.');
if (p && !strcmp(p, ".gz"))
continue;
strcpy(lang, p + 1);
sprintf(fnp, "%s/%s", descrdir, fn);
- FILE *fp = solv_xfopen(fnp, 0);
+ fp = solv_xfopen(fnp, 0);
if (!fp)
{
perror(fn);