diff options
| author | la-ninpre <leobrekalini@gmail.com> | 2021-08-27 23:54:10 +0000 |
|---|---|---|
| committer | la-ninpre <leobrekalini@gmail.com> | 2021-08-27 23:54:10 +0000 |
| commit | a00752d9d68b00c319bea79afa43d4b118fc216e (patch) | |
| tree | fe5dfba02569a8bd17744163cb415497c221a54d /nimisewi.c | |
| parent | 0846a40229ad8753419a0ab8a303d3a293df305e (diff) | |
| download | nimisewi_c-0.1.0.tar.gz nimisewi_c-0.1.0.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.c | 41 |
1 files changed, 27 insertions, 14 deletions
@@ -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); |
