aboutsummaryrefslogtreecommitdiffstats
path: root/URPM.xs
diff options
context:
space:
mode:
Diffstat (limited to 'URPM.xs')
-rw-r--r--URPM.xs18
1 files changed, 9 insertions, 9 deletions
diff --git a/URPM.xs b/URPM.xs
index 8602dc9..0800993 100644
--- a/URPM.xs
+++ b/URPM.xs
@@ -50,7 +50,7 @@ typedef struct rpmSpec_s * Spec;
struct s_Package {
Header h;
- int filesize;
+ uint64_t filesize;
unsigned flag;
char *info;
char *requires;
@@ -213,7 +213,7 @@ get_int(const Header header, rpmTag tag) {
return rpmtdGetNumber(&val);
}
-static size_t
+static uint64_t
get_filesize(const Header h) {
return headerGetNumber(h, RPMTAG_SIGSIZE) + 440; /* 440 is the rpm header size (?) empirical, but works */
}
@@ -1051,7 +1051,7 @@ parse_line(AV *depslist, HV *provides, HV *obsoletes, URPM__Package pkg, char *b
// reset package, next line will be for another one
memset(pkg, 0, sizeof(struct s_Package));
} else if (!strcmp(tag, "filesize"))
- pkg->filesize = atoi(data);
+ pkg->filesize = atoll(data);
else {
char **ptr = NULL;
if (!strcmp(tag, "requires"))
@@ -1755,7 +1755,7 @@ Pkg_compare(pkg, evr)
OUTPUT:
RETVAL
-int
+uint64_t
Pkg_size(pkg)
URPM::Package pkg
CODE:
@@ -1765,7 +1765,7 @@ Pkg_size(pkg)
if ((s = strchr(pkg->info, '@')) != NULL && (s = strchr(s+1, '@')) != NULL) {
if ((eos = strchr(s+1, '@')) != NULL)
*eos = 0; /* mark end of string to enable searching backwards */
- RETVAL = atoi(s+1);
+ RETVAL = atoll(s+1);
if (eos != NULL) *eos = '@';
} else
RETVAL = 0;
@@ -1779,11 +1779,11 @@ Pkg_size(pkg)
void
Pkg_set_filesize(pkg, filesize)
URPM::Package pkg
- size_t filesize;
+ uint64_t filesize;
PPCODE:
pkg->filesize = filesize;
-int
+uint64_t
Pkg_filesize(pkg)
URPM::Package pkg
CODE:
@@ -2091,7 +2091,7 @@ Pkg_build_info(pkg, fileno, provides_files=NULL, recommends=0)
CODE:
if (pkg->info) {
char buff[65536*2];
- size_t size;
+ uint64_t size;
/* info line should be the last to be written */
if (pkg->provides && *pkg->provides) {
@@ -2125,7 +2125,7 @@ Pkg_build_info(pkg, fileno, provides_files=NULL, recommends=0)
if (size < sizeof(buff)) write_nocheck(fileno, buff, size);
}
if (pkg->filesize) {
- size = snprintf(buff, sizeof(buff), "@filesize@%d\n", pkg->filesize);
+ size = snprintf(buff, sizeof(buff), "@filesize@%llu\n", pkg->filesize);
if (size < sizeof(buff)) write_nocheck(fileno, buff, size);
}
size = snprintf(buff, sizeof(buff), "@info@%s\n", pkg->info);