Skip to content
D library for parsing .ini-like files used in Freedesktop systems
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
source/inilike
.gitignore
.travis.yml
LICENSE_1_0.txt
README.md
dub.json
travis-script.sh

README.md

Inilike

Inilike is D library for parsing .ini-like files used in Freedesktop systems in various places (.desktop files, icon themes, mimeapps.list, mimeinfo.cache, trashcan files on freedesktop, etc.)

Build Status Coverage Status

Online documentation

Note: the original purpose of this library is to serve as dependency for my other projects, e.g. desktopfile and icontheme. It may be not suitable to save configuration files using this library. You have been warned.

Format

Freedesktop specifications use the format which is sometimes referred to as .ini-like because it's very similiar to INI used in MS Windows with small differences:

  1. Comments start with '#', not ';'.
  2. Each comment is always placed on its own line. Key-value can't be mixed with a comment on the same line.

Example:

# Comment
[Group name]
Key=Value
# Comment inside group
AnotherKey=Value

[Another group]
Key=English value
Key[fr_FR]=Francais value

Localized values lookup

The localized value is the value associated with the localized key. Localized keys look like this:

keyname[locale]

where locale is the POSIX locale with the charset part dropped.

Inilike library has support for lookup of localized values, using the algorithm described in Desktop Entry Specification.

Subclassing IniLikeFile

IniLikeFile is the base class for file of ini-like format. To change its functionality (validation and other behavior) it needs to be subclassed. See example in unittests that shows which functions can be overridden.

You can’t perform that action at this time.