libopkg: do not modify original version string in parse_version()
[oweals/opkg-lede.git] / libopkg / pkg_parse.c
index ae52deb2556766211e0e19062340e3030fe1af74..31e7309c0f43325767e7fa3938257317ecc8ee56 100644 (file)
@@ -84,12 +84,12 @@ int parse_version(pkg_t * pkg, const char *vstr)
        rev = strrchr(vstr, '-');
 
        if (rev) {
-               *rev++ = '\0';
-               pkg_set_string(pkg, PKG_REVISION, rev);
+               pkg_set_string(pkg, PKG_REVISION, rev + 1);
+               pkg_set_raw(pkg, PKG_VERSION, vstr, rev - vstr - 1);
+       } else {
+               pkg_set_string(pkg, PKG_VERSION, vstr);
        }
 
-       pkg_set_string(pkg, PKG_VERSION, vstr);
-
        return 0;
 }