aboutsummaryrefslogtreecommitdiff
path: root/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'libraries')
-rw-r--r--libraries/README.md34
-rw-r--r--libraries/katabasis/README.md6
-rw-r--r--libraries/katabasis/acknowledgements.md38
-rw-r--r--libraries/optional-bare/CMakeLists.txt5
-rw-r--r--libraries/optional-bare/LICENSE.txt23
-rw-r--r--libraries/optional-bare/README.md5
-rw-r--r--libraries/optional-bare/include/nonstd/optional508
-rw-r--r--libraries/tomlc99/README.md25
8 files changed, 50 insertions, 594 deletions
diff --git a/libraries/README.md b/libraries/README.md
index 946e34d8..8e4bd61b 100644
--- a/libraries/README.md
+++ b/libraries/README.md
@@ -3,6 +3,7 @@
This folder has third-party or otherwise external libraries needed for other parts to work.
## classparser
+
A simplistic parser for Java class files.
This library has served as a base for some (much more full-featured and advanced) work under NDA for AVG. It, however, should NOT be confused with that work.
@@ -15,24 +16,22 @@ A performance optimization daemon.
See [github repo](https://github.com/FeralInteractive/gamemode).
-BSD licensed
+BSD-3-Clause licensed
## hoedown
+
Hoedown is a revived fork of Sundown, the Markdown parser based on the original code of the Upskirt library by Natacha Porté.
See [github repo](https://github.com/hoedown/hoedown).
-## iconfix
-This was originally part of the razor-qt project and the Qt toolkit, respecitvely. Its sole purpose is to reimplement Qt's icon loading logic to prevent it from using any platform plugins that could break icon loading.
-
-Licensed under LGPL 2.1
-
## javacheck
+
Simple Java tool that prints the JVM details - version and platform bitness.
Do what you want with it. It is so trivial that noone cares.
## Katabasis
+
Oauth2 library customized for Microsoft authentication.
This is a fork of the [O2 library](https://github.com/pipacs/o2).
@@ -40,9 +39,11 @@ This is a fork of the [O2 library](https://github.com/pipacs/o2).
MIT licensed.
## launcher
+
Java launcher part for Minecraft.
It:
+
* Starts a process
* Waits for a launch script on stdin
* Consumes the launch script you feed it
@@ -56,6 +57,7 @@ A `legacy` and `onesix` launchers are available.
* `onesix` can handle launching any Minecraft version, at the cost of some extra features `legacy` enables (custom window icon and title).
Example (some parts have been censored):
+
```
mod legacyjavafixer-1.0
mainClass net.minecraft.launchwrapper.Launch
@@ -136,6 +138,7 @@ launcher onesix
Available under `GPL-3.0-only` (with classpath exception), sublicensed from its original `Apache-2.0` codebase
## libnbtplusplus
+
libnbt++ is a free C++ library for Minecraft's file format Named Binary Tag (NBT). It can read and write compressed and uncompressed NBT files and provides a code interface for working with NBT data.
See [github repo](https://github.com/ljfa-ag/libnbtplusplus).
@@ -143,6 +146,7 @@ See [github repo](https://github.com/ljfa-ag/libnbtplusplus).
Available either under LGPL version 3 or later.
## LocalPeer
+
Library for making only one instance of the application run at all times.
BSD licensed, derived from [QtSingleApplication](https://github.com/qtproject/qt-solutions/tree/master/qtsingleapplication).
@@ -155,28 +159,21 @@ Canonical implementation of the murmur2 hash, taken from [SMHasher](https://gith
Public domain (the author disclaimed the copyright).
-## optional-bare
-
-A simple single-file header-only version of a C++17-like optional for default-constructible, copyable types, for C++98 and later.
-
-Imported from: https://github.com/martinmoene/optional-bare/commit/0bb1d183bcee1e854c4ea196b533252c51f98b81
-
-Boost Software License - Version 1.0
-
## quazip
-A zip manipulation library, forked for MultiMC's use.
+A zip manipulation library.
-LGPL 2.1
+LGPL 2.1 with linking exception.
## rainbow
+
Color functions extracted from [KGuiAddons](https://inqlude.org/libraries/kguiaddons.html). Used for adaptive text coloring.
Available either under LGPL version 2.1 or later.
## systeminfo
-A MultiMC-specific library for probing system information.
+A PolyMC-specific library for probing system information.
Apache 2.0
@@ -190,7 +187,6 @@ Licenced under the MIT licence.
## xz-embedded
-Tiny implementation of LZMA2 de/compression. This format is only used by Forge to save bandwidth.
+Tiny implementation of LZMA2 de/compression. This format was only used by Forge to save bandwidth.
Public domain.
-
diff --git a/libraries/katabasis/README.md b/libraries/katabasis/README.md
index 08f3c9d1..621446e1 100644
--- a/libraries/katabasis/README.md
+++ b/libraries/katabasis/README.md
@@ -8,9 +8,9 @@ It may be possible to backport some of the changes to O2 in the future, but for
Notes to contributors:
- * Please follow the coding style of the existing source, where reasonable
- * Code contributions are released under Simplified BSD License, as specified in LICENSE. Do not contribute if this license does not suit your code
- * If you are interested in working on this, come to the PolyMC Discord server and talk first
+* Please follow the coding style of the existing source, where reasonable
+* Code contributions are released under Simplified BSD License, as specified in LICENSE. Do not contribute if this license does not suit your code
+* If you are interested in working on this, come to the PolyMC Discord server and talk first
## Installation
diff --git a/libraries/katabasis/acknowledgements.md b/libraries/katabasis/acknowledgements.md
index c1c8a3d4..ccc7c263 100644
--- a/libraries/katabasis/acknowledgements.md
+++ b/libraries/katabasis/acknowledgements.md
@@ -1,4 +1,4 @@
-# O2 library by Akos Polster and contributors
+## O2 library by Akos Polster and contributors
[The origin of this fork.](https://github.com/pipacs/o2)
@@ -26,17 +26,16 @@
> OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-# SimpleCrypt by Andre Somers
+## SimpleCrypt by Andre Somers
Cryptographic methods for Qt.
> Copyright (c) 2011, Andre Somers
> All rights reserved.
->
+>
> Redistribution and use in source and binary forms, with or without
> modification, are permitted provided that the following conditions are met:
->
+>
> * Redistributions of source code must retain the above copyright
> notice, this list of conditions and the following disclaimer.
> * Redistributions in binary form must reproduce the above copyright
@@ -45,7 +44,7 @@ Cryptographic methods for Qt.
> * Neither the name of the Rathenau Instituut, Andre Somers nor the
> names of its contributors may be used to endorse or promote products
> derived from this software without specific prior written permission.
->
+>
> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
> ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
> WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
@@ -57,54 +56,53 @@ Cryptographic methods for Qt.
> (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
> SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Mandeep Sandhu <mandeepsandhu.chd@gmail.com>
+## Mandeep Sandhu <mandeepsandhu.chd@gmail.com>
Configurable settings storage, Twitter XAuth specialization, new demos, cleanups.
> "Hi Akos,
->
+>
> I'm writing this mail to confirm that my contributions to the O2 library, available here https://github.com/pipacs/o2, can be freely distributed according to the project's license (as shown in the LICENSE file).
->
+>
> Regards,
> -mandeep"
-# Sergey Gavrushkin <https://github.com/ncux>
+## Sergey Gavrushkin <https://github.com/ncux>
FreshBooks specialization
-# Theofilos Intzoglou <https://github.com/parapente>
+## Theofilos Intzoglou <https://github.com/parapente>
Hubic specialization
-# Dimitar
+## Dimitar
SurveyMonkey specialization
-# David Brooks <https://github.com/dbrnz>
+## David Brooks <https://github.com/dbrnz>
CMake related fixes and improvements.
-# Lukas Vogel <https://github.com/lukedirtwalker>
+## Lukas Vogel <https://github.com/lukedirtwalker>
Spotify support
-# Alan Garny <https://github.com/agarny>
+## Alan Garny <https://github.com/agarny>
Windows DLL build support
-# MartinMikita <https://github.com/MartinMikita>
+## MartinMikita <https://github.com/MartinMikita>
Bug fixes
-# Larry Shaffer <https://github.com/dakcarto>
+## Larry Shaffer <https://github.com/dakcarto>
Versioning, shared lib, install target and header support
-# Gilmanov Ildar <https://github.com/gilmanov-ildar>
+## Gilmanov Ildar <https://github.com/gilmanov-ildar>
Bug fixes, support for ```qml``` module
-# Fabian Vogt <https://github.com/Vogtinator>
+## Fabian Vogt <https://github.com/Vogtinator>
Bug fixes, support for building without Qt keywords enabled
-
diff --git a/libraries/optional-bare/CMakeLists.txt b/libraries/optional-bare/CMakeLists.txt
deleted file mode 100644
index 952df6e2..00000000
--- a/libraries/optional-bare/CMakeLists.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-cmake_minimum_required(VERSION 3.9.4)
-project(optional-bare)
-
-add_library(optional-bare INTERFACE)
-target_include_directories(optional-bare INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include")
diff --git a/libraries/optional-bare/LICENSE.txt b/libraries/optional-bare/LICENSE.txt
deleted file mode 100644
index 36b7cd93..00000000
--- a/libraries/optional-bare/LICENSE.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-Boost Software License - Version 1.0 - August 17th, 2003
-
-Permission is hereby granted, free of charge, to any person or organization
-obtaining a copy of the software and accompanying documentation covered by
-this license (the "Software") to use, reproduce, display, distribute,
-execute, and transmit the Software, and to prepare derivative works of the
-Software, and to permit third-parties to whom the Software is furnished to
-do so, all subject to the following:
-
-The copyright notices in the Software and this entire statement, including
-the above license grant, this restriction and the following disclaimer,
-must be included in all copies of the Software, in whole or in part, and
-all derivative works of the Software, unless such copies or derivative
-works are solely in the form of machine-executable object code generated by
-a source language processor.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-DEALINGS IN THE SOFTWARE.
diff --git a/libraries/optional-bare/README.md b/libraries/optional-bare/README.md
deleted file mode 100644
index e29ff7c1..00000000
--- a/libraries/optional-bare/README.md
+++ /dev/null
@@ -1,5 +0,0 @@
-# optional bare
-
-A simple single-file header-only version of a C++17-like optional for default-constructible, copyable types, for C++98 and later.
-
-Imported from: https://github.com/martinmoene/optional-bare/commit/0bb1d183bcee1e854c4ea196b533252c51f98b81
diff --git a/libraries/optional-bare/include/nonstd/optional b/libraries/optional-bare/include/nonstd/optional
deleted file mode 100644
index ecbfa030..00000000
--- a/libraries/optional-bare/include/nonstd/optional
+++ /dev/null
@@ -1,508 +0,0 @@
-//
-// Copyright 2017-2019 by Martin Moene
-//
-// https://github.com/martinmoene/optional-bare
-//
-// Distributed under the Boost Software License, Version 1.0.
-// (See accompanying file LICENSE.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
-
-#ifndef NONSTD_OPTIONAL_BARE_HPP
-#define NONSTD_OPTIONAL_BARE_HPP
-
-#define optional_bare_MAJOR 1
-#define optional_bare_MINOR 1
-#define optional_bare_PATCH 0
-
-#define optional_bare_VERSION optional_STRINGIFY(optional_bare_MAJOR) "." optional_STRINGIFY(optional_bare_MINOR) "." optional_STRINGIFY(optional_bare_PATCH)
-
-#define optional_STRINGIFY( x ) optional_STRINGIFY_( x )
-#define optional_STRINGIFY_( x ) #x
-
-// optional-bare configuration:
-
-#define optional_OPTIONAL_DEFAULT 0
-#define optional_OPTIONAL_NONSTD 1
-#define optional_OPTIONAL_STD 2
-
-#if !defined( optional_CONFIG_SELECT_OPTIONAL )
-# define optional_CONFIG_SELECT_OPTIONAL ( optional_HAVE_STD_OPTIONAL ? optional_OPTIONAL_STD : optional_OPTIONAL_NONSTD )
-#endif
-
-// Control presence of exception handling (try and auto discover):
-
-#ifndef optional_CONFIG_NO_EXCEPTIONS
-# if _MSC_VER
-# include <cstddef> // for _HAS_EXCEPTIONS
-# endif
-# if _MSC_VER
-# include <cstddef> // for _HAS_EXCEPTIONS
-# endif
-# if defined(__cpp_exceptions) || defined(__EXCEPTIONS) || (_HAS_EXCEPTIONS)
-# define optional_CONFIG_NO_EXCEPTIONS 0
-# else
-# define optional_CONFIG_NO_EXCEPTIONS 1
-# endif
-#endif
-
-// C++ language version detection (C++20 is speculative):
-// Note: VC14.0/1900 (VS2015) lacks too much from C++14.
-
-#ifndef optional_CPLUSPLUS
-# if defined(_MSVC_LANG ) && !defined(__clang__)
-# define optional_CPLUSPLUS (_MSC_VER == 1900 ? 201103L : _MSVC_LANG )
-# else
-# define optional_CPLUSPLUS __cplusplus
-# endif
-#endif
-
-#define optional_CPP98_OR_GREATER ( optional_CPLUSPLUS >= 199711L )
-#define optional_CPP11_OR_GREATER ( optional_CPLUSPLUS >= 201103L )
-#define optional_CPP14_OR_GREATER ( optional_CPLUSPLUS >= 201402L )
-#define optional_CPP17_OR_GREATER ( optional_CPLUSPLUS >= 201703L )
-#define optional_CPP20_OR_GREATER ( optional_CPLUSPLUS >= 202000L )
-
-// C++ language version (represent 98 as 3):
-
-#define optional_CPLUSPLUS_V ( optional_CPLUSPLUS / 100 - (optional_CPLUSPLUS > 200000 ? 2000 : 1994) )
-
-// Use C++17 std::optional if available and requested:
-
-#if optional_CPP17_OR_GREATER && defined(__has_include )
-# if __has_include( <optional> )
-# define optional_HAVE_STD_OPTIONAL 1
-# else
-# define optional_HAVE_STD_OPTIONAL 0
-# endif
-#else
-# define optional_HAVE_STD_OPTIONAL 0
-#endif
-
-#define optional_USES_STD_OPTIONAL ( (optional_CONFIG_SELECT_OPTIONAL == optional_OPTIONAL_STD) || ((optional_CONFIG_SELECT_OPTIONAL == optional_OPTIONAL_DEFAULT) && optional_HAVE_STD_OPTIONAL) )
-
-//
-// Using std::optional:
-//
-
-#if optional_USES_STD_OPTIONAL
-
-#include <optional>
-#include <utility>
-
-namespace nonstd {
-
- using std::in_place;
- using std::in_place_type;
- using std::in_place_index;
- using std::in_place_t;
- using std::in_place_type_t;
- using std::in_place_index_t;
-
- using std::optional;
- using std::bad_optional_access;
- using std::hash;
-
- using std::nullopt;
- using std::nullopt_t;
-
- using std::operator==;
- using std::operator!=;
- using std::operator<;
- using std::operator<=;
- using std::operator>;
- using std::operator>=;
- using std::make_optional;
- using std::swap;
-}
-
-#else // optional_USES_STD_OPTIONAL
-
-#include <cassert>
-
-#if ! optional_CONFIG_NO_EXCEPTIONS
-# include <stdexcept>
-#endif
-
-namespace nonstd { namespace optional_bare {
-
-// type for nullopt
-
-struct nullopt_t
-{
- struct init{};
- nullopt_t( init ) {}
-};
-
-// extra parenthesis to prevent the most vexing parse:
-
-const nullopt_t nullopt(( nullopt_t::init() ));
-
-// optional access error.
-
-#if ! optional_CONFIG_NO_EXCEPTIONS
-
-class bad_optional_access : public std::logic_error
-{
-public:
- explicit bad_optional_access()
- : logic_error( "bad optional access" ) {}
-};
-
-#endif // optional_CONFIG_NO_EXCEPTIONS
-
-// Simplistic optional: requires T to be default constructible, copyable.
-
-template< typename T >
-class optional
-{
-private:
- typedef void (optional::*safe_bool)() const;
-
-public:
- typedef T value_type;
-
- optional()
- : has_value_( false )
- {}
-
- optional( nullopt_t )
- : has_value_( false )
- {}
-
- optional( T const & arg )
- : has_value_( true )
- , value_ ( arg )
- {}
-
- template< class U >
- optional( optional<U> const & other )
- : has_value_( other.has_value() )
- , value_ ( other.value() )
- {}
-
- optional & operator=( nullopt_t )
- {
- reset();
- return *this;
- }
-
- template< class U >
- optional & operator=( optional<U> const & other )
- {
- has_value_ = other.has_value();
- value_ = other.value();
- return *this;
- }
-
- void swap( optional & rhs )
- {
- using std::swap;
- if ( has_value() == true && rhs.has_value() == true ) { swap( **this, *rhs ); }
- else if ( has_value() == false && rhs.has_value() == true ) { initialize( *rhs ); rhs.reset(); }
- else if ( has_value() == true && rhs.has_value() == false ) { rhs.initialize( **this ); reset(); }
- }
-
- // observers
-
- value_type const * operator->() const
- {
- return assert( has_value() ),
- &value_;
- }
-
- value_type * operator->()
- {
- return assert( has_value() ),
- &value_;
- }
-
- value_type const & operator*() const
- {
- return assert( has_value() ),
- value_;
- }
-
- value_type & operator*()
- {
- return assert( has_value() ),
- value_;
- }
-
-#if optional_CPP11_OR_GREATER
- explicit operator bool() const
- {
- return has_value();
- }
-#else
- operator safe_bool() const
- {
- return has_value() ? &optional::this_type_does_not_support_comparisons : 0;
- }
-#endif
-
- bool has_value() const
- {
- return has_value_;
- }
-
- value_type const & value() const
- {
-#if optional_CONFIG_NO_EXCEPTIONS
- assert( has_value() );
-#else
- if ( ! has_value() )
- throw bad_optional_access();
-#endif
- return value_;
- }
-
- value_type & value()
- {
-#if optional_CONFIG_NO_EXCEPTIONS
- assert( has_value() );
-#else
- if ( ! has_value() )
- throw bad_optional_access();
-#endif
- return value_;
- }
-
- template< class U >
- value_type value_or( U const & v ) const
- {
- return has_value() ? value() : static_cast<value_type>( v );
- }
-
- // modifiers
-
- void reset()
- {
- has_value_ = false;
- }
-
-private:
- void this_type_does_not_support_comparisons() const {}
-
- template< typename V >
- void initialize( V const & value )
- {
- assert( ! has_value() );
- value_ = value;
- has_value_ = true;
- }
-
-private:
- bool has_value_;
- value_type value_;
-};
-
-// Relational operators
-
-template< typename T, typename U >
-inline bool operator==( optional<T> const & x, optional<U> const & y )
-{
- return bool(x) != bool(y) ? false : bool(x) == false ? true : *x == *y;
-}
-
-template< typename T, typename U >
-inline bool operator!=( optional<T> const & x, optional<U> const & y )
-{
- return !(x == y);
-}
-
-template< typename T, typename U >
-inline bool operator<( optional<T> const & x, optional<U> const & y )
-{
- return (!y) ? false : (!x) ? true : *x < *y;
-}
-
-template< typename T, typename U >
-inline bool operator>( optional<T> const & x, optional<U> const & y )
-{
- return (y < x);
-}
-
-template< typename T, typename U >
-inline bool operator<=( optional<T> const & x, optional<U> const & y )
-{
- return !(y < x);
-}
-
-template< typename T, typename U >
-inline bool operator>=( optional<T> const & x, optional<U> const & y )
-{
- return !(x < y);
-}
-
-// Comparison with nullopt
-
-template< typename T >
-inline bool operator==( optional<T> const & x, nullopt_t )
-{
- return (!x);
-}
-
-template< typename T >
-inline bool operator==( nullopt_t, optional<T> const & x )
-{
- return (!x);
-}
-
-template< typename T >
-inline bool operator!=( optional<T> const & x, nullopt_t )
-{
- return bool(x);
-}
-
-template< typename T >
-inline bool operator!=( nullopt_t, optional<T> const & x )
-{
- return bool(x);
-}
-
-template< typename T >
-inline bool operator<( optional<T> const &, nullopt_t )
-{
- return false;
-}
-
-template< typename T >
-inline bool operator<( nullopt_t, optional<T> const & x )
-{
- return bool(x);
-}
-
-template< typename T >
-inline bool operator<=( optional<T> const & x, nullopt_t )
-{
- return (!x);
-}
-
-template< typename T >
-inline bool operator<=( nullopt_t, optional<T> const & )
-{
- return true;
-}
-
-template< typename T >
-inline bool operator>( optional<T> const & x, nullopt_t )
-{
- return bool(x);
-}
-
-template< typename T >
-inline bool operator>( nullopt_t, optional<T> const & )
-{
- return false;
-}
-
-template< typename T >
-inline bool operator>=( optional<T> const &, nullopt_t )
-{
- return true;
-}
-
-template< typename T >
-inline bool operator>=( nullopt_t, optional<T> const & x )
-{
- return (!x);
-}
-
-// Comparison with T
-
-template< typename T, typename U >
-inline bool operator==( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x == v : false;
-}
-
-template< typename T, typename U >
-inline bool operator==( U const & v, optional<T> const & x )
-{
- return bool(x) ? v == *x : false;
-}
-
-template< typename T, typename U >
-inline bool operator!=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x != v : true;
-}
-
-template< typename T, typename U >
-inline bool operator!=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v != *x : true;
-}
-
-template< typename T, typename U >
-inline bool operator<( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x < v : true;
-}
-
-template< typename T, typename U >
-inline bool operator<( U const & v, optional<T> const & x )
-{
- return bool(x) ? v < *x : false;
-}
-
-template< typename T, typename U >
-inline bool operator<=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x <= v : true;
-}
-
-template< typename T, typename U >
-inline bool operator<=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v <= *x : false;
-}
-
-template< typename T, typename U >
-inline bool operator>( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x > v : false;
-}
-
-template< typename T, typename U >
-inline bool operator>( U const & v, optional<T> const & x )
-{
- return bool(x) ? v > *x : true;
-}
-
-template< typename T, typename U >
-inline bool operator>=( optional<T> const & x, U const & v )
-{
- return bool(x) ? *x >= v : false;
-}
-
-template< typename T, typename U >
-inline bool operator>=( U const & v, optional<T> const & x )
-{
- return bool(x) ? v >= *x : true;
-}
-
-// Specialized algorithms
-
-template< typename T >
-void swap( optional<T> & x, optional<T> & y )
-{
- x.swap( y );
-}
-
-// Convenience function to create an optional.
-
-template< typename T >
-inline optional<T> make_optional( T const & v )
-{
- return optional<T>( v );
-}
-
-} // namespace optional-bare
-
-using namespace optional_bare;
-
-} // namespace nonstd
-
-#endif // optional_USES_STD_OPTIONAL
-
-#endif // NONSTD_OPTIONAL_BARE_HPP
diff --git a/libraries/tomlc99/README.md b/libraries/tomlc99/README.md
index 6715b5be..e5fe9480 100644
--- a/libraries/tomlc99/README.md
+++ b/libraries/tomlc99/README.md
@@ -10,7 +10,6 @@ If you are looking for a C++ library, you might try this wrapper: [https://githu
[iarna/toml-spec-tests](https://github.com/iarna/toml-spec-tests).
* Provides very simple and intuitive interface.
-
## Usage
Please see the `toml.h` file for details. What follows is a simple example that
@@ -18,8 +17,8 @@ parses this config file:
```toml
[server]
- host = "www.example.com"
- port = [ 8080, 8181, 8282 ]
+ host = "www.example.com"
+ port = [ 8080, 8181, 8282 ]
```
The steps for getting values from our file is usually :
@@ -96,13 +95,14 @@ int main()
}
```
-#### Accessing Table Content
+### Accessing Table Content
TOML tables are dictionaries where lookups are done using string keys. In
general, all access functions on tables are named `toml_*_in(...)`.
In the normal case, you know the key and its content type, and retrievals can be done
using one of these functions:
+
```c
toml_string_in(tab, key);
toml_bool_in(tab, key);
@@ -114,6 +114,7 @@ toml_array_in(tab, key);
```
You can also interrogate the keys in a table using an integer index:
+
```c
toml_table_t* tab = toml_parse_file(...);
for (int i = 0; ; i++) {
@@ -123,16 +124,18 @@ for (int i = 0; ; i++) {
}
```
-#### Accessing Array Content
+### Accessing Array Content
TOML arrays can be deref-ed using integer indices. In general, all access methods on arrays are named `toml_*_at()`.
To obtain the size of an array:
+
```c
int size = toml_array_nelem(arr);
```
To obtain the content of an array, use a valid index and call one of these functions:
+
```c
toml_string_at(arr, idx);
toml_bool_at(arr, idx);
@@ -143,7 +146,7 @@ toml_table_at(arr, idx);
toml_array_at(arr, idx);
```
-#### toml_datum_t
+### toml_datum_t
Some `toml_*_at` and `toml_*_in` functions return a toml_datum_t
structure. The `ok` flag in the structure indicates if the function
@@ -151,15 +154,16 @@ call was successful. If so, you may proceed to read the value
corresponding to the type of the content.
For example:
-```
+
+```c
toml_datum_t host = toml_string_in(tab, "host");
if (host.ok) {
- printf("host: %s\n", host.u.s);
- free(host.u.s); /* FREE applies to string and timestamp types only */
+ printf("host: %s\n", host.u.s);
+ free(host.u.s); /* FREE applies to string and timestamp types only */
}
```
-** IMPORTANT: if the accessed value is a string or a timestamp, you must call `free(datum.u.s)` or `free(datum.u.ts)` respectively after usage. **
+**IMPORTANT: if the accessed value is a string or a timestamp, you must call `free(datum.u.s)` or `free(datum.u.ts)` respectively after usage.**
## Building and installing
@@ -183,7 +187,6 @@ To test against the standard test set provided by BurntSushi/toml-test:
% bash run.sh # this will run the test suite
```
-
To test against the standard test set provided by iarna/toml:
```sh