1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
;Comments are started with '#' or ';'
; Inline comments are allowed.
; EMPTY/BLANK lines are not processed!
;Global variables are allowed
# Parameters without section are global variables.
global1 = 11
global2 = aaa
; The First character of Section name should be alphanumerical, but
# another caharacters can be Alphanumerical or dot(.)/underscore(_)/hyphen(-)/space(' ')
[Sections.are_ASCII-alnum characters]
;Parameter values in itself:
# can be ASCII Alphanumerical only, without any SPACE or TAB character.
# Should start with alphanumerical, and from the second character,
# can contain (with dot(.) or underscore(_) or hyphen(-))
# If you want to use other characters, you should enclose them between two double-quotation-mark(") sign.
parameter = value-in_itself-are-Alnum.ascii
;Parameter names are ASCII alphanumerical only, with additional dot(.) or underscore(_) or hyphen(-) or suare-bracket([/]) characters.
# Square-brackets([/]) are allowed for arrays.
parameter_names.also-ASCII = value
[Section 2]
;For other value characters:
# The Space, or any other special characters are allowed only between two double-quotation-mark sign.
# Escaped characters, (\n, \t, etc.) or multi-byte characters (é, €, カ, ⠋, ঘঃ, 😍) are allowed here.
parameter2 = "I like \t emojis 😍 but, don't like mosquitoes カ ! :)"
; Even! Multiline Parameters are supported:
parameter3 = "With double quotation mark \
I can write multiline values, but I should \
escapse the trailing newline with '\' sign!"
[E X A M P L E S] ;comment #OK
abcdefgh ;WRONG
abcdefgh = ;CORRECT
abcdefgh == ;WRONG
abcdefgh = "==" ;CORRECT
=abcd ;ERROR
= ;xxxx ;ERROR
param=value;inline_comment #OK
param = value #OK
param = value1 value2 #ERROR
param = value1\ value2 #ERROR
paramß = value1_value2 #ERROR
[example ;section] #WRONG
[example \;section] #WRONG
param = "qwerty \"qwerty\" abcdefh " ;CORRECT
param = "qwerty"qwerty ;WRONG
param = "qwerty" ;OK
array[0123] = "asdasd" #OK
array [1234] = dfgdfg #WRONG
array[_] = "jkljkl" #OK
array[abc] = aaaa #OK
array.abc = aaaa #OK
array[abc] = "" #OK
#### qwerty $ۧ qwerty #### ;OK
test = -1.1 #OK
test2 = "-1.1" #OK
test3 = _aaa #WRONG
test4 = aaa_ #OK
test5 = .aaa #WRONG
test6 = aaa. #OK
test6 = aa.a #OK
[server_options] ;OK
server_ = ;xxxx ;OK
server_ = server.example.com ;OK
_server_= server.example.com ;ERROR
ip = 127.0.0.1 ;OK
ip = "127.0.0.1" ;OK
1024 = xxxxx ;OK
1024 = 2048 ;OK (but only syntactically :)
|