added hawk_gem_dupucsarr() and hawk_gem_dupbcsarr()
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
modifed mod-uci.h to be compilable at least - it's full of problems
This commit is contained in:
37
lib/gem.c
37
lib/gem.c
@ -172,6 +172,43 @@ hawk_bch_t* hawk_gem_dupbcstrarr (hawk_gem_t* gem, const hawk_bch_t* str[], hawk
|
||||
return buf;
|
||||
}
|
||||
|
||||
hawk_uch_t* hawk_gem_dupucsarr (hawk_gem_t* gem, const hawk_ucs_t* str, hawk_oow_t* len)
|
||||
{
|
||||
hawk_uch_t* buf, * ptr;
|
||||
hawk_oow_t i;
|
||||
hawk_oow_t capa = 0;
|
||||
|
||||
for (i = 0; str[i].ptr; i++) capa += str[i].len;
|
||||
|
||||
buf = (hawk_uch_t*)hawk_gem_allocmem(gem, (capa + 1) * HAWK_SIZEOF(*buf));
|
||||
if (!buf) return HAWK_NULL;
|
||||
|
||||
ptr = buf;
|
||||
for (i = 0; str[i].ptr; i++) ptr += hawk_copy_uchars_to_ucstr_unlimited(ptr, str[i].ptr, str[i].len);
|
||||
|
||||
if (len) *len = capa;
|
||||
return buf;
|
||||
}
|
||||
|
||||
hawk_bch_t* hawk_gem_dupbcsarr (hawk_gem_t* gem, const hawk_bcs_t* str, hawk_oow_t* len)
|
||||
{
|
||||
hawk_bch_t* buf, * ptr;
|
||||
hawk_oow_t i;
|
||||
hawk_oow_t capa = 0;
|
||||
|
||||
for (i = 0; str[i].ptr; i++) capa += str[i].len;
|
||||
|
||||
buf = (hawk_bch_t*)hawk_gem_allocmem(gem, (capa + 1) * HAWK_SIZEOF(*buf));
|
||||
if (!buf) return HAWK_NULL;
|
||||
|
||||
ptr = buf;
|
||||
for (i = 0; str[i].ptr; i++) ptr += hawk_copy_bchars_to_bcstr_unlimited(ptr, str[i].ptr, str[i].len);
|
||||
|
||||
if (len) *len = capa;
|
||||
return buf;
|
||||
}
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------ */
|
||||
|
||||
int hawk_gem_convbtouchars (hawk_gem_t* gem, const hawk_bch_t* bcs, hawk_oow_t* bcslen, hawk_uch_t* ucs, hawk_oow_t* ucslen, int all)
|
||||
|
@ -618,6 +618,9 @@
|
||||
/* Define to 1 if you have the <time.h> header file. */
|
||||
#undef HAVE_TIME_H
|
||||
|
||||
/* Define to 1 if you have the <uci.h> header file. */
|
||||
#undef HAVE_UCI_H
|
||||
|
||||
/* Define to 1 if you have the <ucontext.h> header file. */
|
||||
#undef HAVE_UCONTEXT_H
|
||||
|
||||
|
@ -168,16 +168,30 @@ HAWK_EXPORT hawk_bch_t* hawk_gem_dupbcstrarr (
|
||||
hawk_oow_t* len
|
||||
);
|
||||
|
||||
HAWK_EXPORT hawk_uch_t* hawk_gem_dupucsarr (
|
||||
hawk_gem_t* gem,
|
||||
const hawk_ucs_t* str,
|
||||
hawk_oow_t* len
|
||||
);
|
||||
|
||||
HAWK_EXPORT hawk_bch_t* hawk_gem_dupbcsarr (
|
||||
hawk_gem_t* gem,
|
||||
const hawk_bcs_t* str,
|
||||
hawk_oow_t* len
|
||||
);
|
||||
|
||||
#if defined(HAWK_OOCH_IS_UCH)
|
||||
# define hawk_gem_dupoocstr hawk_gem_dupucstr
|
||||
# define hawk_gem_dupoochars hawk_gem_dupuchars
|
||||
# define hawk_gem_dupoocs hawk_gem_dupucs
|
||||
# define hawk_gem_dupoocstrarr hawk_gem_dupucstrarr
|
||||
# define hawk_gem_dupoocsarr hawk_gem_dupucsarr
|
||||
#else
|
||||
# define hawk_gem_dupoocstr hawk_gem_dupbcstr
|
||||
# define hawk_gem_dupoochars hawk_gem_dupbchars
|
||||
# define hawk_gem_dupoocs hawk_gem_dupbcs
|
||||
# define hawk_gem_dupoocstrarr hawk_gem_dupbcstrarr
|
||||
# define hawk_gem_dupoocsarr hawk_gem_dupbcsarr
|
||||
#endif
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
@ -3207,7 +3207,7 @@ HAWK_EXPORT void hawk_rtx_refdownval_nofree (
|
||||
#define HAWK_RTX_GC_GEN_AUTO (-1)
|
||||
|
||||
/*
|
||||
* The hawk_rtc_gc() function triggers garbage collection.
|
||||
* The hawk_rtx_gc() function triggers garbage collection.
|
||||
* It returns the generation number collected and never fails
|
||||
*/
|
||||
HAWK_EXPORT int hawk_rtx_gc (
|
||||
@ -3531,6 +3531,8 @@ static HAWK_INLINE hawk_uch_t* hawk_rtx_dupucs (hawk_rtx_t* rtx, const hawk_ucs_
|
||||
static HAWK_INLINE hawk_bch_t* hawk_rtx_dupbcs (hawk_rtx_t* rtx, const hawk_bcs_t* bcs) { return hawk_gem_dupbcs(hawk_rtx_getgem(rtx), bcs); }
|
||||
static HAWK_INLINE hawk_uch_t* hawk_rtx_dupucstrarr (hawk_rtx_t* rtx, const hawk_uch_t* strs[], hawk_oow_t* len) { return hawk_gem_dupucstrarr(hawk_rtx_getgem(rtx), strs, len); }
|
||||
static HAWK_INLINE hawk_bch_t* hawk_rtx_dupbcstrarr (hawk_rtx_t* rtx, const hawk_bch_t* strs[], hawk_oow_t* len) { return hawk_gem_dupbcstrarr(hawk_rtx_getgem(rtx), strs, len); }
|
||||
static HAWK_INLINE hawk_uch_t* hawk_rtx_dupucsarr (hawk_rtx_t* rtx, const hawk_ucs_t* strs, hawk_oow_t* len) { return hawk_gem_dupucsarr(hawk_rtx_getgem(rtx), strs, len); }
|
||||
static HAWK_INLINE hawk_bch_t* hawk_rtx_dupbcsarr (hawk_rtx_t* rtx, const hawk_bcs_t* strs, hawk_oow_t* len) { return hawk_gem_dupbcsarr(hawk_rtx_getgem(rtx), strs, len); }
|
||||
#else
|
||||
#define hawk_rtx_dupucstr(rtx, ucs, ucslen) hawk_gem_dupucstr(hawk_rtx_getgem(rtx), ucs, ucslen)
|
||||
#define hawk_rtx_dupbcstr(rtx, bcs, bcslen) hawk_gem_dupbcstr(hawk_rtx_getgem(rtx), bcs, bcslen)
|
||||
@ -3540,6 +3542,8 @@ static HAWK_INLINE hawk_bch_t* hawk_rtx_dupbcstrarr (hawk_rtx_t* rtx, const hawk
|
||||
#define hawk_rtx_dupbcs(rtx, bcs) hawk_gem_dupbcs(hawk_rtx_getgem(rtx), bcs)
|
||||
#define hawk_rtx_dupucstrarr(rtx, strs, len) hawk_gem_dupucstrarr(hawk_rtx_getgem(rtx), strs, len)
|
||||
#define hawk_rtx_dupbcstrarr(rtx, strs, len) hawk_gem_dupbcstrarr(hawk_rtx_getgem(rtx), strs, len)
|
||||
#define hawk_rtx_dupucsarr(rtx, strs, len) hawk_gem_dupucsarr(hawk_rtx_getgem(rtx), strs, len)
|
||||
#define hawk_rtx_dupbcsarr(rtx, strs, len) hawk_gem_dupbcsarr(hawk_rtx_getgem(rtx), strs, len)
|
||||
#endif
|
||||
|
||||
#if defined(HAWK_OOCH_IS_UCH)
|
||||
@ -3547,11 +3551,13 @@ static HAWK_INLINE hawk_bch_t* hawk_rtx_dupbcstrarr (hawk_rtx_t* rtx, const hawk
|
||||
# define hawk_rtx_dupoochars hawk_rtx_dupuchars
|
||||
# define hawk_rtx_dupoocs hawk_rtx_dupucs
|
||||
# define hawk_rtx_dupoocstrarr hawk_rtx_dupucstrarr
|
||||
# define hawk_rtx_dupoocsarr hawk_rtx_dupucsarr
|
||||
#else
|
||||
# define hawk_rtx_dupoocstr hawk_rtx_dupbcstr
|
||||
# define hawk_rtx_dupoochars hawk_rtx_dupbchars
|
||||
# define hawk_rtx_dupoocs hawk_rtx_dupbcs
|
||||
# define hawk_rtx_dupoocstrarr hawk_rtx_dupbcstrarr
|
||||
# define hawk_rtx_dupoocsarr hawk_rtx_dupbcsarr
|
||||
#endif
|
||||
|
||||
/* ----------------------------------------------------------------------- */
|
||||
|
Reference in New Issue
Block a user