diff options
author | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2010-10-14 01:23:42 +0000 |
---|---|---|
committer | Per Øyvind Karlsen <peroyvind@mandriva.org> | 2010-10-14 01:23:42 +0000 |
commit | dcd657cd1aca51741fb29f325aa1120557e39907 (patch) | |
tree | 8d6246bb762afdf6ff62139058dad228e2868503 | |
parent | 0eae00d29128a2dbda34ee64c3198a598bc93203 (diff) | |
download | perl-URPM-dcd657cd1aca51741fb29f325aa1120557e39907.tar perl-URPM-dcd657cd1aca51741fb29f325aa1120557e39907.tar.gz perl-URPM-dcd657cd1aca51741fb29f325aa1120557e39907.tar.bz2 perl-URPM-dcd657cd1aca51741fb29f325aa1120557e39907.tar.xz perl-URPM-dcd657cd1aca51741fb29f325aa1120557e39907.zip |
we don't have to modify pkg->info just to get epoch...
-rw-r--r-- | URPM.xs | 53 |
1 files changed, 27 insertions, 26 deletions
@@ -256,32 +256,34 @@ get_fullname_parts(URPM__Package pkg, char **name, int *epoch, char **version, c if(pkg->info) { if ((_eos = strchr(pkg->info, '@')) != NULL) { - backup_char(_eos); - if (eos != NULL) *eos = _eos+1; if (epoch != NULL) *epoch = isdigit(_eos[1]) ? atoi(_eos+1) : 0; - if ((_arch = strrchr(pkg->info, '.')) != NULL) { - backup_char(_arch); - if (arch != NULL) *arch = _arch + 1; - if (distepoch != NULL || disttag != NULL || release != NULL || version != NULL || name != NULL) { - if((_distepoch = strchr(strrchr(pkg->provides, '-'), ':')) != NULL) { - tmp = strrchr(_distepoch+1, ']'); - backup_char(tmp); - tmp = strstr(pkg->info, _distepoch+1); - backup_char(tmp); - } - if(distepoch != NULL) *distepoch = _distepoch ? _distepoch+1 : NULL; - if (disttag != NULL || release != NULL || version != NULL || name != NULL) { - if ((_disttag = strrchr(pkg->info, '-')) != NULL && (strstr(pkg->provides, _disttag)) == NULL) { - backup_char(_disttag); - } else _disttag = NULL; - if (disttag != NULL) *disttag = _disttag ? _disttag + 1: NULL; - if ((release != NULL || version != NULL || name != NULL) && (_release = strrchr(pkg->info, '-')) != NULL) { - backup_char(_release); - if (release != NULL) *release = _release + 1; - if ((version != NULL || name != NULL) && (_version = strrchr(pkg->info, '-')) != NULL) { - backup_char(_version); - if (version != NULL) *version = _version + 1; - if (name != NULL) *name = pkg->info; + if(name != NULL || version != NULL || release != NULL || disttag != NULL || distepoch != NULL || arch != NULL) { + backup_char(_eos); + if (eos != NULL) *eos = _eos+1; + if ((_arch = strrchr(pkg->info, '.')) != NULL) { + backup_char(_arch); + if (arch != NULL) *arch = _arch + 1; + if (distepoch != NULL || disttag != NULL || release != NULL || version != NULL || name != NULL) { + if((_distepoch = strchr(strrchr(pkg->provides, '-'), ':')) != NULL) { + tmp = strrchr(_distepoch+1, ']'); + backup_char(tmp); + tmp = strstr(pkg->info, _distepoch+1); + backup_char(tmp); + } + if(distepoch != NULL) *distepoch = _distepoch ? _distepoch+1 : NULL; + if (disttag != NULL || release != NULL || version != NULL || name != NULL) { + if ((_disttag = strrchr(pkg->info, '-')) != NULL && (strstr(pkg->provides, _disttag)) == NULL) { + backup_char(_disttag); + } else _disttag = NULL; + if (disttag != NULL) *disttag = _disttag ? _disttag + 1: NULL; + if ((release != NULL || version != NULL || name != NULL) && (_release = strrchr(pkg->info, '-')) != NULL) { + backup_char(_release); + if (release != NULL) *release = _release + 1; + if ((version != NULL || name != NULL) && (_version = strrchr(pkg->info, '-')) != NULL) { + backup_char(_version); + if (version != NULL) *version = _version + 1; + if (name != NULL) *name = pkg->info; + } } } } @@ -1872,7 +1874,6 @@ Pkg_epoch(pkg) int epoch; CODE: get_fullname_parts(pkg, NULL, &epoch, NULL, NULL, NULL, NULL, NULL, NULL); - restore_chars(); RETVAL = epoch; OUTPUT: RETVAL |