summaryrefslogtreecommitdiff
path: root/src/util/vercmp.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/vercmp.c')
-rw-r--r--src/util/vercmp.c52
1 files changed, 35 insertions, 17 deletions
diff --git a/src/util/vercmp.c b/src/util/vercmp.c
index cc951988..29ab121d 100644
--- a/src/util/vercmp.c
+++ b/src/util/vercmp.c
@@ -1,8 +1,8 @@
/*
* vercmp.c
- *
+ *
* Copyright (c) 2002-2005 by Judd Vinet <jvinet@zeroflux.org>
- *
+ *
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
@@ -15,40 +15,58 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
* USA.
*/
#include "config.h"
-#include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <unistd.h>
-#include <limits.h>
-/* TODO this is probably not the best way to do this */
-#ifndef PATH_MAX
-#define PATH_MAX 1024
-#endif
+#include <stdio.h> /* printf */
+#include <string.h> /* strncpy */
#include <alpm.h>
+#define BASENAME "vercmp"
+
+#define MAX_LEN 255
+
+static void usage()
+{
+ fprintf(stderr, "usage: %s <ver1> <ver2>\n\n", BASENAME);
+ fprintf(stderr, "return values:\n");
+ fprintf(stderr, " < 0 : if ver1 < ver2\n");
+ fprintf(stderr, " 0 : if ver1 == ver2\n");
+ fprintf(stderr, " > 0 : if ver1 > ver2\n");
+}
+
int main(int argc, char *argv[])
{
- char s1[255] = "";
- char s2[255] = "";
+ char s1[MAX_LEN] = "";
+ char s2[MAX_LEN] = "";
int ret;
+ if(argc == 1) {
+ usage();
+ return(2);
+ }
+ if(argc > 1 &&
+ (strcmp(argv[1], "-h") == 0 || strcmp(argv[1], "--help") == 0
+ || strcmp(argv[1], "--usage") == 0)) {
+ usage();
+ return(0);
+ }
if(argc > 1) {
- strncpy(s1, argv[1], 255);
+ strncpy(s1, argv[1], MAX_LEN);
+ s1[MAX_LEN -1] = '\0';
}
if(argc > 2) {
- strncpy(s2, argv[2], 255);
+ strncpy(s2, argv[2], MAX_LEN);
+ s2[MAX_LEN -1] = '\0';
} else {
printf("0\n");
return(0);
}
-
+
ret = alpm_pkg_vercmp(s1, s2);
printf("%d\n", ret);
return(ret);