aboutsummaryrefslogtreecommitdiffstats
path: root/nimisewi.c
diff options
context:
space:
mode:
authorla-ninpre <leobrekalini@gmail.com>2021-11-20 19:00:28 +0000
committerla-ninpre <leobrekalini@gmail.com>2021-11-20 19:00:28 +0000
commita09dfac1ad042d49ced01d79866878b6ce0a4045 (patch)
tree26a59e5f1c6f5ac0ee18ae8b825d27131ce36585 /nimisewi.c
parent6cf69cbaacfa8c509cbe541a26dfa119d68845b9 (diff)
downloadnimisewi_c-main.tar.gz
nimisewi_c-main.zip
added ability to specify max amount of words generated by nimisewiHEADv0.4.0main
added new flag to main program, that displays sad version of prompt removed unnecessary function that sets up random seed for systems where arc4random is not available updated readme FossilOrigin-Name: 1195601f8a81524006e8d3c9014abb26cf613ad995b60455d9553fd7bb50d337
Diffstat (limited to 'nimisewi.c')
-rw-r--r--nimisewi.c36
1 files changed, 11 insertions, 25 deletions
diff --git a/nimisewi.c b/nimisewi.c
index 28d79a6..07d9fc4 100644
--- a/nimisewi.c
+++ b/nimisewi.c
@@ -64,6 +64,13 @@ nsrand(uint32_t limit)
#ifdef HAVE_ARC4RANDOM_UNIFORM
return arc4random_uniform(limit);
#else
+ pid_t pid;
+ struct timeval time;
+
+ gettimeofday(&time, NULL);
+ pid = getpid();
+ srand(pid * time.tv_usec * time.tv_sec);
+
return rand() % limit;
#endif
}
@@ -79,23 +86,6 @@ catstr(char *dst, const char *src, size_t size)
#endif
}
-static void
-open_e_nanpa_sewi(void)
-{
- /* initialize pseudorandom generator using pid, microseconds and seconds
- *
- * for such silly program there's no need to implement cryptographically
- * secure random number generator.
- */
-
- pid_t pid;
- struct timeval time;
-
- gettimeofday(&time, NULL);
- pid = getpid();
- srand(pid * time.tv_usec * time.tv_sec);
-}
-
static const char
*pana_e_nimi(const int nanpa_nimi)
{
@@ -147,7 +137,7 @@ nanpa_nimi_pana_e_pi(struct nanpa_nimi *nn)
}
static struct nanpa_nimi
-*pana_e_nanpa_nimi(void)
+*pana_e_nanpa_nimi(unsigned int nanpa_nimi_sewi)
{
/* generate nanpa_nimi with all the values useful for phrase generation
*
@@ -168,7 +158,7 @@ static struct nanpa_nimi
nn->nanpa_sewi_nimi = NULL;
nn->suli_pi_nimi_sewi = 0;
- nn->nanpa_nimi = (nsrand(6));
+ nn->nanpa_nimi = (nsrand(nanpa_nimi_sewi));
/* to use with arbitrary wordlist, remove following function call */
nanpa_nimi_pana_e_pi(nn);
@@ -203,17 +193,13 @@ weka_e_nanpa_nimi(struct nanpa_nimi *nn)
}
char
-*nimi_sewi()
+*nimi_sewi(unsigned int nanpa_nimi_sewi)
{
int i;
char *nimi_pana;
struct nanpa_nimi *nn;
-#ifndef HAVE_ARC4RANDOM_UNIFORM
- open_e_nanpa_sewi();
-#endif
-
- nn = pana_e_nanpa_nimi();
+ nn = pana_e_nanpa_nimi(nanpa_nimi_sewi);
nimi_pana = calloc(nn->suli_pi_nimi_sewi + 1, sizeof(char));
if (nimi_pana == NULL) {