cvs: php4 /ext/standard browscap.c
| From: | Jay Smith | Date: | Fri, 30 May 2003 19:06:34 +0000 |
| Subject: | cvs: php4 /ext/standard browscap.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-21382@lists.php.net to get a copy of this message | ||
jay Fri May 30 15:06:34 2003 EDT
Modified files:
/php4/ext/standard browscap.c
Log:
Relying on longer matches seems to work better than
matching the whole string with ^...$.
Index: php4/ext/standard/browscap.c
diff -u php4/ext/standard/browscap.c:1.75 php4/ext/standard/browscap.c:1.76
--- php4/ext/standard/browscap.c:1.75 Tue May 27 13:24:59 2003
+++ php4/ext/standard/browscap.c Fri May 30 15:06:34 2003
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: browscap.c,v 1.75 2003/05/27 17:24:59 sniper Exp $ */
+/* $Id: browscap.c,v 1.76 2003/05/30 19:06:34 jay Exp $ */
#include "php.h"
#include "php_regex.h"
@@ -47,10 +47,9 @@
register int i, j;
char *t;
- t = (char *) malloc(Z_STRLEN_P(pattern)*2 + 3);
- t[0] = '^';
+ t = (char *) malloc(Z_STRLEN_P(pattern)*2 + 1);
- for (i=0, j=1; i<Z_STRLEN_P(pattern); i++, j++) {
+ for (i=0, j=0; i<Z_STRLEN_P(pattern); i++, j++) {
switch (Z_STRVAL_P(pattern)[i]) {
case '?':
t[j] = '.';
@@ -73,7 +72,6 @@
t[j++] = '*';
}
- t[j++]='$';
t[j]=0;
Z_STRVAL_P(pattern) = t;
Z_STRLEN_P(pattern) = j;
@@ -196,14 +194,9 @@
}
if (*found_browser_entry) {
- /* We've already found it, so don't compare to the default browser,
- because it will match anything. */
- if (!strcmp(Z_STRVAL_PP(browser_name), "^.*$")) {
- return 0;
- }
/* If we've found a possible browser, check it's length. Longer user
agent strings are assumed to be more precise, so use them. */
- else if (zend_hash_find(Z_ARRVAL_PP(found_browser_entry), "browser_name_regex",
sizeof("browser_name_regex"), (void**) ¤t) == FAILURE) {
+ if (zend_hash_find(Z_ARRVAL_PP(found_browser_entry), "browser_name_regex",
sizeof("browser_name_regex"), (void**) ¤t) == FAILURE) {
return 0;
}
else if (Z_STRLEN_PP(current) > Z_STRLEN_PP(browser_name)) {