diff --git a/misc/random.cpp b/misc/random.cpp index 5f3feda..c5b1327 100644 --- a/misc/random.cpp +++ b/misc/random.cpp @@ -27,13 +27,12 @@ const char symbols[24] = "!\"$%&/()=?'#*+~-_><.:,;"; /*! * Generates a random character sequence using the given \a randomizer. */ -void generateRandomCharacterSequence(char *result, int length, std::function randomizer, int highestRandomNumber, bool useSmallLetters, bool useCapitalLetters, bool useNumbers, bool useSymbols, bool useAtLeastOneOfEachCategory) +void generateRandomCharacterSequence(char *result, unsigned int length, std::function randomizer, int highestRandomNumber, bool useSmallLetters, bool useCapitalLetters, bool useNumbers, bool useSymbols, bool useAtLeastOneOfEachCategory) { - if(length <= 0) { + if(length) { return; } - int categoryCount = 0; - int neededCharacters; + signed char categoryCount = 0; bool needSmallLetter = false; bool needCapitalLetter = false; bool needNumber = false; @@ -54,14 +53,14 @@ void generateRandomCharacterSequence(char *result, int length, std::function 0 && (randomizer() < (highestRandomNumber / 2.0))) || (neededCharacters + i >= length)) { + if((neededCharacters > 0 && (randomizer() < (highestRandomNumber / 2.0))) || ((end - i) >= neededCharacters)) { if(needSmallLetter) category = 0; if(needCapitalLetter && ((category == -1) || (randomizer() < (highestRandomNumber / 2.0)))) @@ -82,28 +81,28 @@ void generateRandomCharacterSequence(char *result, int length, std::function randomizer, int maximalRandomNumber, bool useSmallLetters = true, bool useCapitalLetters = true, bool useNumbers = true, bool useSymbols = true, bool useAtLeastOneOfEachCategory = true); +LIB_EXPORT void generateRandomCharacterSequence(char *result, unsigned int length, bool useSmallLetters = true, bool useCapitalLetters = true, bool useNumbers = true, bool useSymbols = true, bool useAtLeastOneOfEachCategory = true); +LIB_EXPORT void generateRandomCharacterSequence(char *result, unsigned int length, std::function randomizer, int maximalRandomNumber, bool useSmallLetters = true, bool useCapitalLetters = true, bool useNumbers = true, bool useSymbols = true, bool useAtLeastOneOfEachCategory = true); }