summaryrefslogtreecommitdiff
path: root/noncore/settings/aqpkg/version.cpp
Unidiff
Diffstat (limited to 'noncore/settings/aqpkg/version.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/settings/aqpkg/version.cpp19
1 files changed, 12 insertions, 7 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 @@
20 */ 20 */
21#include <stdio.h> 21#include <stdio.h>
22#include <stdlib.h> 22#include <stdlib.h>
23#include <ctype.h> 23#include <ctype.h>
24#include <string.h> 24#include <string.h>
25 25
26# define _(Text) Text 26#include <qobject.h>
27
28//# define _(Text) Text
27 29
28class versionrevision 30class versionrevision
29{ 31{
30public: 32public:
31 versionrevision() 33 versionrevision()
32 { 34 {
@@ -106,29 +108,32 @@ int versionsatisfied3(const struct versionrevision *it,
106 if (strcmp(op, "<<") == 0) 108 if (strcmp(op, "<<") == 0)
107 return r < 0; 109 return r < 0;
108 if (strcmp(op, ">>") == 0) 110 if (strcmp(op, ">>") == 0)
109 return r > 0; 111 return r > 0;
110 if (strcmp(op, "=") == 0) 112 if (strcmp(op, "=") == 0)
111 return r == 0; 113 return r == 0;
112 fprintf(stderr, "unknown operator: %s", op); 114// fprintf(stderr, "unknown operator: %s", op);
113 115
114 exit(1); 116 exit(1);
115} 117}
116 118
117const char *parseversion(struct versionrevision *rversion, const char *string) 119const char *parseversion(struct versionrevision *rversion, const char *string)
118{ 120{
119 char *hyphen, *colon, *eepochcolon; 121 char *hyphen, *colon, *eepochcolon;
120 unsigned long epoch; 122 unsigned long epoch;
121 123
122 if (!*string) return _("version string is empty"); 124 if ( !*string )
125 return QObject::tr( "Version string is empty." );
123 126
124 colon= strchr(string,':'); 127 colon= strchr(string,':');
125 if (colon) { 128 if (colon) {
126 epoch= strtoul(string,&eepochcolon,10); 129 epoch= strtoul(string,&eepochcolon,10);
127 if (colon != eepochcolon) return _("epoch in version is not number"); 130 if ( colon != eepochcolon )
128 if (!*++colon) return _("nothing after colon in version number"); 131 return QObject::tr( "Epoch in version is not number." );
132 if ( !*++colon )
133 return QObject::tr( "Nothing after colon in version number." );
129 string= colon; 134 string= colon;
130 rversion->epoch= epoch; 135 rversion->epoch= epoch;
131 } else { 136 } else {
132 rversion->epoch= 0; 137 rversion->epoch= 0;
133 } 138 }
134 139
@@ -164,19 +169,19 @@ int compareVersions( const char *v1, const char *v2 )
164{ 169{
165 const char *err; 170 const char *err;
166 versionrevision ver, ref; 171 versionrevision ver, ref;
167 172
168 err = parseversion(&ref, v1); 173 err = parseversion(&ref, v1);
169 if (err) { 174 if (err) {
170 fprintf(stderr, "Invalid version `%s': %s\n", v2, err); 175// fprintf(stderr, "Invalid version `%s': %s\n", v2, err);
171 return -2; 176 return -2;
172 } 177 }
173 178
174 err = parseversion(&ver, v2); 179 err = parseversion(&ver, v2);
175 if (err) { 180 if (err) {
176 fprintf(stderr, "Invalid version `%s': %s\n", v1, err); 181// fprintf(stderr, "Invalid version `%s': %s\n", v1, err);
177 return -2; 182 return -2;
178 } 183 }
179 184
180 if ( versionsatisfied3( &ver, &ref, "=" ) ) 185 if ( versionsatisfied3( &ver, &ref, "=" ) )
181 return 0; 186 return 0;
182 else if ( versionsatisfied3( &ver, &ref, "<" ) ) 187 else if ( versionsatisfied3( &ver, &ref, "<" ) )