+ snprintf(fnp, l, "%s/diskusagedata.xml.gz", dir);
+ if ((fp = solv_xfopen(fnp, 0)))
+ {
+ if (repo_add_rpmmd(repo, fp, 0, flags))
+ {
+ fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool));
+ exit(1);
+ }
+ fclose(fp);
+ }
+ if (locale)
+ {
+ if (snprintf(fnp, l, "%s/translation-%s.xml.gz", dir, locale) >= l)
+ {
+ fprintf(stderr, "-l parameter too long\n");
+ exit(1);
+ }
+ while (!(fp = solv_xfopen(fnp, 0)))
+ {
+ fprintf(stderr, "not opened %s\n", fnp);
+ if (strlen(locale) > 2)
+ {
+ if (snprintf(fnp, l, "%s/translation-%.2s.xml.gz", dir, locale) >= l)
+ {
+ fprintf(stderr, "-l parameter too long\n");
+ exit(1);
+ }
+ if ((fp = solv_xfopen(fnp, 0)))
+ break;
+ }
+ perror(fnp);
+ exit(1);
+ }
+ fprintf(stderr, "opened %s\n", fnp);
+ if (repo_add_rpmmd(repo, fp, 0, flags))
+ {
+ fprintf(stderr, "rpmmd2solv: %s: %s\n", fnp, pool_errstr(pool));
+ exit(1);
+ }
+ fclose(fp);
+ }
+ solv_free(fnp);