added hawk_gem_dupucsarr() and hawk_gem_dupbcsarr()
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:
hyung-hwan 2024-04-22 23:19:50 +09:00
parent 5b4eac36af
commit 9fa26924c7
10 changed files with 244 additions and 187 deletions

6
configure vendored
View File

@ -20279,6 +20279,12 @@ then :
printf "%s\n" "#define HAVE_CRT_EXTERNS_H 1" >>confdefs.h printf "%s\n" "#define HAVE_CRT_EXTERNS_H 1" >>confdefs.h
fi fi
ac_fn_c_check_header_compile "$LINENO" "uci.h" "ac_cv_header_uci_h" "$ac_includes_default"
if test "x$ac_cv_header_uci_h" = xyes
then :
printf "%s\n" "#define HAVE_UCI_H 1" >>confdefs.h
fi

View File

@ -252,7 +252,7 @@ AC_CHECK_HEADERS([netinet/in.h sys/un.h netpacket/packet.h net/if.h net/if_dl.h
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h>]) #include <sys/socket.h>])
AC_CHECK_HEADERS([sys/stropts.h sys/macstat.h linux/ethtool.h linux/sockios.h]) AC_CHECK_HEADERS([sys/stropts.h sys/macstat.h linux/ethtool.h linux/sockios.h])
AC_CHECK_HEADERS([ffi.h libunwind.h quadmath.h crt_externs.h]) AC_CHECK_HEADERS([ffi.h libunwind.h quadmath.h crt_externs.h uci.h])
dnl check data types dnl check data types
dnl AC_CHECK_TYPE([wchar_t], dnl AC_CHECK_TYPE([wchar_t],

View File

@ -172,6 +172,43 @@ hawk_bch_t* hawk_gem_dupbcstrarr (hawk_gem_t* gem, const hawk_bch_t* str[], hawk
return buf; 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) 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)

View File

@ -618,6 +618,9 @@
/* Define to 1 if you have the <time.h> header file. */ /* Define to 1 if you have the <time.h> header file. */
#undef HAVE_TIME_H #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. */ /* Define to 1 if you have the <ucontext.h> header file. */
#undef HAVE_UCONTEXT_H #undef HAVE_UCONTEXT_H

View File

@ -168,16 +168,30 @@ HAWK_EXPORT hawk_bch_t* hawk_gem_dupbcstrarr (
hawk_oow_t* len 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) #if defined(HAWK_OOCH_IS_UCH)
# define hawk_gem_dupoocstr hawk_gem_dupucstr # define hawk_gem_dupoocstr hawk_gem_dupucstr
# define hawk_gem_dupoochars hawk_gem_dupuchars # define hawk_gem_dupoochars hawk_gem_dupuchars
# define hawk_gem_dupoocs hawk_gem_dupucs # define hawk_gem_dupoocs hawk_gem_dupucs
# define hawk_gem_dupoocstrarr hawk_gem_dupucstrarr # define hawk_gem_dupoocstrarr hawk_gem_dupucstrarr
# define hawk_gem_dupoocsarr hawk_gem_dupucsarr
#else #else
# define hawk_gem_dupoocstr hawk_gem_dupbcstr # define hawk_gem_dupoocstr hawk_gem_dupbcstr
# define hawk_gem_dupoochars hawk_gem_dupbchars # define hawk_gem_dupoochars hawk_gem_dupbchars
# define hawk_gem_dupoocs hawk_gem_dupbcs # define hawk_gem_dupoocs hawk_gem_dupbcs
# define hawk_gem_dupoocstrarr hawk_gem_dupbcstrarr # define hawk_gem_dupoocstrarr hawk_gem_dupbcstrarr
# define hawk_gem_dupoocsarr hawk_gem_dupbcsarr
#endif #endif
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */

View File

@ -3207,7 +3207,7 @@ HAWK_EXPORT void hawk_rtx_refdownval_nofree (
#define HAWK_RTX_GC_GEN_AUTO (-1) #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 * It returns the generation number collected and never fails
*/ */
HAWK_EXPORT int hawk_rtx_gc ( 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_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_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_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 #else
#define hawk_rtx_dupucstr(rtx, ucs, ucslen) hawk_gem_dupucstr(hawk_rtx_getgem(rtx), ucs, ucslen) #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) #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_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_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_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 #endif
#if defined(HAWK_OOCH_IS_UCH) #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_dupoochars hawk_rtx_dupuchars
# define hawk_rtx_dupoocs hawk_rtx_dupucs # define hawk_rtx_dupoocs hawk_rtx_dupucs
# define hawk_rtx_dupoocstrarr hawk_rtx_dupucstrarr # define hawk_rtx_dupoocstrarr hawk_rtx_dupucstrarr
# define hawk_rtx_dupoocsarr hawk_rtx_dupucsarr
#else #else
# define hawk_rtx_dupoocstr hawk_rtx_dupbcstr # define hawk_rtx_dupoocstr hawk_rtx_dupbcstr
# define hawk_rtx_dupoochars hawk_rtx_dupbchars # define hawk_rtx_dupoochars hawk_rtx_dupbchars
# define hawk_rtx_dupoocs hawk_rtx_dupbcs # define hawk_rtx_dupoocs hawk_rtx_dupbcs
# define hawk_rtx_dupoocstrarr hawk_rtx_dupbcstrarr # define hawk_rtx_dupoocstrarr hawk_rtx_dupbcstrarr
# define hawk_rtx_dupoocsarr hawk_rtx_dupbcsarr
#endif #endif
/* ----------------------------------------------------------------------- */ /* ----------------------------------------------------------------------- */

View File

@ -25,11 +25,13 @@
*/ */
#include "mod-uci.h" #include "mod-uci.h"
#include <hawk/cmn/str.h> /*
#include <hawk/cmn/rbt.h> #include <hawk-str.h>
#include <hawk/cmn/mbwc.h> #include <hawk-rbt.h>
#include <hawk/cmn/fmt.h> #include <hawk-chr.h>
#include "../cmn/mem-prv.h" #include <hawk-fmt.h>
*/
#include "../lib/hawk-prv.h"
#if defined(HAVE_UCI_H) #if defined(HAVE_UCI_H)
# include <uci.h> # include <uci.h>
@ -121,7 +123,7 @@ static uctx_node_t* new_uctx_node (hawk_rtx_t* rtx, uctx_list_t* list)
oops: oops:
if (node) hawk_rtx_freemem (rtx, node); if (node) hawk_rtx_freemem (rtx, node);
hawk_rtx_seterrnum (rtx, HAWK_ENOMEM, HAWK_NULL); hawk_rtx_seterrnum (rtx, HAWK_NULL, HAWK_ENOMEM);
return HAWK_NULL; return HAWK_NULL;
} }
@ -158,7 +160,6 @@ static void free_uctx_node (hawk_rtx_t* rtx, uctx_list_t* list, uctx_node_t* nod
* chanined to the free list */ * chanined to the free list */
if (list->head == HAWK_NULL) if (list->head == HAWK_NULL)
{ {
hawk_mmgr_t* mmgr;
uctx_node_t* curnode; uctx_node_t* curnode;
while (list->free) while (list->free)
@ -191,8 +192,7 @@ static int close_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id)
return -x; return -x;
} }
static int load_byid ( static int load_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* path)
hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* path)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -217,7 +217,7 @@ static int unload_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id)
return -x; return -x;
} }
static int save_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int save_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -226,7 +226,6 @@ static int save_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mc
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
@ -240,7 +239,7 @@ static int save_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mc
return -x; return -x;
} }
static int commit_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int commit_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -249,7 +248,6 @@ static int commit_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE) && (ptr.last->type == UCI_TYPE_PACKAGE)) if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE) && (ptr.last->type == UCI_TYPE_PACKAGE))
@ -262,7 +260,7 @@ static int commit_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
return -x; return -x;
} }
static int revert_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int revert_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -271,7 +269,6 @@ static int revert_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE)) if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE))
@ -284,7 +281,7 @@ static int revert_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
return -x; return -x;
} }
static int delete_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int delete_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -293,7 +290,6 @@ static int delete_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE)) if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE))
@ -306,7 +302,7 @@ static int delete_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
return -x; return -x;
} }
static int rename_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int rename_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -315,7 +311,6 @@ static int rename_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
if (ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE)) if (ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE))
@ -328,7 +323,7 @@ static int rename_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_
return -x; return -x;
} }
static int set_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int set_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -337,7 +332,6 @@ static int set_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mch
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
x = ptr.value? uci_set (list->map.tab[id]->ctx, &ptr): UCI_ERR_INVAL; x = ptr.value? uci_set (list->map.tab[id]->ctx, &ptr): UCI_ERR_INVAL;
@ -347,22 +341,24 @@ static int set_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mch
return -x; return -x;
} }
static int addsection_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item, hawk_mchar_t* type) static int addsection_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item, hawk_bch_t* type)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
/* TODO: this looks like a wrong implementation */
if (id >= 0 && id < list->map.high && list->map.tab[id]) if (id >= 0 && id < list->map.high && list->map.tab[id])
{ {
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
/* add an unnamed section. use set to add a named section */ /* add an unnamed section. use set to add a named section */
struct uci_section* s = HAWK_NULL; struct uci_section* s = HAWK_NULL;
if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE) && (ptr.last->type == UCI_TYPE_PACKAGE)) if (!ptr.value && (ptr.flags & UCI_LOOKUP_COMPLETE) && (ptr.last->type == UCI_TYPE_PACKAGE))
{
x = uci_add_section(list->map.tab[id]->ctx, ptr.p, type, &s); x = uci_add_section(list->map.tab[id]->ctx, ptr.p, type, &s);
}
else x = UCI_ERR_INVAL; else x = UCI_ERR_INVAL;
} }
} }
@ -370,7 +366,7 @@ static int addsection_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, h
return -x; return -x;
} }
static int addlist_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* item) static int addlist_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* item)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -379,7 +375,6 @@ static int addlist_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk
struct uci_ptr ptr; struct uci_ptr ptr;
x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1); x = uci_lookup_ptr(list->map.tab[id]->ctx, &ptr, item, 1);
if (x == UCI_OK) if (x == UCI_OK)
{ {
x = ptr.value? uci_add_list (list->map.tab[id]->ctx, &ptr): UCI_ERR_INVAL; x = ptr.value? uci_add_list (list->map.tab[id]->ctx, &ptr): UCI_ERR_INVAL;
@ -390,7 +385,7 @@ static int addlist_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk
} }
static int setconfdir_byid ( static int setconfdir_byid (
hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* path) hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* path)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -403,7 +398,7 @@ static int setconfdir_byid (
} }
static int setsavedir_byid ( static int setsavedir_byid (
hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* path) hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* path)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -416,7 +411,7 @@ static int setsavedir_byid (
} }
static int adddeltapath_byid ( static int adddeltapath_byid (
hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_mchar_t* path) hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* path)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -428,9 +423,7 @@ static int adddeltapath_byid (
return -x; return -x;
} }
static int getsection_byid ( static int getsection_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* tuple, hawk_val_ref_t* ref)
hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id,
hawk_mchar_t* tuple, hawk_val_ref_t* ref)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -450,7 +443,7 @@ static int getsection_byid (
e = ptr.last; e = ptr.last;
if (e->type == UCI_TYPE_SECTION) if (e->type == UCI_TYPE_SECTION)
{ {
hawk_val_map_data_t md[4]; hawk_val_map_data_t md[3];
hawk_int_t lv; hawk_int_t lv;
hawk_val_t* tmp; hawk_val_t* tmp;
@ -458,12 +451,12 @@ static int getsection_byid (
md[0].key.ptr = HAWK_T("type"); md[0].key.ptr = HAWK_T("type");
md[0].key.len = 4; md[0].key.len = 4;
md[0].type = HAWK_VAL_MAP_DATA_MBS; md[0].type = HAWK_VAL_MAP_DATA_BCSTR;
md[0].vptr = ptr.s->type; md[0].vptr = ptr.s->type;
md[1].key.ptr = HAWK_T("name"); md[1].key.ptr = HAWK_T("name");
md[1].key.len = 4; md[1].key.len = 4;
md[1].type = HAWK_VAL_MAP_DATA_MBS; md[1].type = HAWK_VAL_MAP_DATA_BCSTR;
md[1].vptr = ptr.s->e.name; /* e->name == ptr.s->e.name */ md[1].vptr = ptr.s->e.name; /* e->name == ptr.s->e.name */
md[2].key.ptr = HAWK_T("anon"); md[2].key.ptr = HAWK_T("anon");
@ -472,7 +465,7 @@ static int getsection_byid (
lv = ptr.s->anonymous; lv = ptr.s->anonymous;
md[2].vptr = &lv; md[2].vptr = &lv;
tmp = hawk_rtx_makemapvalwithdata (rtx, md); tmp = hawk_rtx_makemapvalwithdata(rtx, md, 3);
if (tmp) if (tmp)
{ {
int n; int n;
@ -493,9 +486,7 @@ static int getsection_byid (
return -x; return -x;
} }
static int getoption_byid ( static int getoption_byid (hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id, hawk_bch_t* tuple, hawk_val_ref_t* ref)
hawk_rtx_t* rtx, uctx_list_t* list, hawk_int_t id,
hawk_mchar_t* tuple, hawk_val_ref_t* ref)
{ {
int x = UCI_ERR_INVAL; int x = UCI_ERR_INVAL;
@ -520,21 +511,21 @@ static int getoption_byid (
if (uo->type == UCI_TYPE_STRING) if (uo->type == UCI_TYPE_STRING)
{ {
hawk_val_t* map; hawk_val_t* map;
hawk_val_map_data_t md[3]; hawk_val_map_data_t md[2];
HAWK_MEMSET (md, 0, HAWK_SIZEOF(md)); HAWK_MEMSET (md, 0, HAWK_SIZEOF(md));
md[0].key.ptr = HAWK_T("type"); md[0].key.ptr = HAWK_T("type");
md[0].key.len = 4; md[0].key.len = 4;
md[0].type = HAWK_VAL_MAP_DATA_STR; md[0].type = HAWK_VAL_MAP_DATA_OOCSTR;
md[0].vptr = HAWK_T("string"); md[0].vptr = HAWK_T("string");
md[1].key.ptr = HAWK_T("value"); md[1].key.ptr = HAWK_T("value");
md[1].key.len = 5; md[1].key.len = 5;
md[1].type = HAWK_VAL_MAP_DATA_MBS; md[1].type = HAWK_VAL_MAP_DATA_BCSTR;
md[1].vptr = uo->v.string; md[1].vptr = uo->v.string;
map = hawk_rtx_makemapvalwithdata (rtx, md); map = hawk_rtx_makemapvalwithdata(rtx, md, 2);
if (map) if (map)
{ {
int n; int n;
@ -552,7 +543,7 @@ static int getoption_byid (
else if (uo->type == UCI_TYPE_LIST) else if (uo->type == UCI_TYPE_LIST)
{ {
hawk_val_t* map, * fld; hawk_val_t* map, * fld;
hawk_val_map_data_t md[3]; hawk_val_map_data_t md[2];
struct uci_element* tmp; struct uci_element* tmp;
hawk_int_t count; hawk_int_t count;
@ -563,7 +554,7 @@ static int getoption_byid (
md[0].key.ptr = HAWK_T("type"); md[0].key.ptr = HAWK_T("type");
md[0].key.len = 4; md[0].key.len = 4;
md[0].type = HAWK_VAL_MAP_DATA_STR; md[0].type = HAWK_VAL_MAP_DATA_OOCSTR;
md[0].vptr = HAWK_T("list"); md[0].vptr = HAWK_T("list");
md[1].key.ptr = HAWK_T("count"); md[1].key.ptr = HAWK_T("count");
@ -571,17 +562,17 @@ static int getoption_byid (
md[1].type = HAWK_VAL_MAP_DATA_INT; md[1].type = HAWK_VAL_MAP_DATA_INT;
md[1].vptr = &count; md[1].vptr = &count;
map = hawk_rtx_makemapvalwithdata(rtx, md); map = hawk_rtx_makemapvalwithdata(rtx, md, 2);
if (map) if (map)
{ {
count = 1; count = 1;
uci_foreach_element(&uo->v.list, tmp) uci_foreach_element(&uo->v.list, tmp)
{ {
const hawk_cstr_t* subsep; const hawk_oocs_t* subsep;
hawk_cstr_t k[4]; hawk_oocs_t k[4];
hawk_char_t idxbuf[64]; hawk_ooch_t idxbuf[64];
hawk_char_t* kp; hawk_ooch_t* kp;
hawk_size_t kl; hawk_oow_t kl;
fld = hawk_rtx_makestrvalwithbcstr(rtx, tmp->name); fld = hawk_rtx_makestrvalwithbcstr(rtx, tmp->name);
if (!fld) if (!fld)
@ -600,12 +591,12 @@ static int getoption_byid (
k[1].ptr = subsep->ptr; k[1].ptr = subsep->ptr;
k[1].len = subsep->len; k[1].len = subsep->len;
k[2].ptr = idxbuf; k[2].ptr = idxbuf;
k[2].len = hawk_fmtuintmax(idxbuf, HAWK_COUNTOF(idxbuf), count, 10, -1, HAWK_T('\0'), HAWK_NULL); k[2].len = hawk_fmt_uintmax_to_oocstr(idxbuf, HAWK_COUNTOF(idxbuf), count, 10, -1, HAWK_T('\0'), HAWK_NULL);
k[3].ptr = HAWK_NULL; k[3].ptr = HAWK_NULL;
k[3].len = 0; k[3].len = 0;
kp = hawk_wcstradup(k, &kl, hawk_rtx_getmmgr(rtx)); kp = hawk_rtx_dupoocsarr(rtx, k, &kl);
if (kp == HAWK_NULL || hawk_rtx_setmapvalfld(rtx, map, kp, kl, fld) == HAWK_NULL) if (!kp || hawk_rtx_setmapvalfld(rtx, map, kp, kl, fld) == HAWK_NULL)
{ {
if (kp) hawk_rtx_freemem (rtx, kp); if (kp) hawk_rtx_freemem (rtx, kp);
hawk_rtx_refupval (rtx, fld); hawk_rtx_refupval (rtx, fld);
@ -662,13 +653,13 @@ static int fnc_uci_errno (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
list = rtx_to_list (rtx, fi); list = rtx_to_list (rtx, fi);
retv = hawk_rtx_makeintval(rtx, list->errnum); retv = hawk_rtx_makeintval(rtx, list->errnum);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
} }
static hawk_char_t* errmsg[] = static hawk_ooch_t* errmsg[] =
{ {
HAWK_T("no error"), HAWK_T("no error"),
HAWK_T("out of memory"), HAWK_T("out of memory"),
@ -696,8 +687,8 @@ static int fnc_uci_errstr (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (errnum < 0 || errnum >= HAWK_COUNTOF(errmsg)) errnum = HAWK_COUNTOF(errmsg) - 1; if (errnum < 0 || errnum >= HAWK_COUNTOF(errmsg)) errnum = HAWK_COUNTOF(errmsg) - 1;
retv = hawk_rtx_makestrvalwithstr (rtx, errmsg[errnum]); retv = hawk_rtx_makestrvalwithoocstr(rtx, errmsg[errnum]);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -721,7 +712,7 @@ static int fnc_uci_open (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -747,7 +738,7 @@ static int fnc_uci_close (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -766,9 +757,9 @@ static int fnc_uci_load (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = load_byid(rtx, list, id, item); ret = load_byid(rtx, list, id, item);
@ -784,7 +775,7 @@ static int fnc_uci_load (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -810,7 +801,7 @@ static int fnc_uci_unload (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -829,9 +820,9 @@ static int fnc_uci_save (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = save_byid(rtx, list, id, item); ret = save_byid(rtx, list, id, item);
@ -847,7 +838,7 @@ static int fnc_uci_save (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -866,9 +857,9 @@ static int fnc_uci_commit (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = commit_byid(rtx, list, id, item); ret = commit_byid(rtx, list, id, item);
@ -884,7 +875,7 @@ static int fnc_uci_commit (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -903,9 +894,9 @@ static int fnc_uci_revert (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = revert_byid(rtx, list, id, item); ret = revert_byid(rtx, list, id, item);
@ -921,7 +912,7 @@ static int fnc_uci_revert (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -940,9 +931,9 @@ static int fnc_uci_delete (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = delete_byid(rtx, list, id, item); ret = delete_byid(rtx, list, id, item);
@ -958,7 +949,7 @@ static int fnc_uci_delete (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -977,9 +968,9 @@ static int fnc_uci_rename (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = rename_byid(rtx, list, id, item); ret = rename_byid(rtx, list, id, item);
@ -995,7 +986,7 @@ static int fnc_uci_rename (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1014,9 +1005,9 @@ static int fnc_uci_set (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = set_byid(rtx, list, id, item); ret = set_byid(rtx, list, id, item);
@ -1032,7 +1023,7 @@ static int fnc_uci_set (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1051,10 +1042,10 @@ static int fnc_uci_addsection (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item, * type; hawk_bch_t* item, * type;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
type = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 2), HAWK_NULL); type = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 2), HAWK_NULL);
if (item && type) if (item && type)
{ {
ret = addsection_byid(rtx, list, id, item, type); ret = addsection_byid(rtx, list, id, item, type);
@ -1072,7 +1063,7 @@ static int fnc_uci_addsection (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1091,9 +1082,9 @@ static int fnc_uci_addlist (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = addlist_byid(rtx, list, id, item); ret = addlist_byid(rtx, list, id, item);
@ -1109,7 +1100,7 @@ static int fnc_uci_addlist (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1128,9 +1119,9 @@ static int fnc_uci_setconfdir (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = setconfdir_byid(rtx, list, id, item); ret = setconfdir_byid(rtx, list, id, item);
@ -1146,7 +1137,7 @@ static int fnc_uci_setconfdir (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1166,9 +1157,9 @@ static int fnc_uci_setsavedir (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = setsavedir_byid(rtx, list, id, item); ret = setsavedir_byid(rtx, list, id, item);
@ -1184,7 +1175,7 @@ static int fnc_uci_setsavedir (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1203,9 +1194,9 @@ static int fnc_uci_adddeltapath (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = adddeltapath_byid(rtx, list, id, item); ret = adddeltapath_byid(rtx, list, id, item);
@ -1221,7 +1212,7 @@ static int fnc_uci_adddeltapath (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
} }
retv = hawk_rtx_makeintval(rtx, ret); retv = hawk_rtx_makeintval(rtx, ret);
if (retv == HAWK_NULL) return -1; if (!retv) return -1;
hawk_rtx_setretval (rtx, retv); hawk_rtx_setretval (rtx, retv);
return 0; return 0;
@ -1239,12 +1230,12 @@ static int fnc_uci_getoption (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = getoption_byid (rtx, list, id, item, hawk_rtx_getarg (rtx, 2)); ret = getoption_byid(rtx, list, id, item, (hawk_val_ref_t*)hawk_rtx_getarg(rtx, 2));
hawk_rtx_freemem (rtx, item); hawk_rtx_freemem (rtx, item);
if (ret == -9999) return -1; if (ret == -9999) return -1;
} }
@ -1274,12 +1265,12 @@ static int fnc_uci_getsection (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
if (ret <= -1) ret = -UCI_ERR_INVAL; if (ret <= -1) ret = -UCI_ERR_INVAL;
else else
{ {
hawk_mchar_t* item; hawk_bch_t* item;
item = hawk_rtx_valtombsdup(rtx, hawk_rtx_getarg (rtx, 1), HAWK_NULL); item = hawk_rtx_valtobcstrdup(rtx, hawk_rtx_getarg(rtx, 1), HAWK_NULL);
if (item) if (item)
{ {
ret = getsection_byid(rtx, list, id, item, hawk_rtx_getarg (rtx, 2)); ret = getsection_byid(rtx, list, id, item, (hawk_val_ref_t*)hawk_rtx_getarg(rtx, 2));
hawk_rtx_freemem (rtx, item); hawk_rtx_freemem (rtx, item);
if (ret == -9999) return -1; if (ret == -9999) return -1;
} }
@ -1324,7 +1315,7 @@ static hawk_mod_fnc_tab_t fnctab[] =
/* ------------------------------------------------------------------------ */ /* ------------------------------------------------------------------------ */
static int query (hawk_mod_t* mod, hawk_t* awk, const hawk_char_t* name, hawk_mod_sym_t* sym) static int query (hawk_mod_t* mod, hawk_t* hawk, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{ {
return hawk_findmodsymfnc(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym); return hawk_findmodsymfnc(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym);
} }
@ -1339,7 +1330,7 @@ static int init (hawk_mod_t* mod, hawk_rtx_t* rtx)
HAWK_MEMSET (&list, 0, HAWK_SIZEOF(list)); HAWK_MEMSET (&list, 0, HAWK_SIZEOF(list));
if (hawk_rbt_insert(rbt, &rtx, HAWK_SIZEOF(rtx), &list, HAWK_SIZEOF(list)) == HAWK_NULL) if (hawk_rbt_insert(rbt, &rtx, HAWK_SIZEOF(rtx), &list, HAWK_SIZEOF(list)) == HAWK_NULL)
{ {
hawk_rtx_seterrnum (rtx, HAWK_ENOMEM, HAWK_NULL); hawk_rtx_seterrnum (rtx, HAWK_NULL, HAWK_ENOMEM);
return -1; return -1;
} }
@ -1394,9 +1385,9 @@ int hawk_mod_uci (hawk_mod_t* mod, hawk_t* hawk)
mod->fini = fini; mod->fini = fini;
rbt = hawk_rbt_open(hawk_getgem(hawk), 0, 1, 1); rbt = hawk_rbt_open(hawk_getgem(hawk), 0, 1, 1);
if (rbt == HAWK_NULL) return -1; if (!rbt) return -1;
hawk_rbt_setstyle (rbt, hawk_getrbtstyle(HAWK_RBT_STYLE_INLINE_COPIERS)); hawk_rbt_setstyle (rbt, hawk_get_rbt_style(HAWK_RBT_STYLE_INLINE_COPIERS));
mod->ctx = rbt; mod->ctx = rbt;
return 0; return 0;