<commit_before>IniFile is an Arduino library for parsing INI files. The format is
similar to that seen in Microsoft .ini files but the implementation is
completely independent. IniFile is designed to use minimal memory
requirements, and the only buffer used is one supplied by the user,
thus the user remains in charge of memory usage.

The ini file is separated into sections, where the section names are
written inside square brackets. If you don't wish to use sections then
pass a NULL pointer for the section name. Under each section are a set
of key-value pairs, separated by an equals sign. The formatting can be
slopppy. Spaces around keys and values are ignored, as are extra
spaces inside the key, ie "hosts allow" and "hosts allow" are
equivalent, but "hostsallow" is not. Extra whitespace inside the value
string is preserved; if leading or trailing whitespace is important
you must quote the value string inside the ini file, and you must
strip out the quotes yourself. If multiple entries for the same key
exist inside the selected section (if using) then only the first value
is returned. If a section is defined more than once only the first is
used. The ini file can contain comments, which begin with a semicolon
(;) or hash (#).

Example file format:

-----------------------------------------8<---------------------
; Semi-colon comment
[network]
mac = 01:23:45:67:89:AB

# hash comment, leading spaces below
 gateway = 192.168.1.1

# extraneous spaces before and after key and value
 ip   =   192.168.1.2             

hosts allow = example.com

# A similarly-named section
[network2]
mac = ee:ee:ee:ee:ee:ee
subnet mask=255.255.255.0

; Extra whitespace in keys and around the key and value is permitted
; (and ignored)
  hosts  allow =    sloppy.example.com  
<commit_msg>Corrected description for the new line-based implementation.<commit_after>IniFile is an Arduino library for parsing INI files. The format is
similar to that seen in Microsoft .ini files but the implementation is
completely independent. IniFile is designed to use minimal memory
requirements, and the only buffer used is one supplied by the user,
thus the user remains in charge of memory usage.

The ini file is separated into sections, where the section names are
written inside square brackets. If you don't wish to use sections then
pass a NULL pointer for the section name. Under each section are a set
of key-value pairs, separated by an equals sign. Spaces around keys
and values are ignored, but extra spaces inside the key are
significant, ie "hostsallow", "hosts allow" and "hosts allow" are not
equivalent. Whitespace inside the value string is preserved; if
leading or trailing whitespace is important you must quote the value
string inside the ini file, and you must strip out the quotes
yourself. If multiple entries for the same key exist inside the
selected section (if using) then only the first value is returned. If
a section is defined more than once only the first is used. The ini
file can contain comments, which begin with a semicolon (;) or hash
(#). The user-supplied buffer must be large enough to accomodate the
longest line in the file.

Example file format:

-----------------------------------------8<---------------------
; Semi-colon comment
[network]
mac = 01:23:45:67:89:AB

# hash comment, leading spaces below
 gateway = 192.168.1.1

# extraneous spaces before and after key and value
 ip   =   192.168.1.2             

hosts allow = example.com

# A similarly-named section
[network2]
mac = ee:ee:ee:ee:ee:ee
subnet mask=255.255.255.0

; Extra whitespace around the key and value is permitted
; (and ignored)
  hosts allow =    sloppy.example.com  

{'fraction_non_alphanumeric': 0.08231458842705787, 'fraction_numerical': 0.020646563433849498, 'mean_word_length': 3.4793187347931873, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 6, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6216737', 'n_tokens_mistral': 1022, 'n_tokens_neox': 928, 'n_words': 541}