]> granicus.if.org Git - php/commitdiff
Make browscap parameter names lowercase
authorStanislav Malyshev <stas@php.net>
Tue, 25 Jul 2000 18:50:50 +0000 (18:50 +0000)
committerStanislav Malyshev <stas@php.net>
Tue, 25 Jul 2000 18:50:50 +0000 (18:50 +0000)
Fix . handling in browscap names

main/configuration-parser.y

index 65cdf3e766c6996267dc2d20126e6eed7fb95fef..374d680bd7a0bc09346953b53d800160b8a0de41 100644 (file)
@@ -324,13 +324,14 @@ static void convert_browscap_pattern(zval *pattern)
        char *t;
 
        for (i=0; i<pattern->value.str.len; i++) {
-               if (pattern->value.str.val[i]=='*' || pattern->value.str.val[i]=='?') {
+               if (pattern->value.str.val[i]=='*' || pattern->value.str.val[i]=='?' || pattern->value.str.val[i]=='.') {
                        break;
                }
        }
 
        if (i==pattern->value.str.len) { /* no wildcards */
                pattern->value.str.val = zend_strndup(pattern->value.str.val, pattern->value.str.len);
+               return;
        }
 
        t = (char *) malloc(pattern->value.str.len*2);
@@ -457,14 +458,18 @@ statement:
                                case PARSING_MODE_BROWSCAP:
                                        if (current_section) {
                                                zval *new_property;
+                                               char *new_key;
 
                                                new_property = (zval *) malloc(sizeof(zval));
                                                INIT_PZVAL(new_property);
                                                new_property->value.str.val = $3.value.str.val;
                                                new_property->value.str.len = $3.value.str.len;
                                                new_property->type = IS_STRING;
-                                               /* zend_str_tolower(new_property->value.str.val, new_property->value.str.len); */
-                                               zend_hash_update(current_section->value.obj.properties, $1.value.str.val, $1.value.str.len+1, &new_property, sizeof(zval *), NULL);
+                                               
+                                               new_key = zend_strndup($1.value.str.val, $1.value.str.len);
+                                               zend_str_tolower(new_key,$1.value.str.len);
+                                               zend_hash_update(current_section->value.obj.properties, new_key, $1.value.str.len+1, &new_property, sizeof(zval *), NULL);
+                                               free(new_key);
                                        }
                                        break;
                                case PARSING_MODE_STANDALONE: {