Skip to content

Releases: LambBread/lipsum-cpp

0.5.0-dev.1

31 May 02:32

Choose a tag to compare

0.5.0-dev.1 Pre-release
Pre-release

Version 0.5.0-dev.1

Changes

  • Move most free function logic into lpsm::Generator
  • New functions:
std::string lpsm::Generator::single_sentence(const lpsm::ArgVec2&, const lpsm::ArgVec2&); // private
std::string lpsm::Generator::single_paragraph(bool); // private
std::string lpsm::Generator::single_md_paragraph(bool, bool); // private
std::string lpsm::Generator::json_string(); // private
std::string lpsm::Generator::json_number(); // private
std::string lpsm::Generator::json_value(int, int);

char* lpsm_Generator_json_value(lpsm_GeneratorHandle, int, int);
  • Changed functions:
std::string lpsm::Generator::json(int, int, bool);
// from std::string lpsm::Generator::json(int, bool)

char* lpsm_Generator_json(lpsm_GeneratorHandle, int, int, bool);
// from std::string lpsm_Generator_json(lpsm_GeneratorHandle, int, bool)
  • Removed features:
std::string lpsm::GenerateWord(const lpsm::Source&);
std::string lpsm::GenerateSentenceFragment(const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateSentence(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateParagraph(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateText(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
                               bool, const lpsm::Source&);
std::string lpsm::GenerateWords(int, const lpsm::Source&);
std::string lpsm::GenerateSentences(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateParagraphs(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GeneratePlainURL(const lpsm::Source&);
std::string lpsm::GenerateURL(const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateSlug(const lpsm::ArgVec2&, char, const lpsm::Source&);
std::string lpsm::GenerateScramble(int, char, char);
std::string lpsm::GenerateMarkdownHeader(int, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownEmphasis(bool, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownLink(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownList(bool, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownParagraph(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
                                            const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownParagraphs(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
                                             const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, 
                                             bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownText(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, 
                                       const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
                                       int, bool, const lpsm::Source&);
std::string lpsm::GenerateXMLDocument(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONString(const lpsm::Source&);
std::string lpsm::GenerateJSONNumber();
std::string lpsm::GenerateJSONObject(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONArray(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONValue(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateSentenceFragmentX(int, int, const lpsm::Source&);
std::string lpsm::GenerateSentenceX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateParagraphX(int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateTextX(int, int, int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateSentencesX(int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateParagraphsX(int, int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateURLX(int, int, const lpsm::Source&);
std::string lpsm::GenerateSlugX(int, int, char, const lpsm::Source&);
std::string lpsm::GenerateMarkdownHeaderX(int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownEmphasisX(bool, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownLinkX(int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownListX(bool, int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateXMLDocumentX(int, int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONObjectX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONArrayX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONValueX(int, int, int, int, const lpsm::Source&);

char* lpsm_GenerateWord(lpsm_SourceHandle);
char* lpsm_GenerateSentenceFragment(int, int, lpsm_SourceHandle);
char* lpsm_GenerateSentence(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateParagraph(int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateText(int, int, int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateWords(int, lpsm_SourceHandle);
char* lpsm_GenerateSentences(int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateParagraphs(int, int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GeneratePlainURL(lpsm_SourceHandle);
char* lpsm_GenerateURL(int, int, lpsm_SourceHandle);
char* lpsm_GenerateSlug(int, int, char, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownHeader(int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownEmphasis(bool, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownLink(int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownList(bool, int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateXMLDocument(int, int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONString(lpsm_SourceHandle);
char* lpsm_GenerateJSONNumber(void);
char* lpsm_GenerateJSONObject(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONArray(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONValue(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateSentenceFragmentS(lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateSentenceS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateParagraphS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateTextS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateParagraphsS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateSentencesS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownHeaderS(int, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownEmphasisS(bool, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownLinkS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownListS(bool, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownParagraphS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
                                      lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownParagraphsS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
                                       lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownTextS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, 
                                 lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
                                 int, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateXMLDocumentS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONObjectS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONArrayS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONValueS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
int lpsm_ArgVec2_roll(lpsm_ArgVec2Handle);
int lpsm_ArgVec2_min(lpsm_ArgVec2Handle);
int lpsm_ArgVec2_max(lpsm_ArgVec2Handle);
typedef void* lpsm_SourceHandle;
lpsm_SourceHandle lpsm_Source(const char*);
void lpsm_SourceDestroy(lpsm_SourceHandle);
  • Removed examples:
GenerateWord.cpp
GenerateWords.cpp
GenerateSentenceFragment.cpp
GenerateSentence.cpp
GenerateSentences.cpp
GenerateParagraph.cpp
GenerateParagraphs.cpp
GenerateText.cpp
Formats.cpp

0.4.6

24 May 23:25

Choose a tag to compare

Version 0.4.6

Changes

  • Add more descriptive error handling in CLI tool
  • Add better help command in CLI tool
  • Add CMake find_package() support
  • Add unit tests and benchmarking
  • Add Arch Linux package support
  • Ensure no possibility of duplicate keys in JSON
  • Make lpsm::CountWords() "smarter"
  • Switch some functions in lpsm::internal to C++20 concepts
  • Add XML attributes in generated XML
  • Allow 1 or 0 elements in lpsm::GenerateMarkdownText(), and warn on negative elements
  • Fix bugs:
    • std::bad_alloc from lpsm::GenerateSentenceFragment() when the number of words is <= 0
    • Segmentation fault in lpsm::internal::RandomNumber() when min > max
  • Add Doxygen docs to packages
  • Add CHANGELOG.md
  • New features:
inline constexpr const char* LIPSUM_CPP_VERSION_TIME;
inline constexpr bool LIPSUM_CPP_VERSION_ISDEV;
inline constexpr const char* LIPSUM_CPP_VERSION_DATE;
template <typename T> concept lpsm::internal::ToStringable;
template <typename T> concept lpsm::internal::Streamable;
template <typename T> concept lpsm::internal::IsInt;
template <typename T> concept lpsm::internal::UniformDistributionType;
template <typename T> T lpsm::internal::ToType(const std::string&);
std::string lpsm::Generator::md_header(int, bool);
std::string lpsm::Generator::md_emphasis(bool, bool);
std::string lpsm::Generator::md_link(bool);
std::string lpsm::Generator::md_list(bool, bool);
int lpsm::CountSentenceFragments(const std::string&);
int lpsm::CountParagraphs(const std::string&, int);

#define LIPSUM_CPP_VERSION_TIME_C;
#define LIPSUM_CPP_VERSION_ISDEV_C;
#define LIPSUM_CPP_VERSION_DATE_C;
char* lpsm_Generator_md_header(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_md_emphasis(lpsm_GeneratorHandle, bool, bool);
char* lpsm_Generator_md_link(lpsm_GeneratorHandle, bool);
char* lpsm_Generator_md_list(lpsm_GeneratorHandle, bool, bool);
int lpsm_CountSentenceFragments(const char*);
int lpsm_CountParagraphs(const char*, int);
  • Changed functions:
template <UniformDistributionType T> std::string lpsm::internal::RandomNumber(T, T);
// from template <typename T> std::string lpsm::internal::RandomNumber(T, T)
char lpsm::internal::RandomNumber(char, char);
// from template <> char lpsm::internal::RandomNumber(char, char)
bool lpsm::internal::RandomNumber(bool, bool);
// from template <> bool lpsm::internal::RandomNumber(bool, bool)
template <Streamable T> std::string lpsm::internal::ToString(const T&);
template <ToStringable T> std::string lpsm::internal::ToString(const T&);
// from template <typename T> std::string lpsm::internal::ToString(const T&);
std::string lpsm::Generator::fragment();
// from std::string lpsm::Generator::sentence_fragment()
std::string lpsm::Generator::md_paragraph(int, bool, bool);
// from std::string lpsm::Generator::md_paragraph(int, bool);
std::string lpsm::Generator::md_text(int, bool);
// from std::string lpsm::Generator::md_text(int);

char* lpsm_Generator_fragment(lpsm_GeneratorHandle);
// from char* lpsm_Generator_sentence_fragment(lpsm_GeneratorHandle)
char* lpsm_Generator_md_paragraph(lpsm_GeneratorHandle, int, bool, bool);
// from char* lpsm_Generator_md_paragraph(lpsm_GeneratorHandle, int, bool)
char* lpsm_Generator_md_text(lpsm_GeneratorHandle, int, bool);
// from char* lpsm_Generator_md_text(lpsm_GeneratorHandle, int)
  • Removed functions:
std::string lpsm::Generator::html_paragraph(int, bool);
std::string lpsm::Generator::html_text(int);

char* lpsm_Generator_html_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_html_text(lpsm_GeneratorHandle, int);

0.4.5

03 May 18:40

Choose a tag to compare

Version 0.4.5

Changes

  • lpsm::Generator settings split into new struct, lpsm::GeneratorSettings
  • New CLI tool, lpsmcpp-cli
  • CPack packaging now includes README.mds and LICENSE.md, WIX and RPM package generators
  • New features:
struct lpsm::GeneratorSettings;
void lpsm::GeneratorSettings::change_setting(const std::string&, const lpsm::ArgVec2&);
std::string lpsm::Generator::scramble(int, char, char);
std::string lpsm::Generator::slug(char);
std::string lpsm::Generator::url();
std::string lpsm::Generator::plain_url();
void lpsm::Generator::load_source(const std::string&);

void lpsm_Generator_change_setting(lpsm_GeneratorHandle, const char*, int, int);
char* lpsm_Generator_scramble(lpsm_GeneratorHandle, int, char, char);
char* lpsm_Generator_slug(lpsm_GeneratorHandle, char);
char* lpsm_Generator_url(lpsm_GeneratorHandle);
char* lpsm_Generator_plain_url(lpsm_GeneratorHandle);
void lpsm_Generator_load_source(lpsm_GeneratorHandle, const char*);

0.4.4

27 Apr 01:15

Choose a tag to compare

Version 0.4.4

Changes

  • JSON and XML generation
  • More documentation of lpsm::internal functions
  • Customizable settings in lpsm::Generator
  • lpsm::Generator exposed in C wrapper via opaque pointers
  • New features:
std::string lpsm::GenerateXMLDocument(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONString(const lpsm::Source&);
std::string lpsm::GenerateJSONNumber();
std::string lpsm::GenerateJSONObject(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONArray(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONValue(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateXMLDocumentX(int, int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONObjectX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONArrayX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONValueX(int, int, int, int, const lpsm::Source&);
void lpsm::Generator::change_setting(const std::string&, const lpsm::ArgVec2&);
void lpsm::Generator::change_setting(const std::string&, int, int);
std::string lpsm::Generator::text(bool);
std::string lpsm::Generator::html_paragraph(int, bool);
std::string lpsm::Generator::html_text(int);
std::string lpsm::Generator::xml(int);
std::string lpsm::Generator::json(int, bool);
char* lpsm_GenerateXMLDocument(int, int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONString(lpsm_SourceHandle);
char* lpsm_GenerateJSONNumber(void);
char* lpsm_GenerateJSONObject(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONArray(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONValue(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateXMLDocumentS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONObjectS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONArrayS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONValueS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
typedef void* lpsm_GeneratorHandle;
lpsm_GeneratorHandle lpsm_Generator(const char*);
void lpsm_GeneratorDestroy(lpsm_GeneratorHandle);
char* lpsm_Generator_word(lpsm_GeneratorHandle, int);
char* lpsm_Generator_sentence_fragment(lpsm_GeneratorHandle);
char* lpsm_Generator_sentence(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_text(lpsm_GeneratorHandle, bool);
char* lpsm_Generator_md_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_md_text(lpsm_GeneratorHandle, int);
char* lpsm_Generator_html_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_html_text(lpsm_GeneratorHandle, int);
char* lpsm_Generator_xml(lpsm_GeneratorHandle, int);
char* lpsm_Generator_json(lpsm_GeneratorHandle, int, bool);
  • Removed features:
char* lpsm_gen_word(int);
char* lpsm_gen_sentence_fragment(void);
char* lpsm_gen_sentence(int, bool);
char* lpsm_gen_paragraph(int, bool);
char* lpsm_gen_md_paragraph(int, bool);
char* lpsm_gen_md_text(int);
  • Removed examples:
Basic.cpp -> Generator.cpp, GeneratorFormats.cpp
GenerateDefaultLipsumSentence.cpp
GenerateURL.cpp -> both to Misc.cpp
GenerateMarkdownEmphasis.cpp
GenerateMarkdownHeader.cpp
GenerateMarkdownList.cpp
GenerateMarkdownLink.cpp
GenerateMarkdownParagraph.cpp
GenerateMarkdownParagraphs.cpp
GenerateMarkdownText.cpp -> all to Markdown.cpp
  • New examples:
Generator.cpp
GeneratorFormats.cpp

0.4.3

18 Apr 03:50

Choose a tag to compare

Version 0.4.3

Changes

  • make help
  • make install, CMake install(...) rules
  • CPack packaging
  • lpsm::internal::GenerateTLD() made less repetitive
  • More built in lorem-ipsum sources
    • cat - cat ipsum
    • dog/doggo - dog ipsum
    • corpo/corporate - corporate ipsum
    • default/lorem - traditional lorem ipsum
  • CI/CD with GitHub Actions
  • Better MSVC support
  • New functions:
int lpsm::internal::WeightedRandomIdx(const std::vector<int>&);

0.4.2

13 Apr 02:12

Choose a tag to compare

Version 0.4.2

Changes

  • Some code has been made more structured
  • README.mds overhauled
  • Headers now use both #pragma once and traditional include-guards
  • More formal language
  • Automatic version numbering using CMake
  • Better logging
  • Switch manual macros in lipsum_h.cpp to a variadic template
  • More consistent naming scheme (see src/README.md for details)
  • Optimize lpsm::internal::HandleHTMLEntity()
  • clang-tidy support
  • CONTRIBUTING.md added
  • Use more modern C++
  • Update TODO.md
  • New features:
template<typename... Args> void lpsm::internal::LogWarn(const Args&...);
inline constexpr const char* LIPSUM_CPP_VERSION_COMMIT;
inline constexpr const char* LIPSUM_CPP_VERSION_FULL;

#define LIPSUM_CPP_VERSION_COMMIT_C
#define LIPSUM_CPP_VERSION_FULL_C
  • Renamed functions:
[[nodiscard]] int lpsm::ArgVec2::roll() const; //from int lpsm::ArgVec2::Roll() const
void lpsm::Source::load(const std::string&); //from void lpsm::Source::Load()
[[nodiscard]] std::string lpsm::Source::random_word() const; //from std::string lpsm::Source::RandomWord() const

int lpsm_ArgVec2_roll(lpsm_ArgVec2Handle); //from int lpsm_ArgVec2Roll(lpsm_ArgVec2Handle)
int lpsm_ArgVec2_min(lpsm_ArgVec2Handle); //from int lpsm_ArgVec2GetMin(lpsm_ArgVec2Handle)
int lpsm_ArgVec2_max(lpsm_ArgVec2Handle); //from int lpsm_ArgVec2GetMax(lpsm_ArgVec2Handle)

0.4.1

22 Mar 21:26
2ad1389

Choose a tag to compare

Version 0.4.1

Changes

  • Change folder structure
  • Split C wrapper into multiple files
  • lpsm::Generator can now work with multi-source generation
  • More comments in CMake
  • Update README.md
  • New functions
lpsm::Generator::Generator(const std::string&);
void lpsm::Source::Load(const std::string&);

0.4.0

21 Mar 21:44

Choose a tag to compare

Version 0.4.0

Changes

  • Change style of .inls to having namespace lipsum around entire implementation
  • Make lpsm::internal::RandomNumber more thread-safe
  • Functions changed to support multi-source generation with new lpsm::Source class
  • Update TODO.md
  • Version numbering changed to constexpr variables, along with variables storing major, minor, and patch versions
    •   // #define LIPSUM_CPP_VERSION
        inline constexpr const char* LIPSUM_CPP_VERSION
        inline constexpr int LIPSUM_CPP_VERSION_MAJOR
        inline constexpr int LIPSUM_CPP_VERSION_MINOR
        inline constexpr int LIPSUM_CPP_VERSION_PATCH
        // C wrapper
       #define LIPSUM_CPP_VERSION_MAJOR_C
       #define LIPSUM_CPP_VERSION_MINOR_C
       #define LIPSUM_CPP_VERSION_PATCH_C
  • Removed features:
std::string lpsm::LipsumVersion();
#define lpsm_LipsumVersion()
  • Added features:
class lpsm::Source;
lpsm::Source::Source();
lpsm::Source::Source(const std::string&);
std::string lpsm::Source::RandomWord() const;
// C wrapper
typedef void* lpsm_SourceHandle;
lpsm_SourceHandle lpsm_Source(const char*);
void lpsm_SourceDestroy(lpsm_SourceHandle);

0.3.9

15 Mar 03:29

Choose a tag to compare

Version 0.3.9

Changes

  • lpsm::GenerateWord more thread-safe
  • Switch non-standard GCC extension of including a file inside a function (used in lpsm::GenerateWord) to standard C++ global inclusion
  • Switch sample.inl to static constexpr std::array<const char*, N> from static std::vector<std::string>
  • Make lpsm::internal::RandomNumber a template function
  • Switch some internal lpsm::ArgVec2s to lpsm::internal::RandomNumber
  • Generated URLs now include lpsmcpp- at beginning to avoid sending users to real URLs
  • New functions:
std::string lpsm::GeneratePlainURL();
std::string lpsm::GenerateScramble(int, char, char);
char* lpsm_GeneratePlainURL(void);
char* lpsm_GenerateScramble(int, char, char);

0.3.8

21 Feb 04:07

Choose a tag to compare

Version 0.3.8

Changes

  • New functions
int lpsm::CountWords(const std::string&);
int lpsm_CountWords(const char*);