[basic] basicval = bar longval = 12345 with.dot = fooobar boolon = on booltrue = true boolyes = yes booloff = off boolfalse = false boolnone = none boolno = no string = asdadfsdjkslkj ¡@£$$ { }[ ]/%#¤ sqstring = 'adsasdadasdasd' dqstring = "asdadfsdjkslkj ¡@£$$ { } !^~|¥¥{[()/)&/% ¤ # #" php_constant = E_WARNING user_constant = TEST_CONSTANT [basic with whitespace] basicval = bar longval = 12345 with.dot = fooobar boolon = on booltrue = true boolyes = yes booloff = off boolfalse = false boolnone = none boolno = no sqstring = 'adsasdadasdasd' dqstring = "asdadfsdjkslkj ¡@£$$€¥¥{[()/)&/%#¤" php_constant = E_WARNING [comments] ; some comment ; some comment with whitespace somecomment = comment follows;aaa@bbb ; comment here ; [variables] var1 = ${basicval} var2 = ${basicval}/foo var3 = foo/${basicval} var4 = foo/${basicval}/foo quoted_var1 = "${basicqval}" quoted_var2 = "${basicqval}/foo" quoted_var3 = "foo/${basicqval}" quoted_var4 = "foo/${basicqval}/foo" [offset values] foo1[] = "basic offset 1" foo1[ ] = "basic offset 2" foo2[123] = "long offset" foo3[abc] = "string offset" foo4[""] = "quoted offset 1" foo4[" "] = "quoted offset 2" foo4["sqfoobar"] = "quoted string offset" foo4['dqfoobar'] = "single quoted offset" foo6[${basicval}] = "variable" foo6[${basicval}/foo] = "variable with string 1" foo6[foo/${basicval}] = "variable with string 2" foo6[foo/${basicval}/foo] = "variable with string 3" foo7["${basicqval}"] = "quoted variable 1" foo7["${basicqval}/foo"] = "quoted variable 2" foo7["foo/${basicqval}"] = "quoted variable 3" foo7[ "foo/${basicqval}/foo" ] = "quoted variable 4" [non value] novalue_option1 = novalue_option2= novalue_option3 = novalue_option4= novalue_option4[] = novalue_option4[]= novalue_option4[]= ["Quoted strings and variables in sections"] [${basicval}] [${undefinedval:-foo}] [${basicval}/foo] [foo/${basicval}] [foo/${basicval}/foo] ["${basicqval}"] ["${undefinedval:-foo}"] ["${basicqval}/foo"] ["foo/${basicqval}"] ["foo/${basicqval}/foo"] [PATH=${basicval}/no/quotes] ; Invalid! ;[PATH="${basicval}/path/quoted"] ["PATH=${basicval}/all/quoted"] ; This is test for bug #29306 [01] e=e f=f [02] g=g h=h [1] a=a b=b [2] c=c d=d [0815] bla=bla ;Test for bug #43923 [bug #43923] curly1 = { curly2 = "{" curly3 = '{' ;Test for bug #44019 [bug #44019] concatenation_before = TEST_CONSTANT "+some_text_after" concatenation_middle = "some_text_before+" TEST_CONSTANT "+some_text_after" concatenation_after = "some_text_before+" TEST_CONSTANT concatenation_nows_before = TEST_CONSTANT"+some_text_after" concatenation_nows_middle = "some_text_before+"TEST_CONSTANT"+some_text_after" concatenation_nows_after = "some_text_before+"TEST_CONSTANT ;Test for bug #43915 [bug #43915] ini_with-hyphen = with hyphen and underscore ini.with-hyphen = dot and hyphen ini-with.hyphen = hyphen and dot [windows paths] winpath1="c:\some windows\path\test\new\r\quote \" here\single ' quote\some more" winpath2="special case\" [characters escaping] ; Note: single-quoted strings don't support characters escaping, and the line below ; is single-quoted string, followed by unquoted text, followed by single-quoted '.' single_quoted = 'She said \'Exactly my point\'.' double_quoted = "She said \"Exactly my point\"." double_quoted_2 = "Use \\\" to escape double quote" double_quoted_multiline = "Lorem \"ipsum\""" dolor" dollar_test = "\${test}" unescaped ="\n\r\t" [variable-fallback] defined1 = "Hello, ${basicval:-world}!" defined2 = ${basicval:-123} falsy = ${falsyval:-hi} undefined = "Hello, ${undefined_var:-world}!" empty = ${emptyval:-foo} spaces = ${undefined_var:-hi there} exclamation = ${hi_is_this_undefined:-"no, this is fallback!"} nested = ${undefined_var:-${also_undefined:-${undefined_too:-hello}}} hostname = localhost:${undefined_var:-8080} outer_quotes = "foo:${undefined_var:-bar}" number_value = ${undefined_var:-12345} true_value = ${undefined_var:-true} false_value = ${undefined_var:-false} null_value = ${undefined_var:-null} empty1 = ${undefined_var:-} empty2 = ${undefined} constant = ${undefined:-TEST_CONSTANT} INI:WITH:COLON = ${INI:WITH:COLON:-} NONEXISTENT:INI:WITH:COLON = ${NONEXISTENT:INI:WITH:COLON:-fallback}