cvs: php4(PHP_4_2_0) /ext/standard versioning.c
| From: | Derick Rethans | Date: | Mon, 24 Jun 2002 08:24:21 +0000 |
| Subject: | cvs: php4(PHP_4_2_0) /ext/standard versioning.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-12484@lists.php.net to get a copy of this message | ||
derick Mon Jun 24 04:24:21 2002 EDT
Modified files: (Branch: PHP_4_2_0)
/php4/ext/standard versioning.c
Log:
- MFH
Index: php4/ext/standard/versioning.c
diff -u php4/ext/standard/versioning.c:1.8 php4/ext/standard/versioning.c:1.8.2.1
--- php4/ext/standard/versioning.c:1.8 Thu Feb 28 03:26:50 2002
+++ php4/ext/standard/versioning.c Mon Jun 24 04:24:21 2002
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: versioning.c,v 1.8 2002/02/28 08:26:50 sebastian Exp $ */
+/* $Id: versioning.c,v 1.8.2.1 2002/06/24 08:24:21 derick Exp $ */
#include <stdio.h>
#include <sys/types.h>
@@ -105,12 +105,21 @@
PHPAPI int
php_version_compare(const char *orig_ver1, const char *orig_ver2)
{
- char *ver1 = php_canonicalize_version(orig_ver1);
- char *ver2 = php_canonicalize_version(orig_ver2);
+ char *ver1;
+ char *ver2;
char *p1, *p2, *n1, *n2;
long l1, l2;
int compare = 0;
+ if (!*orig_ver1 || !*orig_ver2) {
+ if (!*orig_ver1 && !*orig_ver2) {
+ return 0;
+ } else {
+ return *orig_ver1 ? 1 : -1;
+ }
+ }
+ ver1 = php_canonicalize_version(orig_ver1);
+ ver2 = php_canonicalize_version(orig_ver2);
p1 = n1 = ver1;
p2 = n2 = ver2;
while (*p1 && *p2 && n1 && n2) {
@@ -187,22 +196,22 @@
if (argc == 2) {
RETURN_LONG(compare);
}
- if (!strcmp(op, "<") || !strcmp(op, "lt")) {
+ if (!strncmp(op, "<", op_len) || !strncmp(op, "lt", op_len)) {
RETURN_BOOL(compare == -1);
}
- if (!strcmp(op, "<=") || !strcmp(op, "le")) {
+ if (!strncmp(op, "<=", op_len) || !strncmp(op, "le", op_len)) {
RETURN_BOOL(compare != 1);
}
- if (!strcmp(op, ">") || !strcmp(op, "gt")) {
+ if (!strncmp(op, ">", op_len) || !strncmp(op, "gt", op_len)) {
RETURN_BOOL(compare == 1);
}
- if (!strcmp(op, ">=") || !strcmp(op, "ge")) {
+ if (!strncmp(op, ">=", op_len) || !strncmp(op, "ge", op_len)) {
RETURN_BOOL(compare != -1);
}
- if (!strcmp(op, "==") || !strcmp(op, "=") || !strcmp(op, "eq")) {
+ if (!strncmp(op, "==", op_len) || !strncmp(op, "=", op_len) || !strncmp(op,
"eq", op_len)) {
RETURN_BOOL(compare == 0);
}
- if (!strcmp(op, "!=") || !strcmp(op, "<>") || !strcmp(op,
"ne")) {
+ if (!strncmp(op, "!=", op_len) || !strncmp(op, "<>", op_len) ||
!strncmp(op, "ne", op_len)) {
RETURN_BOOL(compare != 0);
}
RETURN_NULL();