]> granicus.if.org Git - php/commitdiff
Make fgets not use maximal buffer length always, but shrink buffer
authorStanislav Malyshev <stas@php.net>
Thu, 29 Jun 2000 13:34:55 +0000 (13:34 +0000)
committerStanislav Malyshev <stas@php.net>
Thu, 29 Jun 2000 13:34:55 +0000 (13:34 +0000)
if it's too big.

ext/standard/file.c

index d23a3a7d26c5159a5d3eaee0970db1af848f66eb..99ae1969041e0f19c2dcc16365145ea68d4d1f45 100644 (file)
@@ -990,6 +990,10 @@ PHP_FUNCTION(fgets)
                } else {
                        return_value->value.str.val = buf;
                        return_value->value.str.len = strlen(return_value->value.str.val);
+                       /* resize buffer if it's much larger than the result */
+                       if(return_value->value.str.len < len/2) {
+                               return_value->value.str.val = erealloc(buf,return_value->value.str.len);
+                       }
                }
                return_value->type = IS_STRING;
        }