summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/version.cpp
Side-by-side diff
Diffstat (limited to 'noncore/settings/aqpkg/version.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/aqpkg/version.cpp39
1 files changed, 22 insertions, 17 deletions
diff --git a/noncore/settings/aqpkg/version.cpp b/noncore/settings/aqpkg/version.cpp
index e836da1..59e6f3f 100644
--- a/noncore/settings/aqpkg/version.cpp
+++ b/noncore/settings/aqpkg/version.cpp
@@ -20,13 +20,15 @@
*/
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
-# define _(Text) Text
+#include <qobject.h>
+
+//# define _(Text) Text
class versionrevision
{
public:
versionrevision()
{
@@ -41,20 +43,20 @@ public:
void setVersion( const char *str )
{
version = new char[(strlen(str)+1)];
strcpy( version, str );
}
-
+
unsigned long epoch;
char *version;
const char *revision;
const char *familiar_revision;
-};
+};
-static int verrevcmp(const char *val, const char *ref)
+static int verrevcmp(const char *val, const char *ref)
{
int vc, rc;
long vl, rl;
const char *vp, *rp;
if (!val) val= "";
@@ -79,26 +81,26 @@ static int verrevcmp(const char *val, const char *ref)
if (!*val) return -1;
if (!*ref) return +1;
}
}
int versioncompare(const struct versionrevision *version,
- const struct versionrevision *refversion)
+ const struct versionrevision *refversion)
{
int r;
if (version->epoch > refversion->epoch) return 1;
if (version->epoch < refversion->epoch) return -1;
r= verrevcmp(version->version,refversion->version); if (r) return r;
r= verrevcmp(version->revision,refversion->revision); if (r) return r;
return verrevcmp(version->familiar_revision,refversion->familiar_revision);
}
int versionsatisfied3(const struct versionrevision *it,
const struct versionrevision *ref,
- const char *op)
+ const char *op)
{
int r;
r= versioncompare(it,ref);
if (strcmp(op, "<=") == 0 || strcmp(op, "<") == 0)
return r <= 0;
if (strcmp(op, ">=") == 0 || strcmp(op, ">") == 0)
@@ -106,29 +108,32 @@ int versionsatisfied3(const struct versionrevision *it,
if (strcmp(op, "<<") == 0)
return r < 0;
if (strcmp(op, ">>") == 0)
return r > 0;
if (strcmp(op, "=") == 0)
return r == 0;
- fprintf(stderr, "unknown operator: %s", op);
+// fprintf(stderr, "unknown operator: %s", op);
exit(1);
}
-const char *parseversion(struct versionrevision *rversion, const char *string)
+const char *parseversion(struct versionrevision *rversion, const char *string)
{
char *hyphen, *colon, *eepochcolon;
unsigned long epoch;
- if (!*string) return _("version string is empty");
-
+ if ( !*string )
+ return QObject::tr( "Version string is empty." );
+
colon= strchr(string,':');
if (colon) {
epoch= strtoul(string,&eepochcolon,10);
- if (colon != eepochcolon) return _("epoch in version is not number");
- if (!*++colon) return _("nothing after colon in version number");
+ if ( colon != eepochcolon )
+ return QObject::tr( "Epoch in version is not number." );
+ if ( !*++colon )
+ return QObject::tr( "Nothing after colon in version number." );
string= colon;
rversion->epoch= epoch;
} else {
rversion->epoch= 0;
}
@@ -153,43 +158,43 @@ const char *parseversion(struct versionrevision *rversion, const char *string)
/*
fprintf(stderr,"Parsed version: %lu, %s, %s, %s\n",
rversion->epoch,
rversion->version,
rversion->revision,
rversion->familiar_revision);
-*/
+*/
return 0;
}
int compareVersions( const char *v1, const char *v2 )
{
const char *err;
versionrevision ver, ref;
err = parseversion(&ref, v1);
if (err) {
- fprintf(stderr, "Invalid version `%s': %s\n", v2, err);
+// fprintf(stderr, "Invalid version `%s': %s\n", v2, err);
return -2;
}
err = parseversion(&ver, v2);
if (err) {
- fprintf(stderr, "Invalid version `%s': %s\n", v1, err);
+// fprintf(stderr, "Invalid version `%s': %s\n", v1, err);
return -2;
}
if ( versionsatisfied3( &ver, &ref, "=" ) )
return 0;
else if ( versionsatisfied3( &ver, &ref, "<" ) )
return -1;
else
return 1;
}
/*
-int main(int argc, char *argv[])
+int main(int argc, char *argv[])
{
const char *err;
versionrevision ver, ref;
if (argc < 4) {
fprintf(stderr, "usage: %s: version op refversion\n", argv[0]);
@@ -198,13 +203,13 @@ int main(int argc, char *argv[])
err = parseversion(&ver, argv[1]);
if (err) {
fprintf(stderr, "Invalid version `%s': %s\n", argv[1], err);
return 2;
}
-
+
err = parseversion(&ref, argv[3]);
if (err) {
fprintf(stderr, "Invalid version `%s': %s\n", argv[3], err);
return 2;
}