aboutsummaryrefslogtreecommitdiffstats
path: root/nimisewi.c
diff options
context:
space:
mode:
authorla-ninpre <leobrekalini@gmail.com>2021-08-27 23:54:10 +0000
committerla-ninpre <leobrekalini@gmail.com>2021-08-27 23:54:10 +0000
commita00752d9d68b00c319bea79afa43d4b118fc216e (patch)
treefe5dfba02569a8bd17744163cb415497c221a54d /nimisewi.c
parent0846a40229ad8753419a0ab8a303d3a293df305e (diff)
downloadnimisewi_c-a00752d9d68b00c319bea79afa43d4b118fc216e.tar.gz
nimisewi_c-a00752d9d68b00c319bea79afa43d4b118fc216e.zip
use gnu autotools build system for configuring.v0.1.0
this was kinda tough, but interesting. FossilOrigin-Name: b881bb67b683313959c94ce172b9fb307400c0f43a262f82ab2d3b2c1a8cb557
Diffstat (limited to 'nimisewi.c')
-rw-r--r--nimisewi.c41
1 files changed, 27 insertions, 14 deletions
diff --git a/nimisewi.c b/nimisewi.c
index 0e9b82e..bb42d2c 100644
--- a/nimisewi.c
+++ b/nimisewi.c
@@ -26,14 +26,16 @@
* sona nanpa li ike. taso ona li pali e ilo pona.
*/
+#include <config.h>
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
+#ifdef HAVE_BSD_STRING_H
+#include <bsd/string.h>
+#else
#include <string.h>
-#if defined(__OpenBSD__) || defined(__FreeBSD__) || defined( _NetBSD__) || defined(__DragonFly__)
-#define HAS_STRLCAT
#endif
#include <sys/types.h>
@@ -42,6 +44,15 @@
#include "nimisewi.h"
#include "nimitoki.h" /* nimi_toki, suli_pi_nimi_toki */
+/* struct to hold stuff useful for random index generation */
+struct nanpa_nimi {
+ int nanpa_nimi; /* number of words - 1 */
+ int pi_li_lon; /* whether to insert 'pi' or not */
+ int nanpa_pi; /* index to insert 'pi', if pi_li_lon is 1 */
+ int *nanpa_sewi_nimi; /* random indices of words */
+ size_t suli_pi_nimi_sewi; /* length of generated phrase */
+};
+
static void
open_e_nanpa_sewi(void)
{
@@ -165,15 +176,6 @@ weka_e_nanpa_nimi(struct nanpa_nimi *nn)
}
}
-static void
-string_cat(char *dst, const char *src, size_t size) {
-#ifdef HAS_STRLCAT
- strlcat(dst, src, size);
-#else
- strcat(dst, src);
-#endif
-}
-
char
*nimi_sewi()
{
@@ -192,14 +194,25 @@ char
}
for (i = 0; i < nn->nanpa_nimi; i++) {
- string_cat(nimi_pana,
+#ifdef HAVE_STRLCAT
+ strlcat(nimi_pana,
pana_e_nimi(nn->nanpa_sewi_nimi[i]),
nn->suli_pi_nimi_sewi);
- string_cat(nimi_pana, " ", nn->suli_pi_nimi_sewi);
+ strlcat(nimi_pana, " ", nn->suli_pi_nimi_sewi);
+#else
+ strcat(nimi_pana,
+ pana_e_nimi(nn->nanpa_sewi_nimi[i]));
+ strcat(nimi_pana, " ");
+#endif
}
- string_cat(nimi_pana,
+#ifdef HAVE_STRLCAT
+ strlcat(nimi_pana,
pana_e_nimi(nn->nanpa_sewi_nimi[i]),
nn->suli_pi_nimi_sewi);
+#else
+ strcat(nimi_pana,
+ pana_e_nimi(nn->nanpa_sewi_nimi[i]));
+#endif
weka_e_nanpa_nimi(nn);