Skip to content

Commit 3f53814

Browse files
committed
Merge branch 'PHP-7.0' into PHP-7.1
2 parents 9f0f7c0 + 433976f commit 3f53814

File tree

3 files changed

+77
-1
lines changed

3 files changed

+77
-1
lines changed

NEWS

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,11 @@ PHP NEWS
99
. Fixed bug #72922 (COM called from PHP does not return out parameters).
1010
(Anatol)
1111

12-
-GD:
12+
- Dba:
13+
. Fixed bug #70825 (Cannot fetch multiple values with group in ini file).
14+
(cmb)
15+
16+
- GD:
1317
. Fixed bug #66005 (imagecopy does not support 1bit transparency on truecolor
1418
images). (cmb)
1519
. Fixed bug #72913 (imagecopy() loses single-color transparency on palette

ext/dba/libinifile/inifile.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ val_type inifile_fetch(inifile *dba, const key_type *key, int skip) {
250250
if (skip == -1 && dba->next.key.group && dba->next.key.name && !inifile_key_cmp(&dba->next.key, key)) {
251251
/* we got position already from last fetch */
252252
php_stream_seek(dba->fp, dba->next.pos, SEEK_SET);
253+
ln.key.group = estrdup(dba->next.key.group);
253254
} else {
254255
/* specific instance or not same key -> restart search */
255256
/* the slow way: restart and seacrch */

ext/dba/tests/bug70825.phpt

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
--TEST--
2+
Bug #70825 (Cannot fetch multiple values with group in ini file)
3+
--SKIPIF--
4+
<?php
5+
if (!extension_loaded('dba')) die('skip dba extension not available');
6+
if (!in_array('inifile', dba_handlers())) die('skip inifile handler not available');
7+
?>
8+
--FILE--
9+
<?php
10+
$filename = __DIR__ . DIRECTORY_SEPARATOR . 'bug70825.ini';
11+
12+
$db = dba_open($filename, 'n', 'inifile');
13+
dba_insert('foo', 23, $db);
14+
dba_insert('foo', 42, $db);
15+
dba_insert('foo', 1337, $db);
16+
var_dump(dba_fetch('foo', -1, $db));
17+
var_dump(dba_fetch('foo', -1, $db));
18+
var_dump(dba_fetch('foo', -1, $db));
19+
dba_close($db);
20+
unlink($filename);
21+
22+
$db = dba_open($filename, 'n', 'inifile');
23+
dba_insert(['foo', 'bar'], 23, $db);
24+
dba_insert(['foo', 'bar'], 42, $db);
25+
dba_insert(['foo', 'bar'], 1337, $db);
26+
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
27+
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
28+
var_dump(dba_fetch(['foo', 'bar'], -1, $db));
29+
dba_close($db);
30+
unlink($filename);
31+
32+
$db = dba_open($filename, 'n', 'inifile');
33+
dba_insert('[foo]bar', 23, $db);
34+
dba_insert('[foo]bar', 42, $db);
35+
dba_insert('[foo]bar', 1337, $db);
36+
var_dump(dba_fetch('[foo]bar', -1, $db));
37+
var_dump(dba_fetch('[foo]bar', -1, $db));
38+
var_dump(dba_fetch('[foo]bar', -1, $db));
39+
dba_close($db);
40+
unlink($filename);
41+
42+
$db = dba_open($filename, 'n', 'inifile');
43+
dba_insert('[foo]bar', 23, $db);
44+
dba_insert('[foo]bar', 42, $db);
45+
dba_insert('[foo]bar', 1337, $db);
46+
var_dump(dba_fetch('[foo]bar', 0, $db));
47+
var_dump(dba_fetch('[foo]bar', 1, $db));
48+
var_dump(dba_fetch('[foo]bar', 2, $db));
49+
dba_close($db);
50+
unlink($filename);
51+
?>
52+
==DONE==
53+
--EXPECT--
54+
string(2) "23"
55+
string(2) "42"
56+
string(4) "1337"
57+
string(2) "23"
58+
string(2) "42"
59+
string(4) "1337"
60+
string(2) "23"
61+
string(2) "42"
62+
string(4) "1337"
63+
string(2) "23"
64+
string(2) "42"
65+
string(4) "1337"
66+
==DONE==
67+
--CLEAN--
68+
<?php
69+
$filename = __DIR__ . DIRECTORY_SEPARATOR . 'bug70825.ini';
70+
unlink($filename);
71+
?>

0 commit comments

Comments
 (0)